Android开发:GPU过度绘制的优化

GPU过度绘制指的是在屏幕一个像素上绘制多次(超过一次),比如一个TextView后有背景,那么显示文本的像素至少绘了两次,一次是背景,一次是文本。GPU过度绘制或多或少对性能有些影响。
如何查看是否过度绘制:

设置-开发者选项-调试GPU过度绘制(过度渲染等,不同机器可能不同)
开启后,启动我们的应用,可以看到各种颜色的区域,其中:
蓝色 1x过度绘制
绿色 2x过度绘制
淡红色 3x过度绘制
红色 超过4x过度绘制
最理想的是蓝色,一个像素只绘制一次。这里需要说明的是,如果你的Activity使用了自定义的Theme,在Theme里设了背景,这个不算第一层,但如果在xml的根节点加background,那要算一层.
写了个demo做测试,Activity里除了onCreate里setContentView以外,没有其他逻辑代码。
gpu
最深的是TextView和ImageView,位于第4层,几个外层的LinearLayout都设了背景(不设就是透明,像素不会重绘),效果如下图:
device-2014-05-18-140514
可以看到,位于第三层的LinearLayout已经是淡红色,位于第四层的TextView和ImageView呈红色。

如何优化?
1、优化布局,减少层级。
2、减少没必要的背景。

还不行,给Activity定义一个Theme,通过theme定义背景,这样可以减少一层。
如果应用了以上几种方法,还是一片红,好吧,你该考虑换UI设计了.

转自:http://www.pocketdigi.com/20140521/1325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值