APK 瘦身
减少 res 资源大小
删除重复资源
右击项目 refactor/remove unused resources ,或 lint 工具来搜索项目中不再使用的图片等资源重复资源优化
文件名不一样,但是内容一样的图片,可以通过比较 md5 值来判断是不是一样的资源,然后编辑 resources.arsc 来重定向
删除重复资源
右击项目 refactor/remove unused resources ,或 lint 工具来搜索项目中不再使用的图片等资源
重复资源优化
文件名不一样,但是内容一样的图片,可以通过比较 md5 值来判断是不是一样的资源,然后编辑 resources.arsc 来重定向
Handler 可以发送、处理 Message 和与线程关联的 Runnable 对象 MessageQueue ,每个 Handler 实例都与一个线程和该线程的消息队列关联。创建新的 Handler 时会绑定到 Looper。它将消息和线程传递到该 Looper 的消息队列,并在该 Looper 的线程上执行它们
Handler 两个主要用途:在将来某个时刻执行消息和线程。在不同线程(切换线程)按顺序执行操作
发送方法有 post(Runnable) , postDelayed(Runnable, long), sendMessage(Message) 等 默认通过 handleMessage(Message) 处理接收 Message
Handler 通过 sendMessage 发送 Message 到 MessageQueue 队列,Looper 通过 loop() 从 MessageQueue 取出 Message,再经过 msg.target.dispatchMessage 交给 Handler 的 handleMessage() 进行处理
启动一个新的线程,在新线程上创建运行协程,不堵塞当前线程,返回一个Job类型的对象
| |
按顺序写 public包含central和jcenter
maven { url ‘https://maven.aliyun.com/repository/public' }
maven { url ‘https://maven.aliyun.com/repository/google' }
maven { url ‘https://maven.aliyun.com/repositories/jcenter' }
maven{ url ‘https://maven.aliyun.com/repository/gradle-plugin'} google()
jcenter()