- 卡顿的定义
-
Layout Inspector分析view层次
image.png
-
开发者选项,打开Show GPU Overdraw(GPU呈现模式分析)
绿色横线代表16ms,高于横线的说明该帧超过了16ms的绘制时间
image.png
- 开发者选项,打开调试GPU过度绘制。
蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。如果是自定义View,可以:
4.1 过度绘制可以考虑用Canvas.clipRect()
方法,指定绘制区域(这个方法可以指定一块矩形区域,只有在这个区域内才会被绘制,其他的区域会被忽视)
4.2 使用canvas.quickreject()
来判断是否没和某个矩形相交,从而跳过那些非矩形区域内的绘制操作。
4.3 移除不必要的background。
4.4 等等。。。
image.png
网友评论