一,电量分析工具:Battry historian
我们先来看Battry historian
手动搭建环境一 (或者我们可以在这里进行部署和操作:https://github.com/google/battery-historian)
1,Battry historian,因为这个是go语言开发的,所以要先安装go语言 Golang下载地址:https://studygolang.com/dl
下载后一路安装,安装完成以后验证一下:
2,下载git: https://git-scm.com/downloads
下载以后直接一路安装,最后在cmd中执行git version
然后打开git bash---在运行中可以找到
执行命令
1, git clone https://github.com/google/battery-historian.git
2, cd battery-historian
3, go get -d -u github.com/google/battery-historian/...
4, go run setup.go
5,go run cmd/battery-historian/ battery-historian.go
配置完成后是一个地址,网页形式打开,如下图:
3,开始分析
a,执行命令:adb shell dumpsys batterystats --reset 重置电池数据收集
b,执行电池的数据收集命令
第一种:adb shell dumpsys batterystats > batterystats.txt 这个是把采集的结果导出到txt文件中
第二种:adb bugreport bugreport.zip 安卓7以上使用
adb bugreport > bugreport.txt 安6以下使用
操作之前我们做好先操作一下应用,然后再执行,我们这里用adb bugreport bugreport.zip收集,但是这个命令一直有问题,我们测试发现adb bugreport > bugreport.txt其实可以使用到安卓7以上的
那么就执行adb bugreport > bugreport.txt吧。
操作1:
提交后的结果:
操作2:选中电量的收集选项
操作3:选中应用后查看右侧面板:唤醒锁----手机黑屏等情况,唤醒手机,造成耗电量大增
操作4:应用的服务---这些服务也可能会造成我们耗电的原因
详细分析可以去官方查看,比较详细:https://github.com/google/battery-historian
二,电量分析工具ChkBugReport
BugReport 是由 Bug 和 Report 这两个英语单词组成。bug 是英语「瑕疵,错误」的意思,在计算机领域专指程序中的问题。report 是英语「报告」的意思,顾名思义,BugReport 就是「错误报告」的意思。不过,真实的 BugReport 不仅仅记录错误,不同级别的日志也会记录下来,方便我们 debug,一般来说 Android 的 BugReport 是 .txt 结尾的文本文件,比如公司的 Android app 里的 BugReport 就是命名为 bugreport.txt。当然了,命名没有限定
Android 的 BugReport 里面包含了 dumpsys,dumpstate,logcat 命令输出的结果
要生成一个 BugReport,我们可以运行以下命令:adb bugreport > bugreport.txt
这是这个文件的内容
还有MEMORY INFO (/proc/meminfo),CPU INFO (top -n 1 -d 1 -m 30 -t), PROCRANK (procrank) ,VIRTUAL MEMORY STATS (/proc/vmstat) 等
这搭建比较简单:只有一个jar包就可以:https://github.com/sonyxperiadev/ChkBugReport/downloads
可以用它来解析 BugReport 文件并生成网页版报告,但是需要配置电脑的jdk环境变量
最后在cmd中执行命令:java -jar D:appchkbugreport-0.4-185.jar D: estBugreport.txt
注意,这里java -jar 后面要跟着chkbugreport-0.4-185.jar 和 Bugreport.txt的绝对路径,当然也可以配置环境变量
执行停止后,会出现Bugreport_out文件夹
里面有这些内容,其中index.html就是我们需要的
打开html文件后如图:
在这里你还可以查看每一个项目的详细信息,如:
ok,有了这个报告,就可以尽情的分析了
下面是一个功耗原理解读,可以参阅哦