Android渲染优化之视过度绘制、减少嵌套

本文探讨Android渲染优化,关注视过度绘制问题。通过开发者选项中的颜色标记,展示了不同级别的过度绘制,并指出16ms内完成绘制的重要性。作者分析了一个ViewGroup包含一个View时的2次绘制问题,提出了可能的解决方案,包括寻找API、自定义控件以及自定义ViewGroup。同时,分享了如何使用clipRect解决过度绘制的示例代码,并提醒注意多重嵌套导致的性能影响,建议通过优化布局和自定义控件来规避。
摘要由CSDN通过智能技术生成

学习自:

https://mp.csdn.net/postedit


如果刷新频率是60hz,每16ms就会打一次信号,请求一个绘制。所以一个绘制不要超过16ms。

如果1秒绘制了60帧,那么它的fps就是60。


比较显著的一个问题就是过度绘制


开发者选项中可以开启查看


原色:没有过度绘制
蓝色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制


模拟器自带的设置界面过度绘制是非常严重的(但是这个界面几乎不会更新,所以无伤大雅)



我们写的一个demo无过度绘制



又写了个demo


发现一个ViewGroup包含一个View的情况,无法避免View的那个地方绘制两次。

目前有3个思路:

1.可能他有api可以解决,我目前不知道这个api,还在百度和问朋友之中

2.自定义控件,但是这样修改起来非常的不灵活。可是目前只能通过这个方法来凑合了。

3.自定义ViewGroup,拿到所有控件占的有颜色区域,在绘制背景的时候进行拦截,仅绘制余下的区域。这个方法实现难度挺大的,但是如果实现了,效果会非常的好。


对于自定义控件进行的优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值