UI绘制优化

一、CPU与GPU的工作流程

image.png

image.png

image.png

image.png

二、卡顿原因分析

image.png

image.png

image.png

image.png

image.png

三、实战解决过度优化

image.png

image.png

image.png

image.png

image.png

四、过度绘制优化(主要减少GPU工作量)

1. 开发者选项-》Profile GPU rendering/调试GPU过度绘制

2. 处理方案

2.1减少背景重复
去掉所有activity主题设置中的属性
直接在styles.xml中设置<item name="android:windowBackground">@null</item>
2.2 非业务需要,不要去设置背景
2.3 使用裁减减少控件之间的重合部分
2.4 Android7.0之后系统做出的优化,invalidate()不再执行测量和布局动作

五、布局的优化(主要减少CPU工作量)

1.常用工具

1.1 Android/sdk/tools/bin/ui automator viewer.bat
1.2 Android\sdk\tools\monitor.bat
1.3 Device Monitor窗口中Hierarchy view

三个点也是代表着View的Measure, Layout和Draw。
绿: 表示该View的此项性能比该View Tree中超过50%的View都要快;例如,代表Measure的是绿点,意味着这个视图的测量时间快于树中的视图对象的50%。
黄: 表示该View的此项性能比该View Tree中超过50%的View都要慢;
红: 表示该View的此项性能是View Tree中最慢的;。

推荐阅读更多精彩内容