systrace打印
转载至https://blog.****.net/wtbee/article/details/97929078, 亲测有效,补充2点:
- systrace.py脚本可以在windows命令窗口执行,也可以在ubuntu等linux系统执行;并不一定如本文转载所说的在systrace.py所在目录打开Powershell窗口才可以;
- pip install pywin32后,我这边执行systrace.py脚本,提示还需要安装six模块,继续pip install six即可。
另外记录下本人常用的systrace打印命令:
python D:\SDK\platform-tools\systrace\systrace.py -t 10 -o trace.html sched gfx input view wm am webview
atrace -b 20000 -z gfx input view wm am res dalvik sched freq idle -t 10 > /data/trace.out,python D:\SDK\platform-tools\systrace\systrace.py --from-file F:\trace.out-o trace.html
以下是转载内容:
如何用命令行抓取Systrace
预备环境
- Android SDK
- 首先需要安装配置好Android SDK
- Python环境
- 从如下链接下载Python安装程序
https://www.python.org/downloads/windows/
注意,由于SDK中的python脚本不支持3.x后的版本,建议下载如下版本
1. 安装完成后、需要配置环境变量如下(根据个人安装路径来配置)
2. 需要安装pywin32模块(解决:ImportError: No module named 'win32com'报错),在Python安装、配置完成之后,在命令行中敲入如下命令进行安装:
3. 设备连接电脑、adb root \adb remount 成功。
抓取systrace
方法1:直接用python脚本命令抓取systrace
1. 进入SDK中systrace.py脚本的路径
2. Shift + 鼠标右键,打开Powershell窗口
3. 在Powershell窗口中敲入如下命令即可抓取Systrace
python systrace.py --time=10 -b 48000 -o systrace.html gfx view wm am
其中:-time表示抓取的时长,-b表示buffer size,-o表示输出的文件名,gfx\view\wm\am\等表示要抓取Systrace的Module的名字。具体还有一些其它参数请自行百度。
生成的systrace.html文件在systrace.py脚本所在的路径中
方法2: adb命令抓取Systrace、并用python脚本转换为html
- adb root
- adb remount
- adb shell
- 执行如下命令:
atrace -z -b 96000 gfx input view wm am hal res dalvik rs sched freq idle disk mmc -t 15 > /data/local/tmp/trace_output
敲入命令之后,开始复现问题,等抓取的时长到了之后会自动退出。
命令的含义如之前的说明,其中输出的trace raw data在手机的/data/local/tmp/trace_output文件中
5. 将trace_output pull出来,拷贝到systrace.py脚本的路径下面。
6. Shift + 鼠标右键,打开Powershell窗口,输入如下命令将trace_output转换成可以用Chrome浏览器查看的output.html。
python systrace.py --from-file trace_output -o output.html
输出的output.html就是我们要的systrace文件。
参考文档:https://www.jianshu.com/p/79e89a414b92