减小 apk 体积
- 使用混淆,减少代码量;
- 使用 android lint 检查未使用资源,手动删除;
- 清理 assets 文件夹;
- 使用 drawable 的 xml 定义文件代替图片;
- 使用 pngquant 工具压缩 png 文件;
- 放弃小部分手机和模拟器支持的 so 文件;
- 重定制 jar,获取需求功能即可;
- 动态加载技术(app 的插件化);
- 代码重构,代码复用,代码精简;
** 命名方法和要求:**
AsyncTask
超简述原理AsyncTask
本质是一个静态的线程池(容量 128,执行数 5),AsyncTask
派生出来的子类可以实现不同的异步任务,这些任务都是提交到静态线程池中执行的;mWorker
执行doInBackground(mParams)
方法执行异步任务;AsyncTask
内部的InternalHandler
响应这些消息,并调用相关的回调函数;RejectedExcutionException
。解决方式为新开一个线程,时刻关注线程池内线程数量,如果线程池线程满了,那么则休眠新线程,否则将线程添加到线程池中。SerialExcutor
执行串行操作。真正的操作是在THREAD_POOL_EXCUTOR
线程。如果想要强行并行执行,可以直接使用excuteOnExcutor
方法即可;