Monkey+battery-historian 电量测试 (五)


准备电量数据:

1. 断开adb服务

执行:adb kill-server

2. 开启adb服务

执行:adb start-server或者adb devices
这两步操作的作用:adb作为一种连接的方式,有可能被其他的程序占用,所以我们做电量记录时要避免打开很多可能冲突的东西

3. 收集电池的历史数据

执行:adb shell dumpsys batterystats --enable full-wake-history

4. 重置电池数据

执行:adb shell dumpsys batterystats --reset

 

5. 使用monkey对要进行电量测试的应用进行操作

执行:adb shell monkey -p 包名 -v 1000

6. 获取电量报告

(这里要注意手机版本,不然后期向Battery Historian导入bugreport.txt文件时会提示“bugreport.txt does not contain a valid bugreport file”,这里也算是一个坑吧)

  1. 从Android 7.0和更高版本的开发设备中获得bug报告:

    cd /Users/weixiangyang/Desktop/

    adb bugreport bugreport.zip

    实例如图:

     
  2. 从设备6.0和更低版本的开发设备中获得bug报告:

    1. 获取bugreport信息(记录了从开机之后详细的dumpsys,dumpstate和logcat信息):
      adb bugreport > 存放的电脑地址/bugreport.txt
    2. 获取dumpsys信息(获取系统信息:比如内存,CPU,accounts,activities,wifi等信息)
      adb shell dumpsys batterystats > 存放的电脑地址/batterystats.txt
      或者获取指定的应用程序的dumpsys信息:
      adb shell dumpsys batterystats > 包名 > 存放的电脑地址/batterystats.txt

7. 使用Battery Historian查看batterystats.txt文件的图形化报告,下载Battery Historian工具,继续往下看

Battery Historian工具简介

Battery Historian 一款由Google提供的Android系统电量分析工具,从手机中导出bugreport文件上传至页面,在网页中生成详细的图表数据来展示手机上各模块电量消耗过程,最后通过App数据的分析制定出相关的电量优化的方法。

Battery Historian工具安装有两种:

1. 安装GO环境、Python、Java环境(这种方法我不管了,亲们自己上GitHub研究)

参看链接:https://github.com/google/battery-historian

2. 通过安装Docker环境来安装(这种简单方便)

  1. Docker官方下载地址: Mac:https://docs.docker.com/docker-for-mac/Windows:https://docs.docker.com/docker-for-mac/
  2. 查看是否安装成功: 执行:docker version  
  3. FQ,启动镜像,执行命令: docker run -d -p 9999:9999 bhaavan/battery-historian  

查看batterystats.txt文件的图形化报告

1. 使用浏览器访问地址:http://localhost:9999

2. 导入batterystats.txt或者bugreport.zip文件

 


记载这里我遇到一个坑,就是文件上传后,submit提交按钮不显示

  1. 原因:本质是web某些资源没有加载出来,其中的一些资源需要访问google服务器,但是这些资源被墙了,无法访问。只要解决了墙的问题,submit的问题也就迎刃而解了。
  2. 解决方案:
    1. 想办法谷歌FQ(我FQ啦,用同事们买的国外服务器 )
    2. 想办法将无法加载的资源替换为可以加载的资源,参考:https://github.com/waquer/ReplaceGoogleCDN

3. 导入成功后,成功展示电量分析结果,下面我就要来贴神图

电量变化曲折图:

 

系统统计数据图:

 

英文看不懂?来来来,我再贴个翻译后的,这样内容一目了然,我也不用解释了

 

注意个细节啊,这个报告竟然还有Errors与Warnings日志?看图

     

数据解析

CPU runing: cpu运行的状态 
Kernel only uptime: 只有kernell运行
Userspace wakelock: 用户空间申请的锁 
Screen: 屏幕是否点亮 
Top app: 当前在内存中的应用,按内存占用率排序 
Activity Manager Proc: 活跃的用户进程 
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信号强度 
Wifi running: wifi组件是否在工作(未传输数据) 
Wifi on: 同上 
Audio: 音频子系统? 
Camera: 相机是否在工作 
Video:是否在播放视频 
Foreground process: 前台进程 
Package install: 是否在进行包安装 
Package active: 包管理在工作 
Battery level: 电池当前电量 
Temperature: 电池温度 
Plugged: 连接usb或者充电 
Charging on: 在充电 
Logcat misc: 是否在导出日志

电量优化参考:https://www.jianshu.com/p/5d83d8649c98

相关