Battery Historian分析手机耗电神器

极力推荐Android 开发大总结文章:欢迎收藏
程序员Android 力荐 ,Android 开发者需要的必备技能

 

本篇文章主要介绍 Android 开发中 电量 的部分知识点,通过阅读本篇文章,您将收获以下内容:

1.安装Battery Historian
2.收集Batterystats 数据
3.使用Battery Historian分析数据
4.Batterystats 额外数据
5.使用Battery Historian 分析电量消耗
6.Battery Historian能干什么

欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

本文主要分析了Batterystats工具和Battery Historian脚本的基本用法和工作流程。

Batterystats是一个包含在Android框架中的工具,用于收集设备上的电池数据。 您可以使用adb将收集的电池数据转储到您的开发机器上,并创建一个报告,您可以使用Battery Historian进行分析。 Battery Historian将来自Batterystats的报告转换为可在浏览器中查看的HTML可视化文件。

它有什么好处:

向您显示过程在何处以及如何从电池中吸取电流。
识别您的应用程序中可延期或甚至删除的任务以延长电池寿命。

1.安装Battery Historian

安装Battery Historian的最简单方法是使用Docker。 有关备用安装方法(包括从源代码构建)。 要使用Docker进行安装,请执行以下操作:

  • 1.按照Docker网站上的说明安装Docker Community Edition。

  • 2.要确认Docker已正确安装,请打开命令行并输入以下命令:
    docker run hello-world

Docker 成功安装信息

  • 3.使用以下命令运行Battery Historian图像:

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

    1. 在浏览器中导航到Battery Historian以确认它正在运行。 地址因操作系统而异:
      Linux and Mac
      http://localhost/port_number
      For Windows
      http://123.456.78.90:port_number
      您将看到Battery Historian起始页面,您可以在其中上载和查看电池统计信息。

Battery Historian 首页

2.收集Batterystats 数据

连接手机,打开开发者模式,连接adb。

    1. 重置 batterystats 数据

adb shell dumpsys batterystats --reset

设备始终在后台收集batterystats和其他调试信息。 重置会清除旧电池采集数据.

    1. 断开设备与电脑的连接,以便只从设备的电池中消耗电流。
    1. 玩你的应用程序,并执行你想要的数据的行为; 例如,断开与WiFi的连接并将数据发送到云端。
    1. 重新连接手机dump数据

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

    1. 导出原始bugreport数据

Android 7.0 以上
adb bugreport > [path/]bugreport.zip

Android 5.0/ 6.0
adb bugreport > [path/]bugreport.txt

  • 6.打开并提交分析数据
    Battery Historian分析网站 需翻墙

3.使用Battery Historian分析数据

成功提交后,数据分析如下

Battery Historian

    1. 从下拉列表中添加其他指标。
    1. 将鼠标悬停在信息图标上可查看有关每个指标的更多信息,包括图表中使用的颜色的关键字。
  • 3.将鼠标悬停在栏上,即可查看有关该指标的详细信息以及时间线上特定点的电池状态。

4.Batterystats 额外数据

Battery Historian图表下面的stats部分可以查看batterystats.txt文件中的其他信息。

Batterystats 额外数据

  1. System Stats选项卡包含系统范围的统计信息,如单元信号级别和屏幕亮度。 这些信息提供了设备发生情况的整体情况。 这对确保没有外部事件影响您的测试特别有用。

  2. App Stats选项卡包含有关特定应用程序的信息。 使用左侧的应用程序选择窗格中(图3)排序应用程序下拉列表对应用程序列表进行排序。 您可以选择一个特定的应用程序来查看使用下面(图4)个应用程序下拉列表的统计信息。

5 .使用 Battery Historian 分析电量消耗

Battery Historian工具提供了一段时间内设备电池消耗的深入分析。 在全系统级别,该工具以HTML表示形式从系统日志中查看与电源相关的事件。 在特定应用程序级别,该工具提供了各种数据,可帮助您确定电池耗尽应用程序的行为。

本文档介绍了使用Battery Historian了解电池消耗模式的一些方法。 该文件首先解释如何读取Battery Historian报告的系统范围数据。 然后,介绍如何使用Battery Historian诊断和解决与电池消耗有关的应用行为。 最后,它提供了有关Battery Historian可能特别有用的场景的几个提示。

Battery Historian工具提供了各种应用程序和系统行为的系统范围可视化,以及随着时间的推移与电池消耗的相关性

Battery Historian 事例

此图特别感兴趣的是在y轴上测量的代表电池电量的黑色水平下降趋势线。 例如,在电池水平线的最开始时间点,大约早上6点50分,可视化显示电池电量水平相对急剧下降。

 

CPU 唤醒锁等信息

在电池电量线开始时,随着电池电量急剧下降,显示屏显示出三件事:CPU正在运行,应用程序已获取唤醒锁,屏幕亮起。 通过这种方式,Battery Historian可帮助您了解电池消耗高时发生的事件。 然后,您可以将这些行为定位到您的应用中,并调查是否可以进行相关的优化。

除了系统范围内提供的宏观数据外,Battery Historian还提供特定于设备上运行的每个应用程序的表格和一些可视化数据。 表格数据包括:

  • 该应用在设备上的预计用电量。
  • 网络信息。
  • Wakelocks。
  • 服务。
  • 进程信息。

这些表格提供了有关您的应用的两个维度数据。 首先,您可以查看您的应用的用电量排名与其他应用的相比。 为此,请单击表下的设备功率估算表。 这个例子考察了一个名为Pug Power的虚构应用程序。

调查哪些应用程序消耗的功率最大

上图的表格显示,Pug Power是该设备上第九大电池供电用户,也是不属于操作系统的第三大应用。 这个数据表明,这个应用程序承担更深入的调查。

要查找特定应用程序的数据,请将其包名称输入位于可视化左侧下方应用程序选择下的两个下拉菜单中的较低位置

当您选择特定的应用程序时,以下数据可视化类别将更改为显示应用程序特定的数据而不是系统范围的数据:

  • SyncManager.
  • Foreground process.
  • Userspace Wakelock.
  • Top app.
  • JobScheduler.
  • Activity Manager Proc.

如果您的应用程序执行同步并执行作业的次数超过必要,SyncManager和JobScheduler可视化立即显而易见。 在此过程中,他们可以快速发现优化应用行为以改善电池性能的机会。

您还可以获得更多的特定于应用程序的可视化数据,用户空间Wakelock。 要将此信息包含在错误报告中,请在终端窗口中输入以下命令:
adb shell dumpsys batterystats --enable full-wake-history

ps:从Android 6.0(API级别23)开始,该平台包含Doze功能,这对应用程序实施了某些优化。 例如,无论JobScheduler如何安排他们,Doze都会在短期维护时段内批处理作业。

显示特定应用的可视化数据

应用数据表格

看看可视化并不立即显示任何东西。 JobScheduler行显示该应用程序没有计划任务。 SyncManager行显示应用程序未执行任何同步。

然而,对表格数据的Wakelocks部分的检查表明,帕格电力总共花费了一个多小时的时间。 这种不寻常的和昂贵的行为可以解释应用程序的高功耗水平。 这一信息有助于开发人员瞄准优化可能极大帮助的领域。 在这种情况下,为什么应用程序会获得如此多的唤醒时间,开发人员如何改善这种行为?

6.Battery Historian能干什么

Battery Historian还可以帮助您诊断改善电池行为的机会。 例如,Battery Historian可以告诉你你的应用程序是否:

  • 过度频繁地发出唤醒警报(每10秒钟或更少)。
  • 持续持有GPS锁。
  • 每30秒或更短时间安排一次作业。
  • 计划每30秒或更短时间同步一次。
  • 更频繁地使用蜂窝无线电比您期望的更频繁。

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

既然都看到这里,领两个红包在走吧!
以下两个红包每天都可以领取

1.支付宝搜索 522398497,或扫码支付宝红包海报。

支付宝扫一扫,每天领取大红包

2.微信红包,微信扫一扫即可领取红包

 

微信扫一扫,每天领取微信红包

小礼物走一走,来简书关注我

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

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

相关文章

卡尔曼滤波预测应用python实践

1. 什么是卡尔曼滤波 最佳线性滤波理论起源于二十世纪40年代美国科学家Wiener和前苏联科学家KOnMoropOB等人的研究工作,后人统称为维纳滤波理论。60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论…

BatteryStatsService电池电量统计服务分析

BatteryStatsService主要负责电池电量的统计信息,首先我们简单的看下电量统计服务的启动过程。 BatteryStatsService启动过程 从BatteryStatsService的启动时序图可以看出,BatteryStatsService服务是在ActivityManagerService服务中启动的 1. 在SystemServer中startBootstra…

使用Battery Historian采集android耗电数据

一、简介 Battery Historian是由Google提供的查看电量相关信息及事件的工具,Battery historian还可以上传bugreport文件,分析用户手机中App的电池耗电情况。详见:GitHub - google/battery-historian: Battery Historian is a tool to analyz…

利用XGBoost实现短期电力负荷预测

💥 项目专栏:【机器学习项目实战案例目录】项目详解 + 完整源码 文章目录 一、利用XGBoost实现短期电力负荷预测二、数据集介绍三、将数据进行标准化四、形成训练数据五、划分训练集、测试集六、定义模型七、模型训练八、训练集、测试集验证九、网络搜索十、绘制结果🌠 『…

性能优化十四之电量分析工具Battery Historian使用

上篇博客中并没有讲解BatterHistory该如何使用,这篇博客就开始给大家进行介绍。 数据准备 battery-historian工具需要使用bugreport中的BatteryHistory 1. 先断开adb服务,然后开启adb服务 adb kill-server 这一步很重要,因为当我们开…

使用BatteryHistorian分析和优化应用电量

欢迎Follow我的GitHub, 关注我的CSDN. 本文的合集已经编著成书,高级Android开发强化实战,欢迎各位读友的建议和指导。在京东即可购买:https://item.jd.com/12385680.html 在Android项目中, 较难监控应用的电量消耗, 但是用户却非常关心手机的…

Android 使用 Batterystats 和 Battery Historian 分析电池用量

Android 使用 Batterystats 和 Battery Historian 分析电池用量 专注于Android开发,分享经验总结,欢迎加入 Android开发中涉及到耗电量怎么分析呢 google官方提供了文档,链接:https://developer.android.com/studio/profile/batt…

GT的使用及耗电量统计的原理,对GT采集的电池数据采用VBA分析

注意:我测试时的ios操作系统是8.1,现在ios9.0及以后的耗电量比老的系统少了一个量级,官方说减少20%,我的手机在熄屏的耗电量减少了30%以上,亮屏幕减少不太多。 具体编译宏文件和GT采集的部分数据文件下载地址是&#…

Android电池功耗BatteryHistorian数据分析

BatteryHistorian的用法 BatteryHistorian环境搭建配置 官方文档 1.BatteryHistorian图形页面数据分析: Timeline: System stats: CPU runing: cpu运行的状态 Kernel only uptime: 只有kernell运行 Userspace wakelock: 用户空间申请的锁 Screen: 屏幕是否点亮 Top …

时间序列预测:用电量预测 07 灰色预测算法

🌮开发平台:jupyter lab 🍖运行环境:python3、TensorFlow2.x ----------------------------------------------- 2022.9.16 测验成功 ---------------------------------------------------------------- 1. 时间序列预测&#x…

时间序列预测15:Multi-input / Multi-head CNN 实现用电量/发电量预测

【时间序列预测/分类】 全系列60篇由浅入深的博文汇总:传送门 接上文,本文介绍如何为多变量数据开发多输入通道多步时间序列预测的CNN模型和多子模型异构多步时间序列预测的CNN模型。 文章目录 2. 多输入通道 CNN 模型2.1 建模2.2 完整代码 3. 多头&…

人工智能迅猛发展,如何应对避免失业?

“人工智能从感知智能向认知智能演进”,人工智能的发展带给我们哪些思考?它究竟会给我们的工作生活带来哪些变化?我们要如何去应对? 阿里达摩院票选出2020年十大科技趋势: 量子计算进入攻坚期工业互联网的超融合保护数据隐私的A…

【杂谈】人脸图像书看完了感觉不过瘾?这些拓展人脸资料值得你关注一下

相信许多朋友都看过我这本人脸图像处理的书籍了,内容涵盖了人脸检测,人脸关键点检测,人脸识别,人脸属性分析,人脸美颜,人脸编辑与风格化,三维人脸重建内容,基本上包括了人脸的所有领…

Guava、Spring 如何抽象观察者模式?

什么是观察者模式 观察者模式 是一种行为设计模式,允许定义一种订阅通知机制,可以在对象(被观察者)事件发生时通知多个 “观察” 该对象的观察者对象,所以也被称为 发布订阅模式 其实我个人而言,不太喜欢使…

苹果「Find My iPhone」立功,帮警察追踪偷车嫌犯

By 超神经 内容提要:在澳大利亚墨尔本的一起入室盗窃案中,警方在 iPad 上「Find My」的协助下追踪到嫌犯位置,但追踪过程中嫌犯却因车祸丧生。 关键词:Find My 协警 盗窃 苹果的「Fing My」最近在一起入室抢劫案中立功了。 2 月 …

Hive 知识体系保姆级教程

Hive涉及的知识点如下图所示,本文将逐一讲解: 正文开始: 一. Hive概览 1.1 hive的简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 其本质是将SQL转换为Map…

跟着 Guava、Spring 学习如何设计观察者模式

文章首发在公众号(龙台的技术笔记),之后同步到掘金和个人网站:xiaomage.info 今天讲解一篇行为型设计模式,什么是行为型?行为型主要负责设计 类或对象之间的交互。工作中常用的观察者模式就是一种行为型设…

【总结】有三AI重要原创人脸相关的技术文章汇总(2022年8月)

人脸图像的应用领域想必所有做视觉算法的都不会陌生,所有的安防监控、几乎现在所有的在线身份认证、支付、考勤都需要用到人脸检测与人脸识别,人脸识别甚至被用于追逃疑犯,找寻失踪人口。 所有的在线直播平台,手机拍照软件&#x…

【总结】有三AI所有原创人脸相关的学习资料汇总(2022年12月)

人脸图像的应用领域想必所有做视觉算法的都不会陌生,所有的安防监控、几乎现在所有的在线身份认证、支付、考勤都需要用到人脸检测与人脸识别,人脸识别甚至被用于追逃疑犯,找寻失踪人口。 所有的在线直播平台,手机拍照软件&#x…

CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧 导读:计算机视觉技最强学习路线,2022年10月18日…