最近项目的原因需要抓自定义的一些atrace,发现使用google 自带的systrace python脚本抓出来的log使用chrome已经打不开了。

想着用用比较时髦的perfetto吧,发现无论如何也抓不到自定义的trace了,细看了一下,尼玛perfetto挖的坑也挺深的。

perffeto UI使用起来逻辑大概是这样的:

1、在界面上选取你想录制对应的项目

2、在recording command里边生成对应的perfetto命令脚本

3、点击start recording,网页就会启动adb server帮你自动化录制perfetto trace,然后pull出来到网页上显示

它的坑大概是这样的:

1、由于它是网页上启动自己的adb server,如果你系统上已经启动了其他的adb server,它就傻掉不work了。

2、看起来选择所有的项目都是可以在recording command里边生成对应的perffetto命令脚本的,除了Atrace这样选项,事实上即使你反复开关Atrace这个选项,脚本里边也是岿然不动的。

对于问题1的解决,我这边是由于android studio启动的时候自己会启动一个adb server,所以用perfetto的时候必须把as关闭它才能直接在perfetto ui上录制,不然只能自己手动录制。

对于问题2,查阅了它官方对于atrace的解释之后,才发现把如下这块手工加到脚本里边才行:

data_sources {
config {
name: "linux.ftrace"
ftrace_config {
# Enables specific system events tags.
atrace_categories: "am"
atrace_categories: "pm" # Enables events for a specific app.
atrace_apps: "com.google.android.apps.docs" # Enables all events for all apps.
atrace_apps: "*"
}
}
}

总之就是使用界面里边生成的脚本,手工加上atrace相关的代码,组合制作一个config.pbtx文件,然后按照如下命令执行抓取trace:

cat config.pbtx | adb shell perfetto -c - --txt -o /data/misc/perfetto-traces/trace.perfetto-trace

然后把

/data/misc/perfetto-traces/trace.perfetto-trace

pull出来手工送到网页上显示即可

具体灵活配置可以自行查阅官方文档:

https://perfetto.dev/docs/quickstart/android-tracing

android 使用 perfetto 抓取atrace的更多相关文章

  1. [Android systrace系列] 抓取开机过程systrace

    ------------------------------------------------------------------------- 这篇文章的小目标:了解抓取开机过程systrace的 ...

  2. Android Screen Monitor抓取真机屏幕

    今天看到一款有点意思的开源软件“android-screen-monitor”, 简要记录如下: 1 简介 一款同步手机真机屏幕到PC上的软件(屏幕实时抓取,有点小卡) 2 开源地址 http://c ...

  3. Android测试日志文件抓取与分析

    1.log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb shel ...

  4. android adb命令 抓取系统各种 log

    getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...

  5. Android APP测试的日志文件抓取

         1    log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有: ...

  6. 抓取Android应用的log

    今天测试软件时,遇到一个bug,因为开发说那边不复现,所以为了更好追踪这个问题,需要抓取复现步骤地log. 在网上查了相关资料,同时结合自己遇到的问题,总结如下. 1. 抓取Android 应用log ...

  7. 【android】[转]Android软件测试的日志文件抓取简介

    1    log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb s ...

  8. Charles + Android 抓取Https数据包 (适用于Android 6.0及以下)

    通过Charles代理,我们能很轻易的抓取手机的Http请求,因为Http属于明文传输,所以我们能直接获取到我们要抓取的内容.但是Https内容本身就是加密的,这时我们会发现内容是加密的了.本文我们来 ...

  9. jsoup使用样式class抓取数据时空格的处理

    最近在研究用android和jsoup抓取小说数据,jsoup的使用可以参照http://www.open-open.com/jsoup/;在抓纵横中文网永生这本书的目录内容时碰到了问题, 永生的书简 ...

随机推荐

  1. String和其他数据类型

    1.String类. 1.1.对String在内存存储方面的理解: 第一:字符串一旦创建不可变. 第二:双引号括起来的字符串存储在字符串常量池中. 第三:字符串的比较必须使用equals方法. 第四: ...

  2. 【JavaSE】泛型

    Java泛型 2019-07-05  22:00:24  by冲冲 1. 泛型的引例 1 List list = new ArrayList(); 2 list.add(1022); //向集合中添加 ...

  3. 删除本地仓库中的lastUpdated文件.bat

    @echo off @ ECHO. @ ECHO. @ ECHO. 说 明 @ ECHO ------------------------------------------------------- ...

  4. jmeter链接数据库,信息全部填写正确,运行之后没有结果

    之前遇到一个很苦恼的问题,jmeter链接数据库,数据库填写的资料全部都没有问题,在其他电脑jmeter上都可以正常链接,但是在我的电脑上运行却总是不出结果, 用mysql链接数据库也一切正常,一直找 ...

  5. .net core 3.1 WebAPi 使用 AutoMapper 9.0、10.0

    AutoMapper 可以很方便完成数据对象之间的转换. Dto -> Entity Entity -> ViewModel Step 1:通过 NuGet 安装 AutoMapper 的 ...

  6. [GZOI2017]配对统计

    发现我们可以在\(O(n)\)里很多处理出至多\(2n\)对好对. 然后转化成二维偏序. 然后想怎么做怎么做:排序+BIT,莫队都行.

  7. 29-Regular Expression Matching-leetcode

    '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching sh ...

  8. ZooKeeper 04 - ZooKeeper 集群的节点为什么必须是奇数个

    目录 1 - 关于节点个数的说明 2 - ZooKeeper 集群的容错数 3 - ZooKeeper 集群可用的标准 4 - 为什么不能是偶数个节点 4.1 防止由脑裂造成的集群不可用 4.2 奇数 ...

  9. 大规模 K8s 集群管理经验分享 · 上篇

    11 月 23 日,Erda 与 OSCHINA 社区联手发起了[高手问答第 271 期 -- 聊聊大规模 K8s 集群管理],目前问答活动已持续一周,由 Erda SRE 团队负责人骆冰利为大家解答 ...

  10. 12-gauge/bore shotgun

    12-gauge/bore shotgun不是弹夹(magazine)容量为12发的霰(xian)弹枪.[LDOCE]gauge - a measurement of the width or thi ...