Android systrace环境的搭建和使用

一、systrace简介

Systrace 是 Android4.1 中新增的性能数据采样和分析工具。它可帮助开发者收集 Android 关键子系统(如 SurfaceFlinger/SystemServer/Kernel/Input/Display 等 Framework 部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。

Systrace 的功能包括跟踪系统的 I/O 操作、内核工作队列、CPU 负载以及 Android 各个子系统的运行状况等。在 Android 平台中,它主要由3部分组成:

  • 内核部分:Systrace 利用了 Linux Kernel 中的 ftrace 功能。所以,如果要使用 Systrace 的话,必须开启 kernel 中和 ftrace 相关的模块。
  • 数据采集部分:Android 定义了一个 Trace 类。应用程序可利用该类把统计信息输出给ftrace。同时,Android 还有一个 atrace 程序,它可以从 ftrace 中读取统计信息然后交给数据分析工具来处理。
  • 数据分析工具:Android 提供一个 systrace.py( python 脚本文件,位于 Android SDK目录/platform-tools/systrace 中,其内部将调用 atrace 程序)用来配置数据采集的方式(如采集数据的标签、输出文件名等)和收集 ftrace 统计数据并生成一个结果网页文件供用户查看。 从本质上说,Systrace 是对 Linux Kernel中 ftrace 的封装。应用进程需要利用 Android 提供的 Trace 类来使用 Systrace.

二、systrace的使用

1、配置python环境

安装python,必须使用python 2.7的版本

使用我提供的安装包或者根据以下方法去官网下载安装包

 官网下载方法:

  • 可以去python官网下载安装,我这里安装的是2.7.16版本

  • 安装windows扩展文件

打开https://pypi.org/project/pypiwin32/219/#files,下载以下两个文件并安装:

 

2、安装完成后,python -V查看python版本是否正确,如果不正确,排查下环境变量配置是否正确。

3、systrace工具在Andorid-SDK目录下的platform-tool里面

连上adb,复现问题,然后在DOS窗口执行以下命令可以抓取systrace信息,最后生成一个trace.html文件:

 

 执行此命令时如果出现以下错误,可以执行pip install six 安装相应的包。

 

python systrace.py -t 10 -b 40960 gfx freq sched input view am wm power idle sync ion memory irq freq -o trace.html
 
-t 后面的10是抓10秒的 trace日志
-b 40960  是buffer缓冲区大小

 上面具体的参数含义可以参考:https://www.cnblogs.com/yuanqiangfei/p/18371847

4、打开trace.html文件分析

 

 具体systrace分析方法可参考以下链接:Android性能分析

 

 

posted @ 2024-08-27 15:13  轻轻的吻  阅读(137)  评论(0编辑  收藏  举报