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

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

专注于Android开发,分享经验总结,欢迎加入

QQ群

Android开发中涉及到耗电量怎么分析呢

google官方提供了文档,链接:https://developer.android.com/studio/profile/battery-historian

Batterystats 工具和 Battery Historian 脚本的基本用法和工作流程

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

适合的场景:

  • 显示进程从什么位置以及通过何种方式消耗电池电量。
  • 识别系统为了延长电池续航时间可能会延迟甚至移除应用中的哪些任务

安装 Battery Historian

链接:https://github.com/google/battery-historian

1.使用Docker安装

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

  • 按照 Docker https://www.docker.com/ 网站上的说明安装 Docker 社区版

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

      docker run hello-world
    
  • 如果您已正确安装 Docker,将会看到如下输出:

      Unable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world78445dd45222: Pull completeDigest:sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
    
  • 在终端搜索Battery Historian相关的镜像

      docker search battery 
    
  • 在列出的列表中选取一个镜像

      docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian
    
  • 拉取并运行battery-historian镜像,会自动下载并运行镜像,之前pull过了就直接运行

2.通过编译gitbub上面的源码来安装

  • 1.Go 环境安装

    • 链接:https://golang.org/doc/install

    • 配置GOROOT和GOPATH(配置环境变量)

    • GOROOT的作用是告诉 Go 命令和其他相关工具,配置的是 Go 的安装目录

    • GOPATH可以简单理解为是工程的目录,配置的是 Go 的工程路径

    安装完执行 go env 查看环境变量配置的是否一样,如下图

在这里插入图片描述

  • 2.Git 环境安装

    • 链接:https://git-scm.com/
  • 3.python环境安装,仅支持python2.7

    • 链接:https://www.python.org/
  • 4.Java 环境安装(配置环境变量)

    • 链接:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
  • 5.下载 Battery Historian

    • 链接:https://github.com/google/battery-historian 源码并且运行

        下载到GOPATH配置目录下,耗时长 go get -d -u github.com/google/battery-historian/...
      
    • 进入到$GOPATH/src/github.com/google/battery-historian目录

    • 运行Battery Historian

        go run setup.go
      

      如果没有下载成功,可以手动下载

    • closure-library

      • https://github.com/google/closure-library
    • closure-compiler

      • https://github.com/google/closure-compiler
    • flot-axislabels

      • https://github.com/markrcote/flot-axislabels

      解压到 GOPATH/src/github.com/google/battery-historian/third_party,如果没有该文件夹需要去创建,文件夹下方的的 closure-compiler 和 closure-library 和 flot-axislabels

目录如下

在这里插入图片描述

  • 在 battery-historian 文件夹执行

      go run cmd/battery-historian/battery-historian.go
    

启动程序后,在浏览器输入localhost:9999,会出现如下界面

在这里插入图片描述

3.Batterystats 采集数据

  • 1.将移动设备连接到计算机

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

      adb kill-server
    
  • 3.重启 adb 并检查是否有已连接的设备

      adb start-serveradb devices
    

如下图

在这里插入图片描述

  • 4.重置电池数据收集

      adb shell dumpsys batterystats --reset
    

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

  • 5.断开设备与计算机的连接,以便仅消耗设备电池的电量

  • 6.使用您的应用并执行您想要获取数据的操作;例如,断开 WLAN 连接并将数据发送到云端

  • 7.重新手机连接

  • 8.确保您的手机已被识别:

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

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

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

  • 10.使用原始数据创建报告

    在创建报告之前,可以使用monkey针对某个应用做测试

      adb shell monkey -p com.tencent.mm -v 1000
    

    如果要保存在某个目录下,先进入此目录

      cd /Users/Desktop/battery
    
    • 对于搭载 Android 7.0 及更高版本的设备:

        adb bugreport bugreport.zip
      
    • 对于搭载 Android 6.0 及更低版本的设备:

        adb bugreport bugreport.txt
      

    错误报告可能需要几分钟才能完成。在完成之前,请勿断开设备连接或取消该进程

    与上面的 batterystats.txt 一样,这些文件是系统使用可选的路径参数在您指定的目录中创建的。如果您没有指定路径,系统将在您的主目录中创建这些文件

导出的文件如下

在这里插入图片描述

4.将采集到的数据上传

  • 打开浏览器输入 localhost:9999,点击上传,上传之后出现submit 提交按钮

在这里插入图片描述

  • 点击提交后,进入电池耗量分析界面

在这里插入图片描述

另一张视图

在这里插入图片描述

在搭建的过程中遇到些问题,上传zip包之后报错,无法加载视图
Docker搭建的方式,对于安卓6.0以上不友好,出现上传zip后报错,无法加载视图的情况:

解决方式:使用线上版: https://bathist.ef.lc/

报错如下:

在这里插入图片描述

微信公众号 -->> 他晓 (欢迎加入)

公众号

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

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

相关文章

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日…

Hive——函数-Explode(含案例演示建议收藏)

创建文件 vim movie.txt数据准备: 《疑犯追踪》 悬疑,动作,科幻,剧情 《Lie to me》 悬疑,警匪,动作,心理,剧情 《战狼 2》 战争,动作,灾难创建新表: create table movie_info(movie string,category string) row format delimited fields …

看美剧《疑犯追踪》,学地道美语 Learn idiomatic American English by watching Tv series Person of Interest

看美剧《疑犯追踪》,学地道美语 Learn idiomatic American English by watching Tv series Person of Interest cemike126.com 题记:暑期看了美剧《疑犯追踪》(Person of Interest)。开始只是记下第一级中一些引发我思考的片段台词…

疑犯追踪第五季/全集Person of Interest迅雷下载

英文全名Person of Interest,第5季(2015)CBS. 本季看点:《疑犯追踪》本季剧组暗示Finch可能重建机器,这次他会给机器更多自由(如Root一直要求的那样)。或许新机器更像个战士,比旧机器更强大。目前&#xff…

现实版的“疑犯追踪”是如何开展的?

为什么80%的码农都做不了架构师?>>> 童鞋们, 还记得在美剧《疑犯追踪》中, Finch发明的人工智能“The Machine”吗? 它通过获得和关联大量数据, 可分析出即将发生的犯罪事件并发出预警。 可以说是灰常滴了…

南澳行

上周随部门到南澳,其实这是我第二次去南澳了,不过上次去了大鹏古城,这次主要是在海边玩沙滩足球,好过隐呀! 以前觉得南澳不错,因为可以在海边玩耍,至少比红树林感觉要好吧。但去年去了海南之后&…

大三期末网页设计作业 以旅游景点风景主题介绍网站设计与实现 (广东名胜古迹)

🌩️ 精彩专栏推荐👇🏻👇🏻👇🏻 💂 作者主页: 【进入主页—🚀获取更多源码】 🎓 web前端期末大作业: 【📚HTML5网页期末作业 (1000套…

JS根据城市名称获取所在省份

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 实现代码: var provinces require(../../../utils/provinces);var city 昆明市;provinces.forEach((item,index) > {item.city.forEach((itt, idx) > {if (itt.name city) {console.…