一、网络优化
1.避免DNS解析
2.合并网络请求
3.预先获取数据
4.避免轮询
5.优化重连机制
6.离线缓存
7.压缩数据大小
8.不同的网络环境使用不同的超时策略
9.CDN的使用
二、布局优化
1.include标签共享布局
2.ViewStub标签实现延迟加载
3.merge标签减少布局层次
4.尽量使用CompoundDrawable
5.使用Lint
三、内存优化
①使用更加轻量的数据结构
②避免在Android里面使用Enum
③减小Bitmap对象的内存占用
④Bitmap对象的复用
⑤使用更小的图片
⑥使用StringBuilder来代替频繁的字符串拼接
⑦避免在onDraw方法里面执行对象的创建
⑧避免对象的内存泄露
四、电量优化
1.BroadcastReceiver
对于BroadcastReceiver,通常的做法是在界面onPasuse之后取消广播监听器的监听操作,同时根据具体业务需求选择当应用位于后台时是否禁用广播接收器。
2.数据传输
数据传输方式:蓝牙传输,Wi-Fi传输,移动网络传输等。
后台数据传输的管理:根据具体业务需求,严格限制应用位于后台时是否禁用某些数据传输,尽量能够避免无效的数据传输。
数据传输的频度问题:通过经验值或者数据统计的方法确定好数据传输的频度,避免冗余重复的数据传输,数据传输过程中要压缩数据大小,合并网络请求,避免轮询等。
3.WakeLock
使用WakeLock时,需要切记及时释放锁,而且通常情况下,要尽早地释放WakeLock
五、Apk体积优化
1.SVG 可缩放矢量图
2、Tint着色器
3、资源配置
4、动态打包配置
5、移除无用资源(物理删除)
6、代码混淆、压缩
7、启用资源缩减
8、启用webp转换插件
9、压缩对齐,res资源混淆(apk包)