Android Systrace工具

摘抄自:https://developer.android.com/topic/performance/tracing

Systrace是Android平台提供的一款用于记录短期内设备活动的工具,记录的结果会集成在一个HTML文件中。

1. systrace命令

1.1 命令获取

Systrace工具通过systrace命令进行调用。要运行systrace命令,需要做以下准备:

  • 下载最新版本的Android SDK Tools。
    – systrace命令位于Android SDK Tools中,下载最新版本的SDK后,systrace命令就在android-sdk/platform-tools/systrace/目录下
  • 安装Python环境
    – systrace.py是一个Python文件,运行它需要Python环境

1.2 基本语法

systrace命令的使用格式如下:

python systrace.py [options] [categories]

相关的选项如下:

选项 说明
-h | --help 显示帮助信息
-l | --list-categories 列出您的已连接设备可用的跟踪类别
-o file 将 HTML 跟踪报告写入指定的文件。如果您未指定此选项,systrace 会将报告保存到 systrace.py 所在的目录中,并将其命名为 trace.html
-t N | --time=N 跟踪设备活动 N 秒。如果您未指定此选项,则 systrace 会提示您通过从命令行按 Enter 键来结束跟踪
-b N | --buf-size=N 使用N KB的跟踪缓冲区大小。使用此选项,您可以限制跟踪期间收集到的数据的总大小
-k functions | --ktrace=functions 跟踪逗号分隔列表中指定的特定内核函数的活动
-a app-name | --app=app-name 启用对应用的跟踪,指定为包含进程名称的逗号分隔列表。应用必须包含 Trace 类中的跟踪检测调用。您应在分析应用时指定此选项。很多库(例如 RecyclerView)都包括跟踪检测调用,这些调用可在您启用应用级跟踪时提供有用的信息
–from-file=file-path 根据文件(例如包含原始跟踪数据的 TXT 文件)创建互动式 HTML 报告,而不是运行实时跟踪
-e device-serial | --serial=device-serial 在已连接的特定设备(由对应的设备序列号标识)上进行跟踪
categories 包含您指定的系统进程的跟踪信息,如 gfx 表示用于渲染图形的系统进程。您可以使用 -l 命令运行 systrace,以查看已连接设备可用的服务列表。

如果不想深入了解上的选项参数,Android官方提供了一条能够适用于大多数设备的指令如下:

python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
        binder_driver hal dalvik camera input res

2. 报告浏览

通过systrace后,我们会得到一个html报告(如果使用上面的命令,会得到一个名为mynewtrace.html报告),使用浏览器打开这个报告后,得到类似下图的网页:

Android Systrace工具_第1张图片

2.1 快捷键

屏幕上有如下的四个选择按键,用于选择当前鼠标的功能,从上到下分别为:选择、移动、缩放和时间,在键盘上可以通过字幕上方的数字按键1~4来进行选中。
鼠标功能选择按键
除此之外,还有以下按键能帮助我们更加快速的阅读报告:

快捷键 功能
w 放大跟踪时间轴。
s 缩小跟踪时间轴
a 向左边平移时间轴
d 向右边平移时间轴
m 高亮当前选区
G 在当前所选任务的开头显示网格
Shift + G 在当前所选任务的末尾显示网格
向左箭头 在当前选定的时间轴上选择上一个事件
向右箭头 在当前选定的时间轴上选择下一个事件

2.2 报告阅读

报告从上到下分为:

  • 互动部分,与用户交互的应用或者游戏
  • CPU活动,记录CPU的活动情况
  • 系统事件
  • 显示帧,记录当前已创建的线程的状态

你可能感兴趣的:(Android)