布局优化
为什么要优化:Android设备的屏幕刷新为60FPS
要保证页面流程就 必须达到 1/60fps=16.6ms (16MS黄金法则)
采用Include布局
采用ViewStub视图
减少视图层级
布局检测方法
- 通过手机自带 过度绘制
1颜色含义
深红 4+次 需优化
红 3次 需优化
3绿 2次
蓝 1次
2.1 分为三个窗口
Tree View :视图层级框口,每个节点代表一个View
Tree Overview :整个视图层级的缩略布局
Layout View :当前视图层级轮廓
2.2右上角有个三个颜色的圈
每个节点会出现三个圆点
分别代表了 测量时间 布局时间 绘制时间
绿 代表布局速度 高于其他节点 50%
黄 代表速度慢于 其他节点 50%
红 比其他节点都要慢
内存优化
最主要原因 生命周期短对象持有生命周期长对象的引用 —内存泄露
1珍惜service资源
- 1尽量避免service不需要时 还依然存在
- 2如果是短期 Service 推荐使用Intent Service
2 在UI隐藏的时候释放内存
可以通过OnTrimMemory()回调检测 UI是否隐藏
3 避免Bitmas 浪费
4 使用JDK1.5之后的优化过的内存容器
5避免使用注入框架 原因框架会执行许多扫描工作 从而需要大量的RAM 而且相关映射会保存在RAM中
6避免为了一个功能 引入一个库
7APP流程的方式 多使用多进程
8注意及时清理 各种订阅 及时清理过期引用
检测方法
1 Android Monitor (AS自带)
可以查看CPU
可以查看运行内存
2第三方检测工具 LeakCanary
3高通性能测试工具 Trepn Profiler
4APP Tune-up Kit 从CPU GPU 功耗 发热 移动网络数据 五方面测试