battery-historian工具使用(安卓耗电分析)

一、安装方式

使用docker下载

docker search battery

没有android-battery-historian镜像的时候会自动下载
下载完镜像后执行如下命令
docker – run -p :9999 gcr.io/android-battery-historian:2.1 --port 9999
docker run -d -p 9999:9999 bhaavan/battery-historian
执行后进入http://localhost:9999是否有如下界面
在这里插入图片描述

二、生成电量文件

步骤一:Android也不记录特定于应用程序的用户空间wakelock转换的时间戳。如果您希望Historian在时间线上显示关于每个单独唤醒锁的详细信息,则应在开始实验之前使用以下命令启用完整唤醒锁报告:

adb shell dumpsys batterystats --enable full-wake-history

步骤二:采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包

adb shell dumpsys batterystats --reset

步骤三:导出电量

7系统以上的设备运用:

adb bugreport bugreport.zip

6.0或更低版本的设备:

 adb bugreport > bugreport.txt
 >如果不能使用7以下系统的手机请参考 https://blog.csdn.net/mwq30123/article/details/53888449

步骤三:停止记录详细信息

adb shell dumpsys batterystats --disable full-wake-history

在这里插入图片描述

三、参数说明

WakeLock

Android为了节省电量,会在用户无操作一段时间之后进入休眠状态。Wake Lock是一种锁的机制,只要有人拿着这个锁,系统就无法进入休眠。一些App为了能在后台持续做事情,就会持有一个WakeLock,那么手机就不会进入休眠状态,App要做的事情能做了,但是也更加耗电。

App在前台不要申请WakeLock,此时无需申请,申请的话会计算到应用电量消耗;
App在后台由于业务需要必须要申请WakeLock时使用带有超时参数的方法,防止由于忘记或者异常情况下没有释放;
App申请使用WakeLock,任务结束之后及时释放,让系统再次进入休眠状态。

battery_level:电量,可以看出电量的变化。
比如图中的数据显示出当前的电量为71%。
在这里插入图片描述
**plugged:**充电状态,这一栏显示是否进行充电,以及充电的时间范围。
大图中反应了在某一时间插入了数据线,然后一直持续到数据采集结束。

**health:**电池健康状态的信息,这个信息一定程度上反映了这块电池使用了多长时间。这一栏记录电池状态在何时发生改变,上面的图中电池状态一直处于good状态(2—代表good)

**screen:**屏幕是否点亮。
这一点,可以用于考虑睡眠状态和点亮状态下电量的使用信息

参数说明
CPU runing cpu运行的状态,是否被唤醒
Kernel only uptime 只有内核运行时间
Activity Manager Proc 活跃的用户进程
Mobile network type 网络类型
Mobile radio active 移动蜂窝信号 BP侧耗电
Crashes(logcat) 某个时间点出现crash的应用
Doze 是否进入doze模式
Device active 和Doze相反
JobScheduler 异步作业调度
SyncManager 同步操作
Temp White List 电量优化白名单
Phone call 是否打电话
GPS 是否使用GPS
Network connectivity 网络连接状态(wifi、mobile是否连接)
Mobile signal strength 移动信号强度(great\good\moderate\poor)
Wifi scan 是否在扫描wifi信号
Wifi supplicant 是否有wifi请求
Wifi radio 是否正在通过wifi传输数据
Wifi signal strength wifi信号强度(great\good\moderate\poor)
Wifi running wifi组件是否在工作(未传输数据)
Wifi on 同上
Audio 音频是否开启
Camera 相机是否在工作
Video 是否在播放视频
Foreground process 前台进程
Package install 是否在进行包安装
Package active 包管理在工作
Battery level 电池当前电量
Temperature 电池温度
Charging on 在充电
Logcat misc 是否在导出日志

四、查询电量

获取整个设备的电量消耗信息: adb shell dumpsys batterystats  | more
获取某个apk的电量消耗信息:  adb shell dumpsys batterystats  com.Package.name | more
adb shell dumpsys battery

在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章