布局检测与优化(二):过度渲染检测

  1. 前言

Android 中的过度绘制是指同一个像素被绘制多次,从绘制性能角度讲,同一像素点被绘制的次数当然越少越好,这样有利于减轻 GPU 的工作压力,事实上,在具体开发过程中 ,不可避免的可能会出现过度绘制,这里,Android 系统本身在开发者选项里已经提供了一个选项开关 Debug GPU overdraw(调试 GPU 过度绘制),用于检测 App 的过度绘制, 只要打开这个开关,App 界面就会在不同的界面区域根据像素的绘制次数显示出不同的颜色。

2.基本介绍

1)打开手机的过度绘制开关。
操作顺序:【设置—>更多设置—>开发者模式—>调试GPU过度绘制—>显示过度绘制区域】

最后打开后如图所示:
这里写图片描述

2)颜色的标识

从好到差:蓝-绿-淡红-红,具体表现为:
1.蓝色1x过度绘制
2.绿色2x过度绘制
3.淡红色3x过度绘制
4.红色超过4x过度绘制

官方对过度渲染的图片介绍:
这里写图片描述

3)验收标准
1.控制过度绘制为2x
2.不允许存在4x过度绘制
3.不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)

3.优化措施

由于公司项目不能拿来开放,自己写了个类似的登陆界面,如下所示:
这里写图片描述
可以看到,因为该界面布局简单,但是简单的界面也出现了红色,说明出现了过度渲染,下面我们就解决掉当前界面的过度渲染问题。

1)利用DDMS观察其他应用布局实现方式
这里写图片描述
具体使用方法前面已经介绍过:http://blog.csdn.net/dfskhgalshgkajghljgh/article/details/51331006
缺点:只能看清楚层次,不能知道具体什么原因导致过度渲染。

2)JakeWharton大神的scalpel
github连接:https://github.com/JakeWharton/scalpel
将当前页面的布局3D化,有点像xcode上的view ui hierarchy工具,效果如图所示:
这里写图片描述

优点:
1.可以很方便的在页面上看到布局的id,从而快速找出对应出问题的控件。
2.支持3D跟缩放功能,可以清晰看到布局文件的层次结构,跟引起过度渲染的层次或者对应的布局块,非常灵活。


使用步骤:
1.build.gralde中加入如下代码:

compile 'com.jakewharton.scalpel:scalpel:1.1.2'
1

2.使用的时候你的layout根节点必须是 ScalpelFrameLayout

@O
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值