Perfetto 简介
Perfetto 是一个用于 Android、Linux 和 Chrome OS 上的系统跟踪器,可以帮助开发人员分析应用程序和系统的性能问题。它提供了丰富的跟踪数据源,包括 CPU、内存、网络和 I/O 等,可以帮助开发人员深入了解系统的内部运行状况。
Perfetto 的设计目标是高效、轻量级和可扩展的。它使用了一些先进的技术,如采样器、缓冲区复用和在线分析,以最小化对系统性能的影响。同时,Perfetto 还支持多种数据输出格式,如 JSON、SQLite 和 Chrome Trace Event 格式,方便开发人员进行后续分析和可视化。
Perfetto 工具主要通过 adb shell 命令行界面进行使用,在命令行中配置和启动跟踪会话,并从设备中获取跟踪数据。此外,Perfetto 还提供了一个 Web UI 工具,可以帮助用户可视化分析跟踪数据。
总体来说,Perfetto 是一个非常强大和实用的工具,适用于各种性能分析场景,如应用程序优化、系统调试和故障排除等。
官方教程
网址:
https://perfetto.dev/docs/quickstart/android-tracing?_gl=11a9i6wm_gaNzYxMTUxMDgyLjE2OTcxOTE3MjI._ga_BD89KT2P3C*MTY5NzYyMjYxNy4xMy4xLjE2OTc2MjI3MzguMC4wLjA.#perfetto-cmdline
我是用来跟踪Android 系统,所以着重看“Record traces on Android” 这一部分。
我用的是 Android 9,所有首先要启动 tracing services:
然后开始 Recording a trace, 官方提供了两种方式:命令行工具和UI 工具,我选择了命令行工具中的脚本。
使用命令行工具,首先要安装adb 工具,这个一般都有。然后使用helper 脚本, 这种方式比较简单。在Windows 系统:
第一行是把record_android_trace 脚本拉到本地,第二行是用python 执行脚本。
我执行完第二行,没有反应,发现是我安装的python 就叫python,不叫python3,替换掉后,脚本开始执行了。但是报了以下错误:
根据提示是下载tracebox 时超时,我也没有魔法上网工具,就想着在网上找个资源下载下来,没想到在浏览器中直接打开这个url 就下载完成了,不知道为什么通过脚本不行。
从脚本上看,下载报错首先是因为我用的是android 9 平台,其次是args.sideload_path 为空,才会去走get_perfetto_prebuilt 进行下载。现在已经下载好tracebox,就把它放到当前目录,并加到sideload_path 参数中就好了:
脚本抓完包后,会自动在网页中打开,非常方便:
至此,抓包成功。