UI性能优化是一项系统工程,找到瓶颈,逐个修复,量变产生质变。
一. 性能优化工具
- 开发者选项过度绘制、布局边界、GPU呈现模式分析
- Android Profiler 分析CPU代码执行、内存分配、网络请求
- systrace追踪记录系统框架&应用的UI渲染过程
- BlockCanary监控主线程卡顿的方法调用栈,适合监控非UI渲染造成的卡顿。
- Hierarchy Viewer查看Debuggable应用的布局层次和节点渲染耗时。
二、小技巧
- 尽量减少view的数量,使用SpannableString实现样式差异化,用TextView+CompoundDrawable组合实现图片文字
- linearlayout不需要水平对齐多个textview的基线时,关闭baselineAligned可以减少measure计算
- 使用ViewStub延迟初始化,使用merge减少嵌套
4.移除多余的背景, 不要在根布局绘制backgraound,放到activity主题里,android:windowbackgraoud设置。 - 避免绘制看不见的元素,避免在调用频繁的路径创建对象和做大量的计算,善用缓存和局部刷新机制。
- Canvas.clipRect/quickReject
1>clipRect可以定义绘制的边界,边界以外的部分不会绘制
2>quickReject可以用来测试指定区域是否在裁剪范围之外,如果要绘制的元素位于裁剪范围之外,可以直接跳过绘制步骤。
网友评论