Systrace 学习笔记

2021-05-31  本文已影响0人  程序员Android1

和你一起终身学习,这里是程序员 Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、Systrace 红绿黄 frame 代表意义?

绿色: 一帧耗时在 1 个 vsync 周期内完成。
黄色: 一帧耗时在 1-2 个 vsync 周期内完成。
红色: 一帧耗时在 2 个 vsync 周期以上完成。

二、Systrace 中 如何判断丢帧?

SurfaceFlinger 是判断丢帧的关键

1.SurfaceFlinger 的 UIThread 在每个 Vsync-SF 的时候是否没有合成?
2.如果没有合成操作,那么需要看没有合成的原因:

3.如果有合成操作,那么需要看对应的 App 的 可用 Buffer 个数是否正常:
如果 App 此时可用 Buffer 为 0,那么看 App 端为何没有及时 queueBuffer(这就一般是应用自身的问题了),因为 SurfaceFlinger 合成操作触发可能是其他的进程有可用的 Buffer .

三、Vsync 是什么?

Vsync (Vertical Synchronization ) 垂直同期, 将 FPS 与 屏幕刷新率同步起来,避免撕裂现象发生。

四、Systrace 中 Input 事件有哪些关键字?

五、 抓取/打开 Systrace 的方法是怎样的?

抓取:
1.Android SDK monitor
Android Device Moniter -- capture system wide trace using Android systrace
2.手机开发者模式自带
Developer Options --System Tracing ( 文件保存路径:data/local/traces )
3.pyhton 命令
python systrace.py -o trace.html -t 77 gfx am input view wm res idle freq sched camera -b 102400 --time=10
打开:
chrome://tracing/
https://ui.perfetto.dev/#!/viewer

六、Systrace 中的线程状态有哪些?

绿色: Running 运行中,点击可查看 CPU 运行状态,运行时间等。
蓝色: Runnable 待运行,等待CPU调度,时间越长表示 CPU 调度越繁忙。
白色: Sleeping

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

上一篇下一篇

猜你喜欢

热点阅读