背景:
如何在设备上抓取perfetto的trace前面文章也已经介绍了相关的方法,具体可以参考如下文章:
正常情况下上面的方式完全够用了,但是perfetto也一直在功能更新,功能也越来越多,比如我们perfetto官网就看到很多新颖的功能:
比如抓取trace时候也想对着日志看,就需要配置相关参数
或者是分析trace时候可以看到调用的一些堆栈,都是一些新功能,需要额外配置参数
那么问题就来了,上面这些新颖功能应该如何配置参数呢?难道都需要一个去网络找这个功能要抓取应该在perfetto后面加上什么参数么,这样肯定太低效,而且也很可能是错的,所以最权威的还是看看官网的是如何配置这些抓取参数。
配置抓取trace丰富参数
官方网站:
https://ui.perfetto.dev/
配置参数其实都不需要一个个手动添加,我们只需要在官网配置页面操作一个个开关按钮就可以。
具体配置操作如下:
自己到对应选项开启需要的选项:
最常见的的就是ATRACE的TAG开启,这个也是我们老方法也会开启的
其他的logcat,或者Callstack大家就自己根据情况进行开启。
这些UI上配置好了会有一个对应的文本匹配生成:
把上面的文本拷贝保存成config.pbtx文件。
那么现在已经有了要抓取数据的配置config后,应该如何使用这个config进行trace的抓取呢?
新版本抓取方式:
直接pc上进行抓取
cat config.pbtx | adb shell perfetto -c - --txt -o /data/misc/perfetto-traces/trace.perfetto-trace
对上面的命令进行深入的解释:
命令流程与作用
cat config.pbtx
读取本地配置文件 config.pbtx 的内容,并通过管道符 | 传递给后续命令。
adb shell
通过 ADB 连接 Android 设备并在其 Shell 环境中执行后续命令。
perfetto 核心参数
-c -:从标准输入(stdin)读取配置文件内容(即管道传递的 config.pbtx)。
--txt:声明配置文件的格式为文本(text-based)而非二进制。
-o /data/misc/perfetto-traces/trace.perfetto-trace
指定输出跟踪文件的设备存储路径,生成文件名为 trace.perfetto-trace
也可以把config.pbtx进行push到设备上,这里其实和上面命令没啥差别。
adb push config.pbtx /data/local/tmp/config.pbtx
adb shell 'cat /data/local/tmp/config.pbtx | perfetto --txt -c - -o /data/misc/perfetto-traces/trace.perfetto-trace'
然后再pull到电脑上使用perfetto网站进行分析:
adb pull /data/misc/perfetto-traces/trace ~/trace.perfetto-trace
成果展示:
可以看看对应的logcat展示
参考链接:
https://perfetto.dev/docs/quickstart/android-tracing
更多framework实战开发干货,请关注下面“千里马学框架”