UI绘制优化
2019-04-30 本文已影响1人
世锋日上
一、CPU与GPU的工作流程
image.pngimage.png
image.png
image.png
二、卡顿原因分析
image.pngimage.png
image.png
image.png
image.png
三、实战解决过度优化
image.pngimage.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中最慢的;。