:文章有说的不对的地方,大家可以帮忙指出!
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 系列算是更新完了,喜欢的宝贝们可以给个赞哈!😆


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