你们要的App电量分析测试来了

Batterystats 是包含在 Android 框架中的一种工具,用于收集设备上的电池数据。您可以使用 adb 将收集的电池数据转储到开发计算机,并创建一份可使用 Battery Historian 分析的报告。Battery Historian 会将报告从 Batterystats 转换为可在浏览器中查看的 HTML 可视化内容。

适合的场景:

显示进程从什么位置以及通过何种方式消耗电池电量。

识别系统为了延长电池续航时间可能会延迟甚至移除应用中的哪些任务。

01 安装Battery Historian

安装Battery Historian的最简单方法是使用Docker。对于其他安装方法(包括从源代码编译),请参阅项目的GitHub页面上的自述文件。

要使用 Docker 进行安装,请执行以下操作:

按照 Docker 网站上的说明安装 Docker 社区版。

要确认 Docker 是否已正确安装,请打开命令行并输入以下命令:

docker run hello-world
  • 1

使用以下命令运行 Battery Historian 映像

docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
  • 1

Battery Historian 将使用您选择的端口,如使用 port_number 指定的端口。

在浏览器中转到 Battery Historian 以确认它正在运行。

具体地址因操作系统而异:

对于Linux和Mac

Battery Historian可在http://localhost:port_number下找到。

对于Windows

启动Docker后,它会告诉您其所用计算机的IP地址。因此,例如,如果IP地址为123.456.78.90,则Battery Historian可在http://123.456.78.90:port_number下找到

您将看到 Battery Historian 初始页,可通过此页面上传和查看电池统计信息。

图片

02 使用Batterystats收集数据

要使用Batterystats从您的设备收集数据并在Battery Historian中打开该数据,请执行以下操作:

移动设备连接到计算机。

在终端窗口中,关闭正在运行的 adb 服务器。

adb kill-server
  • 1

重启 adb 并检查是否有已连接的设备。

adb devices
  • 1

系统应该会列出您的设备,如果您没有看到任何设备,请确保您的手机已连接,且 USB 调试功能已开启,然后终止并重启 adb

重置电池数据收集

adb shell dumpsys batterystats --reset
  • 1

设备始终会在后台收集 batterystats 和其他调试信息。重置操作会清除旧的电池收集数据。如果不重置,输出内容会超大。

断开设备与计算机的连接,以便仅消耗设备电池的电量。使用您的应用并执行您想要获取数据的操作;例如,断开 WLAN 连接并将数据发送到云端。重新手机连接。确保您的手机已被识别

转储所有电池数据。此过程可能需要一段时间:

adb shell dumpsys batterystats > [path/]batterystats.txt
  • 1

系统会使用可选路径参数在您指定的目录中创建 batterystats.txt 文件。如果您没有指定路径,则会在您的主目录中创建该文件。

使用原始数据创建报告

adb bugreport > [path/]bugreport.zip
  • 1

错误报告可能需要几分钟才能完成。在完成之前,请勿断开设备连接或取消该进程。
与上面的 batterystats.txt 一样,这些文件是系统使用可选的路径参数在您指定的目录中创建的。如果您没有指定路径,系统将在您的主目录中创建这些文件。

如果 Battery Historian 尚未运行,请使用以下命令运行

docker --run -p port_number:9999 gcr.io/android-battery-historian:2.1 --port 9999
  • 1

要在 Battery Historian 中查看数据,请在浏览器中打开 Battery Historian。

(对于 Mac 和 Linux,Battery Historian 在 http://localhost:port_number 下运行。对于 Windows,Battery Historian 在 http://your_IP_address:port_number 下运行。)

点击 Browse,然后选择您在上面创建的错误报告文件

点击 Submit。Battery Historian 将打开您根据 batterystats 数据创建的图表。

03 使用Battery Historian图表查看数据

Battery Historian图表会显示一段时间内与电源相关的事件。

当系统组件处于活动状态时,每行都会显示一个彩色条形段,以此表示正在消耗电池电量。该图表不会显示该组件使用的电量,仅表示相关应用处于活动状态。图表按类别进行整理,并显示每个类别随时间变化的一个条形,如图表的 X 轴所示。

图片

从下拉列表中添加其他指标:

将光标悬停在信息图标上可查看有关每个指标的更多信息,包括图表中使用的颜色对应的键

将光标悬停在某个条形上可查看有关该指标的更多详细信息以及时间轴上特定点的电池统计信息

04 其他Batterystats输出

您可以在 Battery Historian 图表下方统计信息部分的 batterystats.txt 文件中查看其他信息

图片

System Stats 标签页包含系统范围的统计信息,例如电池信号电平和屏幕亮度。此信息可全面反映设备的具体情况。这对于确保没有任何外部事件影响您的测试尤为有用

App Stats 标签页包含有关特定应用的信息。使用左侧“App Selection”窗格中的 3 排序应用下拉列表对应用列表进行排序。您可以选择特定应用来查看使用下方的 4 应用下拉列表的统计信息

 

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

<项目代码>YOLOv8 学生课堂行为识别<目标检测

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

如何在家庭网络中设置静态IP地址:一份实用指南

在家庭网络环境中,IP地址扮演着至关重要的角色。大多数家庭用户依赖路由器的DHCP(动态主机配置协议)来自动分配IP地址,但在某些情况下,手动设置静态IP地址能为家庭网络带来更多的便利性与稳定性,尤其是在涉…

编译cartographer和cartographer_ros 过程

环境 ros 版本 : noetic 工控机版本: firefly 工控机cpu类型: arm64 工控机系统: ubuntu 20.04 关于cartographer 如果是ros1中cartographer和cartographer_ros 都需要编译安装,并且在实际运行中cartographer和cartographer_ros 是有交互的。 而如果是在ros2中只…

vue系列==vue组件

vue系列vue组件 1、组件样式控制 1.1全局样式控制 1.2局部样式控制 1.3深度样式控制 2、组件通信 2.1组件父与子之间的通信props 2.1.1简单数组接收模式 2.1.2简单对象和复杂对象接受模式 2.2 组件通信之ref与defineExpose ref 的作用 defineExpose 的作用 运用 re…

智慧水肥一体化:道品科技现代农业的智能管理模式

智慧水肥一体化是现代农业中一种重要的管理模式,它通过信息技术和物联网技术的结合,实现对水资源和肥料的智能化管理。这一系统的主要功能包括环境监测、集中管理、智能控制、主动报警和数据管理。以下将分别对这些功能进行详细阐述,并探讨智…

ES入门:查询和聚合

安装完ElasticSearch 和 Kibana后我们开始学习 为了方便测试,使用kibana的dev tool来进行学习测试: 测试工具 从索引文档开始 插入 向 Elasticsearch 索引 customer 的 _doc 类型的文档 id 为 1 的文档发送 PUT 请求的例子。 请求体为 JSON 格式&am…

ffmpeg编译报错mathops.h--ffmpeg Error: operand type mismatch for `shr‘

我在OpenEuler上编译ffmpeg出现了这个问题。 我试了三个版本4,4.4,7.0其中7.0没有出现这个问题,但是我需要编译libvlc不能用那么高的版本,4和4.4都有那个问题 解决办法: 将mathops.h中的内容替换为如下内容: /* * simple math operations * Copyright …

Docker Remote API TLS 认证_docker远程接口未授权访问漏洞怎么解决

漏洞描述: Docker Remote API 是一个取代远程命令行界面的REST API,其默认绑定2375端口,如管理员对其配置不当可导致未授权访问漏洞。攻击者利用docker client或者http直接请求就可以访问这个API,可导致敏感信息泄露,…

华为eNSP:QinQ

一、什么是QinQ? QinQ是一种网络技术,全称为"Quantum Insertion",也被称为"Q-in-Q"、"Double Tagging"或"VLAN stacking"。它是一种在现有的VLAN(Virtual Local Area Network&#xff0…

利用SCF文件构建网络渗透

SMB是一种广泛用于企业组织中文件共享目的的网络协议。在内部的渗透测试中,发现包含明文密码和数据库连接字符串等敏感信息的共享文件并不罕见。但是,即使一个文件共享不包含任何可用于连接到其他系统的数据,但是未经身份验证的用户配置拥有该…

陀螺仪BMI323驱动开发测试(基于HAL库SPI通信)

参考资料 编写代码 读取芯片ID void BMI160_Init(void) {uint16_t chipID BMI323_read(BMI160_REG_CHIP_ID);debug("BMI323芯片ID为0x%x;", chipID);if (chipID ! 0x43){debug("未检测到BMI323;");}elsedebug("检测到陀螺仪BMI323;");u8 buf_…

基于vue框架的的流浪宠物救助系统25128(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物类别,领养中心,领养申请,云投喂,申请入驻,义工入驻 开题报告内容 基于Vue框架的流浪宠物救助系统开题报告 一、项目背景 近年来,随着城市化进程的加速,流浪动物问题日益凸显。它们面临着食物短缺、疾…

Python | Leetcode Python题解之第541题反转字符串II

题目: 题解: class Solution:def reverseStr(self, s: str, k: int) -> str:t list(s)for i in range(0, len(t), 2 * k):t[i: i k] reversed(t[i: i k])return "".join(t)

机器学习2_支持向量机_线性可分——MOOC

目录 定义 线性可分(Linear Separable) 线性不可分(Nonlinear Separable) 数学化定义 问题描述 优化问题 线性可分定义 假定训练样本集是线性可分的 1、最小化(Minimize): 2、限制条件…

Linux-socket详解

Linux-socket详解_socket linux-CSDN博客

Java基础-Java中的常用类(上)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 String类 创建字符串 字符串长度 连接字符串 创建格式化字符串 String 方法 System类 常用方法 方…

LeetCode78. 子集(2024秋季每日一题 58)

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2],[1,2],[3…

基于TRIZ理论的便携式光伏手机充电装置创新

随着智能手机功能的日益强大,电量消耗问题也日益凸显,尤其是在户外活动时,电量告急常常让人措手不及。面对这一挑战,基于TRIZ(发明问题解决理论)的创新思维,一款全新的便携式光伏手机充电装置应…

Django目录结构最佳实践

Django项目目录结构 项目目录结构配置文件引用修改创建自定义子应用方法修改自定义注册目录从apps目录开始 项目目录结构 └── backend # 后端项目目录(项目名称)├── __init__.py├── logs # 项目日志目录├── manage.py #…

《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《今日制造与升级》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《今日制造与升级》级别? 答:国家级。主管单位:中国机械工业联合会 …