前言
Systrace 是平台提供的旧版命令行工具,可记录短时间内的设备活动,并保存在压缩的文本文件中。该工具会生成一份报告,其中汇总了 Android 内核中的数据,例如 CPU 调度程序、磁盘活动和应用线程。
一、Systrace是什么?
Systrace 允许你收集和检查设备上运行的所有进程的计时信息。 它包括Androidkernel的一些数据(例如CPU调度程序,IO和APP Thread),并且会生成HTML报告,方便用户查看分析trace内容。
二、使用步骤
使用这个要先安装Python2.7.18
下载最新的跟2.7版本可能不行,最新的systrace不兼容,2.7的没有pip命令。
继续阅读默认您已经安装好Python2.7.18
cmd进入Android SDK Platform-Tools目录
要进入到systrace
然后输入systrace.py,这里可以成功的就不用看下面的了
如果报错ImportError: No module named win32con或者ImportError: No module named six就继续看下面的
1.安装win32con模块
输入命令 pip install pypiwin32
0b4946b298428658604976621dc651c.png
2.如果pip版本过低则需要升级pip
输入命令 python -m pip install --upgrade pip(不升级也行好像)
38816d585ba0c26559379507fb90b43.png
3.安装six模块
输入命令 pip install six 如果报错可以试下先卸载six模块在重新安装,卸载命令是 pip uninstall six
c2e98133e4923983b9df81e11fed6ce.png
4.输入systrace -l
c2195b4bf8f86df215daecacce5c941.png
看到这里就表明systrace.py能使用了
5.输入systrace.py
14eb2c8b4c9796232d3dc98a45af874.png
启动之后你按回车他就会停止录制并且在目录生成一个trace.html文件,生成的trace.html文件默认在systrace目录下
6.输入python systrace.py -t 5 -o C:\sourcecode\a.html gfx input view am dalvik sched wm disk res -a com.example.nqct
可以指定输出目录和时间5s
87d10146373750725948c2ef3daeec1.png
7.命令用法:
python systrace.py [options] [category1] [category2] ... [categoryN]
options
其中options可取值:
options | 解释 |
---|---|
-o <FILE> | 输出的目标文件 |
-t N, –time=N | 执行时间,默认5s |
-b N, –buf-size=N | buffer大小(单位kB),用于限制trace总大小,默认无上限 |
-k <KFUNCS>,–ktrace=<KFUNCS> | 追踪kernel函数,用逗号分隔 |
-a <APP_NAME>,–app=<APP_NAME> | 追踪应用包名,用逗号分隔 |
–from-file=<FROM_FILE> | 从文件中创建互动的systrace |
-e <DEVICE_SERIAL>,–serial=<DEVICE_SERIAL> | 指定设备 |
-l, –list-categories | 列举可用的tags |
category
category可取值:
category | 解释 |
---|---|
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 |
sched | CPU Scheduling |
irq | IRQ Events |
freq | CPU Frequency |
idle | CPU Idle |
disk | Disk I/O |
mmc | eMMC commands |
load | CPU Load |
sync | Synchronization |
workq | Kernel Workqueues |
memreclaim | Kernel Memory Reclaim |
regulators | Voltage and Current Regulators |
示例
例如,在systrace.py所在目录下执行指令:
python systrace.py -b 32768 -t 5 -o mytrace.html wm gfx input view sched freq
./systrace.py -b 32768 -t 5 -o mytrace.html wm gfx input view sched freq //等价
又例如,输出全部的trace信息
python systrace.py -b 32768 -t 5 -o mytrace.html gfx input view webview wm am sm audio video camera hal app res dalvik rs bionic power sched irq freq idle disk mmc load sync workq memreclaim regulators
注:收集trace,需要提前安装python,并且一定要注意必须是python 2.x,而不是能3.x,否则可能会出现问题。另外,buffer大小不可过大,否则会出现oom异常。
示例1
systrace.py -t 10 -o d:/mytrace2.html wm gfx input view sched freq -a com.example.myapplication
三、查看systrace
有两种查看方式:
1.旧方法:使用谷歌浏览器,在地址栏输入 chrome://tracing/
然后看到load按钮点击导入刚刚生成的文件即可
2.新方法(推荐):在浏览器地址栏输入 https://ui.perfetto.dev/
点击 Open trace file 导入刚才的文件
be2325359e38cc056e876a6fb7ba8fb.png
网友评论