Systrace工具

最后更新于:2022-04-01 22:54:38

> [Systrace Walkthrough](https://developer.android.com/intl/zh-cn/tools/performance/systrace/index.html)  > [Systrace](http://developer.android.com/intl/zh-cn/tools/help/systrace.html#options)  > [Analyzing UI Performance with Systrace](http://developer.android.com/intl/zh-cn/tools/debugging/systrace.html#app-trace)  > [Speed up your app](http://blog.udinic.com/2015/09/15/speed-up-your-app?from=timeline&isappinstalled=0) # Systrace能做什么? * 计算容器的性能 * 发现性能的瓶颈 # Systrace的使用准备 * 4.1以上 * root * Android SDK Tools 20 * python环境 # Systrace启动 你可以通过命令行或者Device Monitor两种方式收集Systrace信息,以下以命令行为例介绍收集方式(因为我Device Monitor的方式报错)。  首先进入sdk下的platform-tools/systrace目录下:  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d354432b.jpg)  然后在命令下执行以下命令来收集数据:  `python systrace.py --time=10 -o mynewtrace.html sched gfx view wm` 上面的参数–time为间隔时间,-o为文件名,更详细的参数信息如下: | 参数名 | 意义 | | --- | --- | | `-h,--help` | 帮助信息 | | `-o ` | 保存的文件名 | | `-t N,--time=N` | 多少秒内的数据,默认为5秒,以当前时间点往后倒N个时间 | | `-b N,--buf-size=N` | 单位为千字节,限制数据大小 | | `-k --ktrace=` | 追踪特殊的方法 | | `-l,--list-categories` | 设置追踪的标签 | | `-a ,--app=` | 包名 | | `--from-file=` | 创建报告的来源trace文件 | | `-e ,--serial=` | 设备号 | 其中标签可选项如下: | 标签名 | 意义 | | --- | --- | | gfx | Graphics | | input | Input | | view | View | | webview | Webview | | vm | Window Manager | | am | Activity Manager | | audio | Audio | | video | Video | | camera | Camera | | hal | Hardware Modules | | res | Resource Loading | | dalvik | Dalvik VM | | rs | RenderScript | | sched | Cpu Scheduling | | freq | Cpu Frequency | | membus | Memory Bus Utilization | | idle | Cpu Idle | | disk | Disk input and output | | load | Cpu Load | | sync | Synchronization Manager | | workq | Kernel Workqueues | 以上标签并不支持所有机型,还有要想在输出中看到任务的名称,需要加上sched. 上面的命令执行完后,会生成一个html文件:  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d356992a.jpg)  打开该文件后,我们会看到如下页面:  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d35c7d9b.jpg) # systrace快捷键 | 快捷键 | 作用 | | --- | --- | | w | 放大 | | s | 缩小 | | a | 左移 | | d | 右移 | | f | 返回选中区域,切放大选中区域 | ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d3606c69.jpg) # Alerts Alerts一栏标记了以下性能有问题的点,你可以点击该点查看详细信息,右边侧边栏还有一个Alerts框,点击可以查看每个类型的Alerts的数量: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d3674b15.jpg) # Frame 在每个包下都有Frame一栏,该栏中都有一个一个的`F`代表每一个`Frame`,用颜色来代表性能的好坏,依次为`绿-黄-红`(性能越来越差),点击某一个`F`,会显示该Frame绘制过程中的一些Alerts信息:  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d36c6c64.jpg) 如果你想查看Frame的耗时,可以点击某个F标志,然后按`m`键:  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-12-31_56849d3718f7f.jpg)
';