设备环境:macos
测试对象:Android-app

  1. 使用 Homebrew 安装docker
brew cask install docker
  1. 在终端搜索Battery Historian相关的镜像
docker search battery  
  1. 拉取并运行battery-historian镜像,会自动下载并运行镜像(可以忽略第4步),(下面两条命令使用其中之一就可以,可能有防火墙的原因不能成功)
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian

docker run -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量
上图是正在下载镜像

  1. (如果第3步执行完之后不小心关闭了)启动镜像(前面已经下载过镜像了,这条命令就直接启动了,同样执行对应的一条就行)
docker run -d -p 9999:9999 bhaavan/battery-historian 

docker run -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_02

  1. Battery Historian容器就成功的运行了,端口映射本地端口9999,在浏览器打开http://localhost:9999如下2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_03
  2. 连接手机,打开调试模式

Android 7.0和更高版本的开发设备获取错误报告:

adb bugreport bugreport.zip

对于6.0或更低版本的设备:

adb bugreport > bugreport.txt
  1. 选择生成在本地的bugreport.zip文件上传
    2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_04
    记载这里我遇到一个坑,就是文件上传后,submit提交按钮不显示

原因:本质是web某些资源没有加载出来,其中的一些资源需要访问google服务器,但是这些资源被墙了,无法访问。只要解决了墙的问题,submit的问题也就迎刃而解了。
解决方案:
① vpn
② 想办法将无法加载的资源替换为可以加载的资源,参考:https://github.com/waquer/ReplaceGoogleCDN
有同学说***之后还是无法显示submit提交按钮,我这里提供下他的解决方案

 

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

当系统组件处于活动状态时,每行显示彩色条形段,从而从电池中汲取电流。该图表并未显示该组件使用了多少电,只是该应用程序处于活动状态。图表按类别进行组织,随着时间的推移显示每个类别的栏,如图表的X轴上所示。不同颜色代表指标的不同状态:比如Screen 红色代表亮屏,白色代表关屏,具体鼠标放在最左侧的️上就会自动提示2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_05
默认情况下,统计信息是在运行基础上维护的,Android也不记录特定于应用程序的用户空间wakelock转换的时间戳。如果您希望Historian在时间线上显示关于每个单独唤醒锁的详细信息,则应在开始实验之前使用以下命令启用完整唤醒锁报告:

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

请注意,通过启用完全唤醒锁定报告,电池历史记录将在几个小时内溢出。使用此选项进行短时间测试(3-4小时)。
采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包:

adb shell dumpsys batterystats --reset

执行上面两条命令后,相当于清理了battery记录的日志,点开了微信、后置相机、今日头条运行一段时间,然后导出报告

adb bugreport bugreport.zip

或者下面的命令,加上包名,测指定的app(包名com.example.android.sunshine.app,填写自己要测的包名)

adb shell dumpsys batterystats > bugreport.txt
adb shell dumpsys batterystats>com.example.android.sunshine.app > bugreport.txt

2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_06
2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_07
2019-11-20-app专项测试【Android电量】Battery Historian耗电分析_Android电量_08