Perfetto项目Android系统性能追踪快速入门指南

Perfetto项目Android系统性能追踪快速入门指南

perfetto Performance instrumentation and tracing for Android, Linux and Chrome (read-only mirror of https://android.googlesource.com/platform/external/perfetto/) perfetto 项目地址: https://gitcode.com/gh_mirrors/pe/perfetto

前言

Perfetto是Google开发的一款高性能系统级追踪工具,专门用于收集和分析Android设备的系统级性能数据。本文将详细介绍如何在Android设备上使用Perfetto进行性能追踪。

准备工作

服务启动

Perfetto基于平台服务实现,不同Android版本需要注意:

  • Android 11(R)及以上:服务默认启用
  • Android 9(P)和10(Q):需要手动启用服务
adb shell setprop persist.traced.enable 1
  • Android 9以下:需要使用record_android_trace脚本

追踪方法

Perfetto提供多种追踪方式,适合不同使用场景。

1. 使用Perfetto UI(推荐新手)

图形化界面操作简单直观:

  1. 打开Perfetto UI
  2. 左侧菜单选择"Record new trace"
  3. 选择需要追踪的数据源
    • 建议新手从"CPU"下的"Scheduling details"开始
  4. 连接设备并开始记录
  5. 等待追踪完成并查看结果

优势:

  • 可视化配置
  • 实时预览
  • 无需记忆复杂命令

2. 命令行方式(适合高级用户)

使用辅助脚本

推荐使用record_android_trace脚本,它简化了操作流程:

# 下载脚本
curl -O [脚本地址]
chmod u+x record_android_trace

# 示例用法
./record_android_trace -o trace.perfetto-trace -t 30s -b 64mb \
sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

参数说明:

  • -o:输出文件
  • -t:追踪时长
  • -b:缓冲区大小
  • 后面跟随的是要追踪的类别
直接使用设备命令

对于熟悉Perfetto的用户,可以直接使用设备上的命令:

adb shell perfetto -o /data/misc/perfetto-traces/trace.perfetto-trace -t 20s \
sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

注意事项:

  • Ctrl+C可能无法正常终止追踪
  • Android 12以下版本有SELinux限制
  • 长时追踪建议使用后台模式

3. 完整配置文件方式

对于需要精细控制的场景,可以使用配置文件:

duration_ms: 10000

buffers: {
    size_kb: 8960
    fill_policy: DISCARD
}
data_sources: {
    config {
        name: "linux.ftrace"
        ftrace_config {
            ftrace_events: "sched/sched_switch"
            atrace_categories: "gfx"
        }
    }
}

使用方式:

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

常见问题处理

  1. 文件权限问题

    • Android 10以下:使用adb shell cat方式获取追踪文件
    • Android 12+:可以使用/data/misc/perfetto-configs/目录
  2. 长时追踪

    PID=$(perfetto --background)
    # ...执行测试...
    kill $PID
    
  3. 配置文件格式

    • Android Q+支持文本格式(--txt)
    • Android P需要使用二进制格式

最佳实践建议

  1. 对于应用开发者:重点关注gfx、view等UI相关类别
  2. 对于系统开发者:需要关注sched、binder等底层事件
  3. 内存分析:添加memory数据源
  4. 性能测试:适当增加缓冲区大小和追踪时长

结语

Perfetto作为Android平台新一代的性能分析工具,提供了从简单到高级的多种使用方式。无论是应用开发者还是系统工程师,都能找到适合自己的使用模式。建议新手从UI方式开始,逐步过渡到命令行方式,最终掌握配置文件方式以获得最大的灵活性。

通过本文介绍的方法,您应该已经掌握了在Android设备上进行性能追踪的基本技能。实际使用时,可以根据具体需求组合不同的数据源和配置参数,获得最有价值的性能数据。

perfetto Performance instrumentation and tracing for Android, Linux and Chrome (read-only mirror of https://android.googlesource.com/platform/external/perfetto/) perfetto 项目地址: https://gitcode.com/gh_mirrors/pe/perfetto

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

管旭韶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值