Ahao's Technical Blog Ahao's Technical Blog
首页
  • 001.基础篇
  • 002.玩转AOSP篇
  • 003.学穿Binder篇
  • 004.基础组件篇
  • 005.系统启动过程分析
  • 006.Hal开发入门与实践
  • 007.显示系统
  • 008.核心系统服务
  • 009.开发工具
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

阿豪讲Framework

不积跬步无以至千里
首页
  • 001.基础篇
  • 002.玩转AOSP篇
  • 003.学穿Binder篇
  • 004.基础组件篇
  • 005.系统启动过程分析
  • 006.Hal开发入门与实践
  • 007.显示系统
  • 008.核心系统服务
  • 009.开发工具
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础篇

  • 玩转AOSP篇

  • 学穿Binder篇

  • 基础组件篇

  • 系统启动过程分析

  • Hal开发入门与实践

  • 显示系统

  • 核心系统服务

  • 开发工具

    • Perfetto 上手指南1 —— Trace 的抓取
      • 1. Perfetto 是什么?
      • 2. 如何抓取 Trace
        • 2.1 使用命令行抓取 Trace
        • 2.1.1 使用 perfetto 命令抓取
        • 2.1.2 使用 recordandroidtrace 命令抓取
        • 2.2 使用 UI 工具抓取(常用)
        • 2.3 使用配置文件简化命令行抓取
    • Perfetto 上手指南2 —— 基础使用
    • Perfetto 上手指南3 —— CPU 信息分析
  • Framework
  • 开发工具
阿豪
2025-10-08
目录

Perfetto 上手指南1 —— Trace 的抓取

# Perfetto 上手指南1 —— Trace 的抓取

# 1. Perfetto 是什么?

Perfetto 是 google 从 Android10 开始引入的一个全新的平台级跟踪分析工具。它可以记录 Android 系统运行过程中的关键数据,并通过图形化的形式展示这些数据。Perfetto 不仅可用于系统级的性能分析,也是我们学习系统源码流程的好帮手。

# 2. 如何抓取 Trace

使用 Perfetto 一般分两步进行:

  • 收集手机运行过程中的信息,这些信息通常称之为 Trace,收集的过程称之为抓取 Trace。
  • 使用 Perfetto 打开 Trace 文件,分析 Trace

本节介绍如何抓取 Trace 。

# 2.1 使用命令行抓取 Trace

# 2.1.1 使用 perfetto 命令抓取

首先使用 usb 线将电脑和手机连接,确保 adb shell 命令能正常工作。

接着执行下面的命令:

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

这个命令会启动一个 20 秒钟的跟踪,收集指定的数据源信息,并将跟踪文件保存到 /data/misc/perfetto-traces/trace_file.perfetto-trace

最后,把 trace 文件 pull 出来:

adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace
1

整个抓取过程就完成了。

# 2.1.2 使用 record_android_trace 命令抓取

record_android_trace 是 Perfetto 团队提供的一个简化脚本,使得我们的抓取工作更加简单。

# 可能需要梯子
# linux or mac
curl -O https://raw.githubusercontent.com/google/perfetto/master/tools/record_android_trace
chmod u+x record_android_trace
./record_android_trace -o trace_file.perfetto-trace -t 10s -b 64mb \
 sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

# windows
curl -O https://raw.githubusercontent.com/google/perfetto/master/tools/record_android_trace
python3 record_android_trace -o trace_file.perfetto-trace -t 10s -b 64mb \
sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

1
2
3
4
5
6
7
8
9
10
11
12

record_android_trace 命令能自动处理好路径,抓取完成后自动打开 Trace 文件。

# 2.2 使用 UI 工具抓取(常用)

Perfetto 也提供了图形化的工具来抓取 Trace,这种方法更简单直观。

该工具以网站的方式提供:https://ui.perfetto.dev/#!/record

打开网站后,第一步,完成基本的设置:

20240905142700

  • 左侧 tab 栏,选择 Record new trace 选项
  • 使用 usb 线连接好手机和电脑后,选项好目标平台
  • 选择抓取的模式
    • Stop when full,抓取的 trace 达到设置的容量后就停止(常用)
    • Ring buffer,环形缓存,设置的容量满了后会被覆盖
    • Long Trace,任性,一直记录

第二步,配置我们要抓取的内容:

20241204104046

CPU 的选项一般都会选上。

20240905142708

App 相关内容我们都选上

20240905142716

把调用栈选上,这对我们分析代码很有帮助。

最后点击,右上角的 Start Recording 就开始抓取了。抓取完成后会自动打开 trace 文件,非常方便。

# 2.3 使用配置文件简化命令行抓取

在使用 Perfetto UI 抓取时,当我们配置好以后。

20240905142642

进入到 Recording command,然后把右侧两个 EOF 之间的内容复制下来,保存在 config.pbtx 配置文件中。

接着就可以用这个配置文件来抓取 Trace 了:

# linux or mac
./record_android_trace -c config.pbtx -o trace_file.perfetto-trace -t 10s -b 64mb

# windows
python3 record_android_trace -c config.pbtx -o trace_file.perfetto-trace -t 10s -b 64mb
1
2
3
4
5
显示疑难问题分析基础
Perfetto 上手指南2 —— 基础使用

← 显示疑难问题分析基础 Perfetto 上手指南2 —— 基础使用→

最近更新
01
显示疑难问题分析基础
10-08
02
Perfetto 上手指南2 —— 基础使用
10-08
03
Perfetto 上手指南3 —— CPU 信息分析
10-08
更多文章>
Theme by Vdoing | Copyright © 2020-2025 AHao Framework | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式