Andorid 使用systrace进行性能分析

本文介绍如何使用Systrace命令生成系统跟踪报告,包括配置环境、运行命令的语法及选项,适用于Android开发者优化应用程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • systrace 命令会调用 Systrace 工具,您可以借助该工具收集和检查设备上在系统一级运行的所有进程的时间信息。

    本文档说明了如何通过命令行生成 Systrace 报告。在搭载 Android 9(API 级别 28)或更高版本的设备上,您还可以使用“系统跟踪”系统应用生成 Systrace 报告。

    如需运行 systrace,请完成以下步骤:

    1. 从 Android Studio 下载并安装最新的 Android SDK 工具
    2. 安装 Python 并将其添加到工作站的 PATH 环境变量中。
    3. android-sdk/platform-tools/ 添加到 PATH 环境变量。此目录包含由 systrace 程序调用的 Android 调试桥二进制文件 (adb)。
    4. 使用 USB 调试连接将搭载 Android 4.3(API 级别 18)或更高版本的设备连接到开发系统。

    systrace 命令在 Android SDK 工具软件包中提供,并且可以在 android-sdk/platform-tools/systrace/ 中找到。

    语法

    如需为应用生成 HTML 报告,您需要使用以下语法通过命令行运行 systrace

        python systrace.py [options] [categories]
        
    

    例如,以下命令会调用 systrace 来记录设备活动,并生成一个名为 mynewtrace.html 的 HTML 报告。此类别列表是大多数设备的合理默认列表。

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

    提示:如果要在跟踪输出中查看任务名称,必须在命令参数中添加 sched 类别。

    如需查看已连接设备支持的类别列表,请运行以下命令:

    $ python systrace.py --list-categories
        
    

    如果您未指定任何类别或选项,systrace 会生成包含所有可用类别的报告,并使用默认设置。可用类别取决于您所使用的已连接设备。

    全局选项

    全局选项说明
    -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)都包括跟踪检测调用,这些调用可在您启用应用级跟踪时提供有用的信息。如需了解详情,请参阅定义自定义事件。如需跟踪搭载 Android 9(API 级别 28)或更高版本的设备上的所有应用,请传递用添加引号的通配符字符 "*"
    --from-file=file-path根据文件(例如包含原始跟踪数据的 TXT 文件)创建交互式 HTML 报告,而不是运行实时跟踪。
    -e device-serial|--serial=device-serial在已连接的特定设备(由对应的设备序列号标识)上进行跟踪。
    categories包含您指定的系统进程的跟踪信息,如 gfx 表示用于渲染图形的系统进程。您可以使用 -l 命令运行 systrace,以查看已连接设备可用的服务列表。
### 使用 Systrace 工具进行性能分析 #### 准备工作 为了能够在 Android Studio使用 Systrace 进行性能分析,需先完成一些准备工作。确保已通过 Android SDK Manager 安装了 Android SDK Platform-Tools 组[^4]。 #### 启动 Systrace 录制 在 Android Studio 的菜单栏中找到 `Profile` 或者 `Android Profiler` 选项来启动性能剖析器。对于较新版本的 Android Studio,建议直接利用内置的 CPU Profiler 功能来进行更便捷的操作。不过要特别注意的是,在某些特定情况下仍然可以手动执行 systrace 脚本来获取更加详细的追踪数据[^1]。 #### 配置录制参数 当打开 CPU Profiler 后,可以选择不同的配置文以适应不同场景的需求。例如,如果关注点在于游戏线程,则应着重于选择那些能够反映多线程或多核处理情况下的设置项[^2]。 #### 开始与停止记录 一旦选择了合适的配置之后就可以点击 “Record” 按钮开始捕捉应用运行期间的关键事信息。这些信息不仅限于应用程序本身的调用栈轨迹,还包括底层操作系统层面诸如 CPU 调度、磁盘 I/O 等重要指标[^3]。 #### 查看和解析报告 录制结束后将会自动生成一份 HTML 格式的交互式图表展示页面。在这个可视化界面上可以通过缩放和平移操作细致观察各个时间片段内的具体表现状况,并据此作出针对性优化措施。 ```python import os os.system('python -m systrace.cpu freq idle am wm gfx view --time=10') ``` 此命令将在指定时间段内收集有关 CPU、频率、空闲状态等方面的信息并保存成 html 文以便后续查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值