最近找工作,履历不好,一直没 offer,心情很复杂,再找不到就只有去外地了😭。
今天给自己挖了一堆坑,找到工作就不写了,写多少算多少吧:
- 001.Perfetto 上手指南1 ------ Trace 的抓取
- 002.Perfetto 上手指南2 ------ 基础使用
- 003.Perfetto 上手指南3 ------ CPU 调度分析
- 004.Perfetto 上手指南4 ------ Input 分析
- 005.Perfetto 上手指南5 ------ 窗口显示过程分析
- 006.Perfetto 上手指南6 ------ 卡顿问题分析
- 007.Perfetto 上手指南7 ------ App 冷启动过程分析
- 008.Perfetto 上手指南8 ------ 内存分析
- 009.Perfetto 上手指南9 ------ 开机流程分析
- 010.Perfetto 上手指南10 ------ 如何自定义Trace
- 011.Perfetto 上手指南11 ------ SQL 分析入门
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
命令能正常工作。
接着执行下面的命令:
bash
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
这个命令会启动一个 20 秒钟的跟踪,收集指定的数据源信息,并将跟踪文件保存到 /data/misc/perfetto-traces/trace_file.perfetto-trace
最后,把 trace 文件 pull 出来:
bash
adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace
整个抓取过程就完成了。
2.1.2 使用 record_android_trace 命令抓取
record_android_trace 是 Perfetto 团队提供的一个简化脚本,使得我们的抓取工作更加简单。
bash
# 可能需要梯子
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
record_android_trace 命令能自动处理好路径,抓取完成后自动打开 Trace 文件。
2.2 使用 UI 工具抓取(常用)
Perfetto 也提供了图形化的工具来抓取 Trace,这种方法更简单直观。
该工具以网站的方式提供:ui.perfetto.dev/#!/record
打开网站后,第一步,完成基本的设置:
- 左侧 tab 栏,选择 Record new trace 选项
- 使用 usb 线连接好手机和电脑后,选项好目标平台
- 选择抓取的模式
- Stop when full,抓取的 trace 达到设置的容量后就停止(常用)
- Ring buffer,环形缓存,设置的容量满了后会被覆盖
- Long Trace,任性,一直记录
第二步,配置我们要抓取的内容:
CPU 的选项一般都会选上。
App 相关内容我们都选上
把调用栈选上,这对我们分析代码很有帮助。
最后点击,右上角的 Start Recording
就开始抓取了。抓取完成后会自动打开 trace 文件,非常方便。
2.3 使用配置文件简化命令行抓取
在使用 Perfetto UI 抓取时,当我们配置好以后。
进入到 Recording command
,然后把右侧两个 EOF
之间的内容复制下来,保存在 config.pbtx 配置文件中。
接着就可以用这个配置文件来抓取 Trace 了:
bash
./record_android_trace -c config.pbtx -o trace_file.perfetto-trace -t 10s -b 64mb