battery_historian分析
1 怎么抓log&bugreport
电量统计的信息是由系统的batterystats这个服务处理的。通过抓bugreport可以抓到电量信息。
执行如下命令抓bugreport
# 抓之前reset电量信息
adb shell dumpsys batterystats --reset
# 抓bugreport
adb bugreport
2 分析图形化数据
将bugreport zip包放到网站解析出来:

这个log中我主要是要看CPU为什么退出susppend(挂起)的了,挂起和非挂起状态的功耗消耗差别很大。
看1这里:
-
正常情况,如果一直处于suspend,应该全是短线,这样符合要求,短线只是时钟按时唤醒
![image]()
-
如图长的实线就是不正常的唤醒,可以将光标悬浮在那里看看唤醒源
![image]()
唤醒源中有很多蓝牙的,加上第一张图的,对照CPU唤醒和(标注3的)蓝牙BLE的活跃状态,确定CPU退出挂起状态是BLE扫描引起的。 -
如箭头2这条曲线,是电量消耗的曲线,可以显示:
1)实时剩余电量
2)实时电流值,记住这个是软件估算值。如果你要实际数值,需要连接假电池和电流机查看。
-
除了上面这些,还可以看一下各种硬件的状态,如4就可以看到wifi在抓log不久就被关了。
3 各类表格
待续...


浙公网安备 33010602011771号