过度绘制
GPU的绘制过程,就跟刷墙一样,一层层的进行,16ms刷一次,这样就会造成图层覆盖的现象,及无用的图层还被绘制在底层,造成不必要的浪费
GPU过度绘制的几种情况
1.自定义控件中,onDraw方法做了过多重复绘制
2.布局层次太深,重叠性太强,用户看不到区域GPU也会渲染,导致耗时增加。
监测过度绘制
在开发者模式中 打开 调试GPU过度绘制(Profile GPU rendering)
蓝色 绘制一次 无过度绘制
淡绿 绘制两次
淡红 绘制三次
深红 绘制四次
代表四种不同程度的overDraw
尽量减少OverDraw
优化
1.将theme 中的windowBackground 设置成null
2.或者在xml中background重复设置了颜色
3.利用view properties 查看布局层级 减少嵌套