:文章有说的不对的地方,大家可以帮忙指出!
Monkey 测试基本操作介绍(一)
Monkey 测试日志讲解(二)
Monkey+Logcat+DDMS内存泄漏分析以及定位(三)
Monkey+Logcat+traces 查找以及分析定位 ANR 问题(四)
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. ***,启动镜像,执行命令: 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. 想办法谷歌(我啦,用同事们买的国外服务器😆
    2. 想办法将无法加载的资源替换为可以加载的资源,参考:https://github.com/waquer/ReplaceGoogleCDN

有同学说***之后还是无法显示submit提交按钮,我这里提供下他的解决方案

执行:go run setup.go(必须要***,不然资源下载不到)
参考链接:https://blog.csdn.net/super_spy/article/details/51966956

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

最后,monkey系列算是更新完了,喜欢的宝贝们可以给个赞哈!😆


↙↙↙阅读原文可查看相关链接,并与作者交流