性能优化过度绘制

调试GPU来查看过度绘制


过度绘制对性能会产生不必要的开销,如果能减少不必要的绘制,将有助于性能的提升。

以下以在手机上进行 Debug GPU overdraw 举例:


在开发者选项里,打开【调试GPU过度绘制】

这里写图片描述

这里写图片描述

看到整个屏幕有颜色变化就对了+1


如何查看

这里有四层颜色的指示,颜色的层级表示屏幕上有多少像素过度绘制

这里写图片描述

没有颜色改变:沒有过度绘制
1X 蓝色:过度绘制一次
2X 绿色:过度绘制兩次
3X 粉红色:过度绘制三次
4X 大红色:过度绘制四個或更多次

什么是过度绘制,假设你在根视图ViewGroup(match_parent)里设置了一个background属性,为蓝色。接着在里面布置一个子View,这个子View也为ViewGroup,它占屏幕高度一半,background属性为黄色。那么应该看到的视图为一半为蓝色,一半为黄色。在这里,黄色的这一块区域就属于过度绘制一次。

为什么呢?

系统在绘制这个View的时候,首先是绘制了根视图ViewGroup(match_parent)的蓝色,这是全屏的,然后接着在子View区域绘制了黄色。但实际上,用户看不到黄色区域“后面”的蓝色。所以,这一块区域属于过度绘制。


下面举例案例

这是我在公司跟的一个项目,看到这样的页面我也是很惆怅啊!

这里写图片描述

在看看我之前在学校做的,随便做一下广告,下面这个是我单独开发,已上线应用宝:
[查看地址][1]

这里写图片描述

希望我的分享对你有用!

[1]http://android.myapp.com/myapp/detail.htm?apkName=qindachang.xinkejiaowu

发布了48 篇原创文章 · 获赞 49 · 访问量 9万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览