重学perfetto官方高级抓取方案-抓取更多的内容

0 阅读2分钟

背景:

如何在设备上抓取perfetto的trace前面文章也已经介绍了相关的方法,具体可以参考如下文章:

systrace/perfetto抓取方式分享

正常情况下上面的方式完全够用了,但是perfetto也一直在功能更新,功能也越来越多,比如我们perfetto官网就看到很多新颖的功能: 比如抓取trace时候也想对着日志看,就需要配置相关参数 在这里插入图片描述 或者是分析trace时候可以看到调用的一些堆栈,都是一些新功能,需要额外配置参数 在这里插入图片描述 那么问题就来了,上面这些新颖功能应该如何配置参数呢?难道都需要一个去网络找这个功能要抓取应该在perfetto后面加上什么参数么,这样肯定太低效,而且也很可能是错的,所以最权威的还是看看官网的是如何配置这些抓取参数。

配置抓取trace丰富参数

官方网站: 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展示 在这里插入图片描述在这里插入图片描述

参考链接: perfetto.dev/docs/quicks…

更多framework实战开发干货,请关注下面“千里马学框架”

原文地址:blog.csdn.net/learnframew…