Android systrace环境的搭建和使用

news/2024/11/16 18:53:13/文章来源:https://www.cnblogs.com/yuanqiangfei/p/18382753

一、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信息,最后生成一个systrace.html文件:

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

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

4、打开systrace.html文件分析

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

threeJs 修改TransformControls的显示位置

有的时候模型的原点不是自身中心而是在场景的[0, 0, 0]位置这个时候想要让TransformControls的位置显示在模型的中心目前找的的处理方式是修改源码 找到updateMatrixWorld方法 updateMatrixWorld () {...for ( let i = 0; i < handles.length; i ++ ) {...if ( this.mode ==…

对于初创电商公司来说,选择API测试工具时应该考虑哪些因素?

成本效益: 初创公司通常预算有限,因此需要考虑工具的购买成本或订阅费用。 寻找提供免费版本或社区版的工具,这些版本可能已经满足基本需求。 易用性: 选择学习曲线较低的工具,以便团队成员可以快速上手。 界面友好和直观的工具可以减少培训时间和成本。 功能性: 确保所选…

confluence

我是有postgres 的文件了 所以我需要重新创建个容器docker run -itd -p 8090:8090 \--name confluence \-e JVM_MINIMUM_MEMORY=4096m \-e JVM_MAXIMUM_MEMORY=4096m \-v /data/confluence:/opt/atlassian/confluence-data \confluence:8.7.1一、部署confluence和postgresql 下…

KepServer 右下角小图标消失,导致无法配置。

描述:右下角小图标消失,导致无法配置。 解决: 重新打开 KEPServerEX 6 Administration

长期埋设,准确测量!GEORMxxxx振弦式钢筋计为岩土工程提供可靠的应力监测

长期埋设,准确测量!GEORMxxxx振弦式钢筋计为岩土工程提供可靠的应力监测GEORMxxxx型钢筋计,能够同步监测混凝土结构内部的温度,而无需进行温度修正。其量程更大,可达到300MPa的拉压应力幅度。GEORMxxxx型钢筋计广泛适用于各类混凝土工程和深基坑开挖安全监测中,可测量混凝…

好用的电商API接口测试工具有什么推荐吗?

电商API接口测试工具推荐:提升开发效率,保障数据质量在电商领域,API接口的稳定性和可靠性至关重要。选择合适的测试工具可以帮助开发者快速发现问题,优化接口性能,从而提升用户体验和业务效率。本文将推荐几款好用的电商API接口测试工具,并探讨它们的特点和优势。 一、Po…

React 高德地图 进京证 (二)

上回书说到,躲开摄像头的基本功能实现了,但有三个核心问题: (1)速度慢 (2)距离远易失败 (3)地图限制 第一个问题:较为简单,把几千个摄像头按行政区划分好带上编号,在路线分段避让时按片儿计算,综合测试速度提升了50%。 //找到每段step途径的 let wayDistrictsCame…

技术如何通过API接口获取自己想要同款商品的数据

确定数据源: 首先,你需要确定哪些平台或服务提供商提供了你感兴趣的商品数据。例如,电商平台、品牌商、市场调研公司等。 了解API文档: 访问提供商的开发者门户网站,阅读API文档。文档会详细介绍如何使用API,包括请求的URL、所需的参数、认证方式、请求限制等。 注册和获…

【C#】数组转置

【需求】 现有一个需求,3行4列的从左到右从上到下的数组,转成4行3列,如图所示: 【实现方法】 通过C#编码实现,两种方法: 第一种方法:public double[] transpose(double[] src, int w, int h){double[] dst = null;if (src == null || src.Length != w * h || w == 0 || …

26-数据增广

随即水平翻转:torchvision.transforms.RandomHorizontalFlip() 上下随机翻转:torchvision.transforms.RandomVerticalFlip()) 随机剪裁,剪裁后的大小为(200,200),(0.1,1)使得随即剪裁原始图片的10%到100%区域里的大小,ratio=(0.5,2)使得高宽比为2:1,torchvision.transfor…

Python-解三元一次方程(Part.2)

一、需要解的方程组为:x + y + z = 26 x - y = 1 2x - y + z = 18 二、下面进入代码实现: 1、导入Sympy库中的符号、方程和求解函数from sympy import symbols, Eq, solve 2、定义变量x, y, z = symbols(x y z) 3、定义方程组# 方程1:x + y + z = 26 eq1 = Eq(x + y + z,…

swupdate+hawkbit部署以及测试 一

buildroot中的swupdate支持 使用的buildroot版本 # Set and export the version string export BR2_VERSION := 2021.11 # Actual time the release is cut (for reproducible builds) BR2_VERSION_EPOCH = 1638734000默认使用的swupdate版本 SWUPDATE_VERSION = 2021.04修改sw…