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