大家都知道,进行耗电分析,google给我们提供了Battery Historian这个工具来进行图形化的分析。
1、V1版本使用相对简单:
1)首先执行重置电量命令,清除之前的电量记录:
adb shell dumpsys batterystats --reset
保证手机电量为满格,然后拔掉usb(usb链接着会进行充电),操作应用一段时间后,使用命令获取电量信息:
adb shell dumpsys batterystats > batterystats.txt
接下来我们需要把这个txt文件转换为html文件,这个html可以被chrome识别,直接打开就能看到这样的图像界面:
2)直接看转换的命令:
python historian.py -a batterystats.txt > battery.html
第一次使用,我们会缺少python和historian.py。
python的安装很简单,google一下就知道了(注意目前所有的操作都是在ubuntu环境下,另外python在Historian V2的时候也会使用到)。
historian.py文件呢,在这里的scripts文件夹中可以找到,把里面的内容copy出来,在本地建一个historian.py文件,把内容填进去,这样就有我们的py文件了。
这样两个需要的条件都准备好了,那么执行上面的命令,很快就生成了battery.html文件,直接使用chrome打开就能看到上面图中的图像界面了。
其实我是看不懂这个图的,这大概就是把batterystats.txt里的这些文本信息,进行图形化了而已:
这里有篇文章稍微详细的讲了这个图像界面的一些数据,可参考看一下:
性能优化之电量优化2-使用Battery Historian生成电量消耗报告
接下来开始2.0版本的配置
2、V2版本的工具配置
V2版本对图像界面的信息做了很大的升级,增加了很多易于查看的功能,我们使用adb shell dumpsys batterystats > batterystats.txt命令生成的文件是无法直接使用V2版本打开的,至少目前在我这里是打开不了的。
1)首先,很多文章都建议配合docker来间接使用historian,但是无奈我的环境是ubuntu,docker没有提供ubuntu上的使用,这样只能使用第二种方式来实现。
2)使用源码配置的方式来实现,这里需要安装go语言,python(我们在V1版本中已经有了),git(开发谁还没有安装git呢?这都不是事儿),安装java(嗯哼),最后一点下载historian源码运行,具体步骤可移步这里:电量分析工具 Battery Historian 的配置及使用 直接看第二种方法,虽然他上面是window配置环境,但是命令都差不多,这里就不叙述了。对了,在这些环境的安装过程中,最好网络能访问google吧,可能有些东西需要翻墙才能配置成功,反正我是在这个环境下配置成功的。按照上面的网址里的步骤配置成功后,在chrome中打开这个网址:
出现这个界面:
说明V2版本运行起来了,我们这个时候,就需要把待分析的文件放进去了。(然后开始这里就各种坑了)
坑1,最开始有说个我们通过adb shell dumpsys batterystats > batterystats.txt命令生成的这个txt文件是无法被打开的,就比如这样:
坑2,有人说使用这个命令来生成待分析文件:adb bugreport > bureport.txt,然后把这个文件导入。实际上我的手机上要么显示这样
半天了也导不出任何文件。所幸,在另外一台userdebug的手机上,有输出这么一个文件:
在相同的目录下面出现了一个zip包,我猜想这个zip包一定是我想要的,在historian中导入,结果就出现了这个令人振奋的画面:
有了这个,就可以愉快去分析了。(在这里不得不怀疑,所有文章都说,bureport.txt会有需要的信息,可是实践证明这个文件只是记录了导出电量的信息而已,并没有任何电量的信息啊,要不是我换了个手机能导出成功,我还要一直怀疑是不是我操作有问题,哎~)
坑3,第一次在导入文件的时候,因为是在非google网络环境下执行的,结果半天没出来图中所示的提交按钮submit,所以要使用google的东西,还是能访问它才行吧。
坑4,公司性能组的同事弄了个app来抓取耗电日志,不知道具体是抓取的是什么日志,直接导入到historian中,虽然没有报错误,但是也没显示任何界面,说明数据还是不够完整把,乖乖的让测试妹子用这个命令来抓数据:
adb bugreport > bugreport.txt
好了,配置好工具后,接下来就是尽情的来分析耗电了。over!