1、安装 python 下载目录
https://www.python.org/downloads/
配置环境变量
C:\Python27\Scripts
C:\Python27
C:\Users\13941>pip install pywin32
Collecting pywin32
Could not find a version that satisfies the requirement pywin32 (from versions: )
No matching distribution found for pywin32
You are using pip version 9.0.1, however version 21.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
改为
pip install pypiwin32
还是不行
直接去网站下载吧
[Download Python for Windows Extensions from SourceForge.net](https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win-amd64-py2.7.exe/download)
安装后报另外一个错
ImportError: No module named six解决方法
pip install six 后再运行2 不报错了可以正常抓取了
2、python D:/SDK/platform-tools/systrace/systrace.py --time=15 -o mysystrace.html sched freq gfx input view webview wm am dalvik idle power ss disk load
最新工具:
https://blog.csdn.net/PefectWorld/article/details/119192047 在线抓
https://ui.perfetto.dev/#!/record/buffers
3、 调试:可参考文档 了解 Systrace | Android 开源项目 | Android Open Source Project (google.cn)
4、参数意义
category 解释
gfx Graphic系统的相关信息,包括SerfaceFlinger,VSYNC消息,Texture,RenderThread等;分析卡顿非常依赖这个。
input Input
view View绘制系统的相关信息,比如onMeasure,onLayout等。。
webview WebView
wm Window Manager
am ActivityManager调用的相关信息;用来分析Activity的启动过程比较有效。
sm Sync Manager
audio Audio
video Video
camera Camera
hal Hardware Modules
app Application
res Resource Loading
dalvik 虚拟机相关信息,比如GC停顿等。
rs RenderScript
bionic Bionic C Library
power Power Management
sched CPU调度的信息,非常重要;你能看到CPU在每个时间段在运行什么线程;线程调度情况,比如锁信息。
binder_driver Binder驱动的相关信息,如果你怀疑是Binder IPC的问题,不妨打开这个。
core_services SystemServer中系统核心Service的相关信息,分析特定问题用。
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
| -o <FILE> | 指定trace数据文件的输出路径,如果不指定就是当前目录的trace.html |
| -t N, –time=N | 执行时间,默认5s。绝对不要把时间设的太短导致你操作没完Trace就跑完了,这样会出现Did not finish 的标签,分析数据就基本无效了 |
| -b N, –buf-size=N | buffer大小(单位kB),用于限制trace总大小,默认无上限 |
| -k <KFUNCS>,–ktrace=<KFUNCS> | 追踪kernel函数,用逗号分隔 |
| -a <APP_NAME>,–app=<APP_NAME> | 这个选项可以开启指定包名App中自定义Trace Label的Trace功能。也就是说,如果你在代码中使用了Trace.beginSection("tag"), Trace.endSection;默认情况下,你的这些代码是不会生效的,因此,这个选项一定要开启 |
| –from-file=<FROM_FILE> | 从文件中创建互动的systrace |
| -e <DEVICE_SERIAL>,–serial=<DEVICE_SERIAL> | 指定设备,在特定连接设备上进行跟踪,由[设备序列号](https://developer.android.com/studio/command-line/adb.html#devicestatus)标识 。 |
| -l, –list-categories | 这个用来列出你分析的那个手机系统支持的Trace模块,一般来说,高版本的支持的模块更多 |
5、打开trace
在chrome地址栏中输入”chrome:tracing”
6、看看一些展示的信息