环境搭建
systrace.py
Android SDK Platform-Tools早期版本当中,提供了systrace.py脚本工具,但在最新版本已由 Studio 性能分析器、gpuinspector.dev 或 Perfetto 取代。
官网地址
SDK平台工具版本说明
//这是官网给出的修订版本
33.0.1(2022 年 3 月)
adb
修复了 Windows mdns 崩溃问题。
修复了旧设备上的 enabled-verity/disable-verity 问题。
修复了旧设备上的“安装多个”问题
改进了帮助输出内容,以包含所有受支持的压缩方法。
systrace
已移除。请改用 Studio 性能分析器/gpuinspector.dev/Perfetto。
所以我们需要下载这之前的版本
- Android SDK 管理器可以帮助您下载 SDK 工具、平台和开发应用所需的其他组件。下载后,您可以在标示为 Android SDK Location 的目录中找到各软件包。
- 网上的历史版本下载,这里本人提供一个可用的版本,可在文章顶部下载。
python2.7.x
python需下载2.7.9 ~ 2.7.18版本才行
因为platform-tools提供的systrace脚本工具要求的python环境是python2。
其次 pip仅在2.7.9之后才集成在安装包,pip是作为python很重要的模块工具。
这里也给出了python官网的地址,可以到历史版本中去找到对应版本下载。
Python官网
如果上述两个环境都搭建好了,可以测试一下环境的完整性。
- 通过win+r启动运行,输入cmd启动命令提示符
- 输入python --version 查看python版本,如果提示不能使用python命名,看看系统环境变量是否配置
- 接着输入python -m pip -V查看pip的版本
- 命令提示符切换到platform-tools/systrace目录下
- 执行 python systrace.py -h 看看是否有错误提示
问题1: ImportError: No module named win32con
解决方法,可以先尝试:
python -m pip install --upgrade pip
python -m pip install pywin32
若上述方法不行,
可以尝试下载pywin32-220.win-amd64-py2.7.exe,然后手动安装
问题2: ImportError: No module named six
python -m pip install six
如果不行,
可以尝试下载, six-1.16.0-py2.py3-none-any.whl
Systrace使用
先附上一张图片
python systrace.py [options] [categories]
Systrace 命令通过携带不同参数,可以抓取应用进程不同的trace数据,然后合并生成一个html文件,使用chrome浏览器打开html文件,就可以非常方便的以图形化的形式来查看和分析trace数据。
这里提供两个示例命令
// 这里仅仅抓取10s的数据信息,并在当前目录下生成trace.html文件,抓取的trace数据事件范围为 gfx wm
python systrace.py -o trace.html -t 10 gfx wm
Starting tracing (10 seconds)
Tracing completed. Collecting output...
Outputting Systrace results...
Tracing complete, writing results
Wrote trace HTML file: file:\Desktop\platform-tools\systrace\trace.html
// 这里没有限制抓取时间,当用户按下enter键就会停止抓取,抓取的数据范围也特别多,这里就不赘述了
python systrace.py -o trace.html gfx view wm am dalvik input sched freq idle
Starting tracing (stop with enter)
Tracing completed. Collecting output...
Outputting Systrace results...
Tracing complete, writing results
Wrote trace HTML file: file:\Desktop\platform-tools\systrace\trace.html
可以用过‘-l’选项来查看目标机支持的systrace事件全集
$ ./systrace -l
gfx - Graphics
input - Input
view - View System
webview - WebView
wm - Window Manager
am - Activity Manager
sm - Sync Manager
audio - Audio
video - Video
camera - Camera
hal - Hardware Modules
app - Application
res - Resource Loading
dalvik - Dalvik VM
rs - RenderScript
bionic - Bionic C Library
power - Power Management
pm - Package Manager
ss - System Server
database - Database
network - Network
adb - ADB
pdx - PDX services
sched - CPU Scheduling
irq - IRQ Events
freq - CPU Frequency
idle - CPU Idle
disk - Disk I/O
workq - Kernel Workqueues
memreclaim - Kernel Memory Reclaim
regulators - Voltage and Current Regulators
binder_driver - Binder Kernel driver
binder_lock - Binder global lock trace
pagecache - Page cache
NOTE: more categories may be available with adb root