Android回顾---过度绘制

简述

应用可能会在单个帧内多次绘制同一个像素,这种情况称为“过度绘制”。过度绘制通常是不必要的,最好避免。它会浪费 GPU 时间来渲染与用户在屏幕上所见内容无关的像素,进而导致性能问题。

过度绘制检测

  • 可以使用系统自带GPU 过度绘制调试工具,在开发者选项-调试GPU过度绘制选项中开启
  • 也可以使用其他工具,例如AS的布局分析器等

解决过度绘制问题

  • 使视图层次结构扁平化
    视图层次过多是导致过度绘制问题的主要原因之一,因此我们需要减少布局嵌套,可以提高性能。
  • 移除布局中不需要的背景
    默认情况下,布局没有背景,这表示布局本身不会直接渲染任何内容。但是,当布局具有背景时,其有可能会导致过度绘制。
    移除不必要的背景可以快速提高渲染性能。不必要的背景可能永远不可见,因为它会被应用在该视图上绘制的任何其他内容完全覆盖。例如,当系统在父视图上绘制子视图时,可能会完全覆盖父视图的背景。
  • 降低透明度
    Android系统中对透明度的绘制本质上是在原来内容像素的上面再绘制不透明的像素来实现的,也就是说同一个屏幕区域他会绘制两次,一次是原来的内容,还有一次是新加的透明度效果(不透明的像素,就是色值通道不同),第二次绘制的像素会叠加在真实的view上,所以就造成了透明度的效果,显然,透明度的设置会严重导致过度绘制。

猜你喜欢

转载自blog.csdn.net/why1092576787/article/details/114851882