Perfetto是google从Android10开始引入的一个全新的平台级跟踪分析工具。提供了用于记录系统级和应用级活动的服务和库、低开销的native+java内存分析工具,可供SQL分析跟踪文件的库,以及一个基于Web用于将追踪文件可视化方便分析的Perfetto UI。相比systrace的优势:
其可记录任意长度的跟踪记录并导出到文件系统中.
更合理的可视化分析标记功能.
内建SQLite数据库,SQL查询的支持,数据后期处理非常灵活.
命令行抓取方式
1 | adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 10s sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory |
网站打开trace:https://ui.perfetto.dev/
针对可能不支持perfetto版本可以,离线抓取atrace方式
1 | //开始抓取 |
AOSP中自带的record_android_trace工具
具体的record_android_trace路径是在aosp源码的目录aosp/external/perfetto/tools
1 | ./record_android_trace -o $(date +%Y%m%d_%H%M%S)_trace_file.perfetto-trace -t 5s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss |
抓取后会直接打开相关的chrome的浏览器。
第三方app打印trace
1 | Trace.beginSection(String sectionName);//sectionName代表打印trace的名字,一般可以写成当前方法等 |
加入参数-a 加包名