Perfetto —— 靠谱的trace利器

本文讲述了作者如何通过 Perfetto 工具解决安卓 CTS 测试中帧率不符预期的问题,详细步骤包括开启traceUI、录制trace、复现场景并分析Perfetto UI。重点介绍了使用Perfetto替代传统工具如systrace和atrace的便捷之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近踩到的坑,报了一个cst的测试项fail,帧率不符合预期,对应的测项进程是android.view.cts

肯定是要抓sytrace看看了

但是,试了systrace和atrace去抓,只抓了launcher的绘制,并没有android.view.cts的绘制信息

用-a指定app也是一样

经过实验,可以试下perfetto抓取(果然,google极力推荐使用还是没错的,要跟上工具的变化)

1、开启trace UI

am start com.android.traceur/com.android.traceur.MainActivity

需要开启开发者模式的,不然会打开闪退,因为对应的IAtrceService没有启动

settings put global development_settings_enabled 1

2、开启record trace,即可开始录制

3、复现场景

4、再次启动trace UI,关闭record trace

5、获取trace文件

/data/local/traces/

6、打开Perfetto UI ,加载trace文件分析

可以抓到cts的测项trace了

也可使用open with legacy UI,使用传统的systrace UI去分析trace,只是大小有限制,试过一百多M就直接报error,而perfetto仍然可以打开

备注:也可以用命令去抓,参考perfetto  |  Android 开发者  |  Android Developers (google.cn),就是麻烦了点

Perfetto:

开启traced|traced_peobes进程

setprop persist.traced.enable 1

ps -ef | grep -E "traced|traced_peobes"

perfetto -o /data/misc/perfetto-traces/trace_log -t 120s -b 100mb -s 150mb sched freq idle am wm gfx view input

atrace:

atrace -t 10 -b 20480 gfx sched sync view input webview wm am hal res rs video -o /data/a.trace

### 如何使用 Perfetto 在线捕获 Trace 数据 #### 启用开发者选项并配置设备 为了在线捕获 trace 数据,需先启用 Android 设备上的开发者模式。这通常通过进入 **系统设置** -> **关于手机** 并连续点击版本号直到激活开发者选项来完成[^2]。 #### 配置 Perfetto 客户端环境 对于远程或在线捕捉,建议在服务器上安装最新版的 `perfetto` 命令行工具 (CLI),可以通过包管理器获取或者直接下载二进制文件。确保 CLI 工具能够连接到目标 Android 设备。 #### 设置网络调试通道 如果打算跨越互联网收集数据,则需要建立安全可靠的通信链路。一种方法是在本地机器与远程主机间创建 SSH 隧道,从而允许 perfetto CLI 透过隧道访问远端设备的服务接口。 #### 执行在线追踪命令 一旦准备就绪,在终端执行如下命令启动实时跟踪: ```bash adb shell perfetto -c /path/to/config.pbtxt --txt ``` 这里的 `/path/to/config.pbtxt` 是预先定义好的配置文件路径,该文件指定了想要采集的具体事件类型和其他参数。此操作会在指定的时间间隔内记录性能指标并将结果保存为文本格式输出。 #### 将 trace 文件转换为 HTML 可视化报告 当完成了所需时间长度的数据收集之后,利用 Python 脚本将原始 .trace 或者其他格式的日志转化为易于理解的形式: ```python import subprocess subprocess.run(['systrace.py', '--from-file', '~/captured_trace_file.trace', '-o', '~/output_report.html']) ``` 上述脚本读取已有的 `.trace` 文件并通过 systrace 解析成交互式的网页文档以便后续分析[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值