Android 卡顿分析

2021-05-13  本文已影响0人  maybe0813

卡顿

大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。Android系统每隔大概16.6ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。

卡顿的原因

如果某个操作花费时间超过16ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。

有很多原因可以导致丢帧,一般主线程过多的UI绘制、显示的Bitmap过大、大量的IO操作、内存抖动、WebView内容复杂、Webview与主线程交互(jsbridge方案)或是大量的计算操作占用CPU,都会导致App界面卡顿。

推荐大神文章 https://www.androidperformance.com/2019/09/05/Android-Jank-Due-To-App/

卡顿分析工具

systrace.png

主要查看Frames中出现连续红色、黄色的点的区间段进行分析

推荐大神文章 https://androidperformance.com/2019/07/23/Android-Systrace-Pre/

looper设置printer.png looper的log.png

Looper方式比较适合在发布前进行测试或者小范围灰度测试然后定位问题,Choreographer方式适合监控线上环境的 app 的掉帧情况来计算 app 在某些场景的流畅度然后有针对性的做性能优化。

上一篇 下一篇

猜你喜欢

热点阅读