Android 屏幕刷新规则 渲染性能出现的原因 以及解决问题可以使用的工具

更多关于Android渲染性能请点击这里

渲染性能到底是什么呢

系统的屏幕刷新

首先要知道系统会试图每16ms就对你的Activity进行重新绘制,所以应用需要在16ms内运行所有相关的逻辑来更新屏幕,从而达到60帧每秒的效果

如果你错过了这个时间比如花费了24ms 你就会丢帧

系统尝试刷新一个新的图像,但是由于他没有准备好,什么都刷不出来,用户也就在32ms看到同一帧画面,这种现象就是用户所说的卡顿或延迟,
丢帧期间的动画会成为运行过程中的卡顿,很容易被发现。

当与系统交互时,会表现的更加严重,比如拖动列表或者用户输入时

错过刷新的原因

原因有很多,例如你花了过多时间重绘视图层的某些部分浪费了CPU周期

或者绘制了太多的对象,重复叠加,浪费了宝贵的时间进行像素着色,用户最终还看不到这些画面。

或者一次次运行大量动画 这会导致CPU和GPU组件上内存的大量变动

如何发现并解决这些问题

通过程序设计在代码中发现问题,这无疑是很困难的
我们也可以借助工具

Hierarchy Viewer

对于复杂的Activity可以借助Hierarchy Viewer来查找确认时间过长、浪费时间太多、重绘等问题

使用 On-Device工具

比如Profile GPU Rendering、 Show GPU Overdraw 、GPU View Updates都可以帮助确认问题

对于出现在CPU代码中的渲染漏洞

Traceview

Traceview 适合检测到底是导致超过16ms的界限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值