1、先说说什么是trace
trace是一种以perfetto.trace结尾的文件。一般用来分析卡顿、启动时间慢等问题,还可以用来分析方法耗时,android系统的性能、功耗等等问题。所需要使用到的网站是:
Perfetto UI
他的前身是Systrace,不过Perfetto更清晰,更强大。
2、如何抓取
考虑到很多小伙伴使用的系统是windows和ubuntu系统,这里提供这两种系统的抓取方式。
1、windows系统
这有个脚本可以直接使用。文件放在最后的网盘链接里了。
下载解压完成后,使用usb线连接手机或者车机,android车机的可能需要root,或者使用Debug版本。连接完成后使用adb devices查看是否成功连接。
点击go.bat会弹出一个命令窗口,此时就已经开始抓取了。你可以在手机或者车机上复现你想查看的场景。操作结束后,点击任意键结束录制。录制文件会保存在go.bat的同级目录下。
2、ubuntu系统
通过网盘链接下载base_config和record_android_trace。
record_android_trace是一个脚本文件
base_config是配置文件。
方法1, 直接配置trace tag
python3 record_android_trace -o trace_file.perfetto-trace -t 10s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory
其中 -t 表示录制时间,-b表示缓存大小,可以自定义。后面的就是需要抓取的数据。
# 抓perfetto 方法2,使用配置文件
python3 record_android_trace -c base_config -o trace_file.perfetto-trace
按CTRL+C结束录制,结束后会自动弹出Perfetto网站并加载文件。(推荐使用)
3、以上都抓取都无效的情况。
我在最近的实验中发现,上述方法可以抓取,但是Perfetto网站怎么也读取不成功,或者直接就是抓取失败。
如果上述两种方法都不行,那就只能使用adb命令进行抓取。
adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 20s sched freq idle am wm gfx view
adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace
要更改抓取时间则将 -t 后面的值替换即可,如果要增加缓存大小,则加 -b 对应的大小值mb
3、文件提取处
链接: https://pan.baidu.com/s/1NZUKRaGnXi2Fj-Ph4Hby7g
提取码: 8p6f