Android 技术提升总结(持续更新)
性能优化相关(Android性能优化典范)
- 内存优化(Android的内存管理机制 & 内存分析工具:Android Profiler)
- OOM优化
- 内存抖动优化
- 列表数组优化
- 内存泄露(Activity泄露):使用StrictMode或者LeakCanary
- UI渲染优化(Android UI渲染 & 分析工具Layout inspector(hierarchy viewer))
过度绘制(Overdraw):同一帧的某个像素在同一时间内被多次绘制(多层UI不可见的UI也被绘制)
过度绘制检查:设置->开发者模式->调试GPU过度绘制
蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况。蓝色表示不存在过度绘制,其他颜色分别表示2x,3x,4x过度绘制。
解决办法:1. 普通View尽量扁平布局(RelativeLayout)减少View嵌套层次,尽量使用RelativeLayout,去掉非必需的background等
2.自定义View,使用canvas.clipRect()和canvas.quickreject()方法来控制需要刷新的区域
3. 电量优化(检测工具Battery Historian)
1. 非及时任务(如:上传log等)可以等充电时或链接WiFi时上传(移动网络比WiFi更耗电,且每次启动时比传输时耗电)
2. 尽量打包传输,减少网络请求次数
3. 正确使用Wakelock,及时释放WakeLock,以及及时释放硬件设备
4. 使用JobScheduler集中处理收到的任务,在合适的时间,合适的网络下运行
4. 启动速度优化
1. 用TraceView 找到代码中启动速度慢的位置,进行UI
2. 减少Application中onAttachBase()和onCreate()中耗时工作,在可行的范围内尽量改为异步初始化
5. Bitmap优化
- 三方工具
-
电量优化
-
UI优化
-
启动速度优化
内存相关
编译打包
- MultiDex
- Gradle Plugin
- Gradle 多渠道打包
- Gradle 动态编译
- Apk签名流程
代码质量
- Findbugs
-
Android Lint
-
SonarQube
虚拟机
- Dalvik
- ART
架构
- MVP