为了排查安卓终端系统底层问题,需要抓取终端的systrace文件分析,下面是操作步骤:
1、安装python 2.7
2、打开cmd执行命令安装python包:pip install pypiwin32
3、解压six-1.16.0.tar.gz,进入目录用命令安装six:python setup.py install
4、adb 连接设备:adb connect x.x.x.x:5555
5、进入目录systrace,执行命令:python systrace.py -t 10 -o systrace.html
6、执行成功后,目录下生成systrace.html,使用google的chrome打开,如果打开是一片空白,在地址栏里输入:chrome://tracing,然后回车进入tracing模式,再打开html
1、安装python 2.7 (内含PIP)
python2.7安装目录下没有Scripts文件夹。这种问题可能是你装的python安装包年代久远了,到官网下载最新的python2.7安装能解决这个问题。
python需下载2.7.9 ~ 2.7.18版本才行
因为platform-tools提供的systrace脚本工具要求的python环境是python2。
其次 pip仅在2.7.9之后才集成在安装包,pip是作为python很重要的模块工具。
这里也给出了python官网的地址,可以到历史版本中去找到对应版本下载。
例如:python2.7.14下载地址:https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi
Scripts文件夹里面一般都会有的东西:
python安装目录下有Scripts文件夹。那么我们就可以开始使用pip安装插件库了
2、打开cmd执行命令安装python包:
默认官方安装:
pip install pypiwin32
国内镜像安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pypiwin32
pip install -i https://mirrors.aliyun.com/pypi/simple/ pypiwin32
pypiwin32
是一个Python库,它提供了对Windows操作系统的底层访问。这个库可以让你在Python中调用Windows API函数,从而实现一些特定的功能,如操作注册表、文件系统、网络等。
3、解压six-1.16.0.tar.gz,进入目录用命令安装six:
python setup.py install
six-1.16.0.tar.gz
是一个 Python 库的压缩包,用于提供兼容 Python 2 和 Python 3 的兼容性功能。要安装six
库,你需要先解压该文件,然后使用 Python 的 setuptools 工具进行安装。
six
库的主要目的是提供Python 2和Python 3之间的兼容性支持。它包含了许多实用函数和装饰器,用于编写同时兼容Python 2和Python 3的代码。
4、adb 连接设备:adb connect x.x.x.x:5555
5、进入目录systrace,执行命令:
python systrace.py -t 10 -o systrace.html
这里的-t 10
表示捕获10秒的数据,-o systrace.html
指定输出文件为systrace.html。
6、使用 Chrome 打开 systrace.html
如果打开是一片空白,在地址栏里输入:chrome://tracing,然后回车进入tracing模式,再打开html
systrace.html文件分析:
在进程的上面有一条很细的进度条,包含了该线程的状态:
灰色: 睡眠。
蓝色: 可以运行(它可以运行,但还未被调度运行)。
绿色: 正在运行(调度程序认为它正在运行)。
红色: 不间断的睡眠(通常发生在内核锁上), 指出I / O负载,对于性能问题的调试非常有用
橙色: 由于I / O负载导致的不间断睡眠。
要查看不间断睡眠的原因(可从sched_blocked_reason跟踪点获取),请选择红色不间断睡眠切片。
按键操作 作用
w 放大,[+shift]速度更快
s 缩小,[+shift]速度更快
a 左移,[+shift]速度更快
d 右移,[+shift]速度更快
f 放大当前选定区域
m 标记当前选定区域
v 高亮VSync
g 切换是否显示60hz的网格线
0 恢复trace到初始态,这里是数字0而非字母o
h 切换是否显示详情
/ 搜索关键字
enter 显示搜索结果,可通过← →定位搜索结果
` 显示/隐藏脚本控制台
? 显示帮助功能