首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

使用Battery Historian工具分析Android耗电

2024-12-20 来源:化拓教育网

在docker上运行Battery Historian镜像

在终端搜索Battery Historian相关的镜像
docker search battery

image.png

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

image.png image.png image.png

获取设备的耗电报告

要从运行Android 7.0和更高版本的开发设备获取错误报告:
adb bugreport bugreport.zip

对于6.0或更低版本的设备:
adb bugreport > bugreport.txt

image.png

选择bugreport.zip文件上传


image.png

之后就会看到电池的使用数据报告,Battery Historian图表显示随着时间的推移电源相关事件。

当系统组件处于活动状态时,每行显示彩色条形段,从而从电池中汲取电流。该图表并未显示该组件使用了多少电,只是该应用程序处于活动状态。图表按类别进行组织,随着时间的推移显示每个类别的栏,如图表的X轴上所示。不同颜色代表指标的不同状态:比如Screen 红色代表亮屏,白色代表关屏,具体鼠标放在最左侧的ℹ️上就会自动提示

image.png

默认情况下,统计信息是在运行基础上维护的,Android也不记录特定于应用程序的用户空间wakelock转换的时间戳。如果您希望Historian在时间线上显示关于每个单独唤醒锁的详细信息,则应在开始实验之前使用以下命令启用完整唤醒锁报告:
adb shell dumpsys batterystats --enable full-wake-history

请注意,通过启用完全唤醒锁定报告,电池历史记录将在几个小时内溢出。使用此选项进行短时间测试(3-4小时)。

采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包:
adb shell dumpsys batterystats --reset

执行上面两条命令后,我点开了微信、后置相机、今日头条,然后导出报告
adb bugreport bugreport.zip

image.png
image.png

内核唤醒源和内核唤醒锁活动的事件记录


image.png

另外可以做两次报告的对比分析


image.png

如下图,但是我选择的是没啥关联的报告对比,内容很多,看看对比信息


image.png
image.png
image.png
image.png
image.png
显示全文