Android 掉帧优化

文章介绍了如何通过adb命令监控Android应用的掉帧情况,包括使用GPU渲染模式分析、CPUProfile分析性能瓶颈,以及提供了一系列优化措施,如缓存管理、onBindViewHolder优化、布局优化和测量优化等。

对于传统的60刷新率手机来说,每16ms会发出一个VSync信号,复制CPU/GPU放在缓存中的图像,再通知CPU/GPU计算下一帧要显示的内容,再把刚复制的图像显示在屏幕上,这就是一个屏幕刷新周期。而如果在16ms内没有计算完毕的话,该帧就无法展示,屏幕进入下一个刷新周期,就产生了所谓的掉帧现象。

1. 掉帧监控 监控掉帧现象时,我们可以使用下方的adb命令,具体可见参考.

adb shell dumpsys gfxinfo <packageName>

复制

该命令展示的信息比较完整,如下所示。

Applications Graphics Acceleration Info:
Uptime: 275941522 Realtime: 391854346

** Graphics info for pid 6887 [packageName] **

Stats since: 275926453465347ns
Total frames rendered: 523   // 本次共收集了523帧的信息
Janky frames: 26 (4.97%)   // 有26帧的耗时超过16ms,掉帧率为4.97%
50th percentile: 5ms   // 50%的帧耗时在5ms以内
90th percentile: 8ms
95th percentile: 16ms
99th percentile: 20ms
Number Missed Vsync: 0   // 垂直同步失败的帧
Number High input latency: 259   // 处理input时间超时的帧数
Number Slow UI thread: 1   // 因UI线程上的工作导致超时的帧数
Number Slow bitmap uploads: 0   // 因bitmap的加载耗时的帧数
Number Slow issue draw commands: 0   // 因绘制导致耗时的帧数
Number Frame deadline missed: 1
HISTOGRAM: 5ms=346
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值