首页 > 其他分享 >Android systrace环境的搭建和使用

Android systrace环境的搭建和使用

时间:2024-08-27 15:16:34浏览次数:4  
标签:ftrace systrace Systrace python trace Android 搭建

一、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文件:

 

 

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性能分析

 

 

标签:ftrace,systrace,Systrace,python,trace,Android,搭建
From: https://www.cnblogs.com/yuanqiangfei/p/18382753

相关文章

  • mysql8.0.39采用克隆方式快速搭建主从同步
    mysql8.0.39采用克隆方式快速搭建主从同步备注:基于物理文件拷贝,数据量越大,越能体现出这种优势。8.0.17以上都可以使用 一、环境192.168.0.101主库192.168.0.102从库Serverversion:8.0.39 二、查看是否已经安装克隆插件#如果没有同步账号,可以新建一个dropus......
  • 【开源分享】PHP工单管理系统源码 带搭建教程
    一、设备报修工作内容1.工单管理:设备报修系统可以将设备故障统计为工单并对工单进行汇总管理。将工单数据进行归类,将故障分类进行查看、统计、分析等等。2.设备状态:工单可通过用户上报设备状态数据进行查看,维修工程师在维修设备前,可以进行设备信息查询。3.设备状态:设备运行......
  • 在线客服系统PHP源码免费开源 (搭建教程+全新UI)
    安装环境宝塔面板  php>8.0 mysql5.7安装搭建1.建站点上传程序2.建数据库 导入数据3.网站目录/public伪静态设置4.修改数据库配置信息5.修改config.js里的配置信息6.启动wokerman命令更详细的搭建教程请下载源码根目录下 安装教程.docx产品亮点:自动回复......
  • MAMP 是一款在 macOS 上搭建本地 Web 开发环境的工具
    MAMP是一款在macOS上搭建本地Web开发环境的工具,包括Apache、MySQL和PHP。以下是MAMP中一些常见的问题及其解决方法:安装问题安装后提示已损坏描述:安装MAMP后提示应用已损坏,无法打开。解决方法:关闭系统完整性保护(SIP)。从可信来源重新下载安装包。使用管理员权......
  • WAMP(Windows + Apache + MySQL + PHP)是在 Windows 系统上搭建本地 Web 开发环境的一种
    WAMP(Windows+Apache+MySQL+PHP)是在Windows系统上搭建本地Web开发环境的一种方式。下面是WAMP中一些常见的问题及其解决方法:启动问题启动后WAMP托盘图标显示橙色描述:WAMP启动后托盘图标显示为橙色,表示某些服务没有正常启动。解决方法:检查Apache或MySQL......
  • XAMPP 是一个非常流行的本地开发环境,用于搭建 PHP、MySQL、Apache 等服务
    XAMPP是一个非常流行的本地开发环境,用于搭建PHP、MySQL、Apache等服务。在使用XAMPP的过程中,可能会遇到各种问题。这里总结了一些常见的问题及其解决方法:安装与配置问题安装失败描述:安装过程中出现错误或安装完成后无法正常启动。解决方法:确保安装过程中没有中断。......
  • Android Launcher启动过程
    ##Launcher的启动流程: 1.Zygote进程–>SystemServer进程–>startOtherService方法–>ActivityManagerService的systemReady方法–>startHomeActivityLocked方法–>ActivityStackSupervisor的startHomeActivity方法–>执行Activity的启动逻辑,执行scheduleResume......
  • Android开发 - LayoutInflater 类将 XML 布局文件转换成对应的 View 对象解析
    LayoutInflater是什么LayoutInflater用于将XML布局文件转换成对应的View对象。它可以理解为一个“布局解析器”,帮助我们将静态的XML文件转换为可以动态操作的Java对象(View及其子类)LayoutInflater的主要作用在Android开发中,我们通常会在res/layout文件夹中......
  • Android开发
    开发工具AndroidStudio软件官网地址:https://developer.android.google.cn/studio#项目构建工具介绍Gradle和Maven都是Java项目的构建工具,但它们有一些区别:1.语法:Gradle使用Groovy语言进行编写,而Maven使用XML。Groovy更加灵活易读,XML更加严谨易于重用。2.性能:Gradle比Maven......
  • Android开发 - BluetoothDevice 类蓝牙连接、通信以及获取设备信息解析
    BluetoothDevice是什么BluetoothDevice是用于表示远程蓝牙设备的类。它提供了与设备进行连接、通信以及获取设备信息的功能。在蓝牙通信中,BluetoothDevice对象代表一个实际的物理设备,比如蓝牙耳机、智能手表、蓝牙音箱等BluetoothDevice的主要作用获取蓝牙设备的信息通......