Android页面布局优化之ConstraintLayout

本文不讲怎么使用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呢?
界面复杂,嵌套多层时,使用时优势比较好。

猜你喜欢

转载自blog.csdn.net/u012489412/article/details/79537006