本文不讲怎么使用ConstraintLayout,具体使用可参考我分享的连接,只记录一些过度绘制的基本概念。
- 什么是过度绘制
- 怎么查看过度绘制
- 优化过度绘制
一、什么是过度绘制
过度绘制:屏幕上某一像素点在一帧中被重复绘制多次,就是过度绘制。
依据过度绘制的层度可以分成:
- 无过度绘制(一个像素只被绘制了一次)
- 过度绘制x1(一个像素被绘制了两次)
- 过度绘制x2(一个像素被绘制了三次)
- 过度绘制x3(一个像素被绘制了四次)
- 过度绘制x4+(一个像素被绘制了五次以上)
二、怎么查看过度绘制
方法一:通过开发者选项开启GPU过度绘制调试
Android手机的开发者选项中有『调试 GPU 过度绘制』的选项:
打开开发者选项–>调试GPU过度绘制–>显示过度绘制区域
方法二:通过adb命令开启GPU过度绘制调试
当然,如果每次都进入系统设置嫌麻烦,可以使用adb命令进行开启和关闭:
开启『调试 GPU 过度绘制』:
adb shell setprop debug.hwui.overdraw show
关闭『调试 GPU 过度绘制』:
adb shell setprop debug.hwui.overdraw false
执行命令之后可能需要重新启动你当前开发的应用。
颜色与过度绘制:
原色:没有过度绘制
蓝色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制
在平时的开发中,如果出现粉色及以上的过度绘制情况。说明过度绘制以及很严重了。需要进行优化。
三、优化过度绘制
由于过度绘制主要原因是布局嵌套,导致多次测量和绘制,
1、去除不必要的布局嵌套和背景以及颜色
2、使用ConstraintLayout进行布局优化,
具体优势可以参见解析ConstraintLayout的性能优势
关于ConstraintLayout的使用办法,可参考郭神的博客Android新特性介绍,ConstraintLayout完全解析 这里面讲解的很详细。
什么时候使用ConstraintLayout呢?
界面复杂,嵌套多层时,使用时优势比较好。