性能优化过度绘制

调试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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值