电量测试,就是测试移动设备电量消耗快慢的一种测试方法。一般用平均电流来衡量电量消耗速度。平均电流越小,说明设备使用时间越长。但是平均电流多大才说明不耗电却没有一个统一标准。包括:
1、硬件测试:利用硬件设备测试被测设备的电流,统计一段时间内(使用某个功能模块)的平均电流值。
2、软件测试:利用系统工具导出分析报告
本文只介绍软件测试
进行软件测试需安装Battery Historian,它是google开源的电池历史数据分析工具。详细介绍可以参考https://github.com/google/battery-historian。
安装Battery Historian的方式有两种:分别为Docker与源码编译安装,对于Windows docker需要Windows 10,并且进入bios开启虚拟化。
1、Docker安装。
Docker 是一个开源的应用容器引擎,一般用于云计算和大数据平台,可以一键将别人发布的docker服务环境copy过来。
Docker有Community Edition (CE 社区版) and Enterprise Edition (EE 企业版)两种版本,我们使用社区版就可以了。
安装docker
安装好Docker之后,github上让我们运行
运行docker
但是这个地址貌似需要翻墙。我们可以使用镜像
docker run -p 9999:9999 blystad/battery-historian
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian
运行docker
一段漫长的等待……,然后
启动成功
表示启动成功了。
2、源码编译安装。
需要存在go、git、python与java环境。
对于linux/Mac一般默认会携带python与git,如果不存在或者版本不正确也可以(brew install)。
sudo apt-get install golang
sudo apt-get install git
sudo apt-get install python2.7
2.1 安装go
Go 和java一样是一个编程语言,并且是开源的。因为Battery Historian使用了go来开发,所以我们需要安装go环境,最低需要 1.8.1的版本。
https://golang.org/dl/
选择自己需要安装的系统下载。第二列的Kind表示类型,有source源码(需要自己编译安装)、Installer安装器(下一步、下一步安装)与Archive编译好的(需要配置环境变量)。
go版本列表
安装完成后,使用go version
我们需要确保能够调起go工具,否则需要配置go环境变量。
Windows的在我的电脑右键属性进入配置。
Linux/Mac的则在~/.bashrc 或者 ~/.profile 或者~/.bash_profile 都可以。
我们需要配置go的bin目录进入Path变量,这点和java一样,表示go相关工具的查找路径。另外还需要配置一个GOPATH,GOPATH就是我们工程的目录。
比如我们的工程目录在$HOME/work,则配置如下:
go环境配置
因为我下载的是kind 是 Instanller,所以直接配置一个GOPATH就可以了
GOPATH配置
然后保存退出。创建这个GOPATH目录,留待使用
2.2 Git工具
git工具我们应该都不陌生。和svn一样,Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
https://git-scm.com/downloads
我们按照提示来进行安装就可以了,安装完成可以使用git version 检查是否按照成功。
2.3 安装Python
python必须使用2.7的版本,
https://www.python.org/downloads/
按照提示按照。同样需要配置python的目录到Path环境变量。
安装完成可以使用python –V 检查是否按照成功。
2.4 安装java
http://www.oracle.com/technetwork/java/javase/downloads/index.html
java没什么好说的了。下载安装,配置环境变量……
4个工具都安装完成之后,我们就可以下载BH源码并运行了
我们进入GOPTAH目录,下载源码与其依赖,然后我们运行bh:
cd $GOPATH/src/github.com/google/battery-historian
go run setup.go
go run cmd/battery-historian/battery-historian.go
这样就运行起来了。
以后我们需要运行,也必须每次进入GOPATH目录
cd $GOPATH/src/github.com/google/battery-historian
go run cmd/battery-historian/battery-historian.go
然后我们可以访问http://localhost:9999/
电量分析页面
对于SDK25开始 bugreport 必须在7.0以上设备才能使用。重置:
adb shell dumpsys batterystats --reset
获取完整的wakelock信息:
adb shell dumpsys batterystats --enable full-wake-history
拔掉USB(让设备不处于充电状态),等待一段时间
获得报告:
>7.0
adb bugreport bugreport.zip
<=6.0
adb bugreport > bugreport.txt
adb导出电量分析报告
1、将bugreport.txt或者bugreport.zip到入到http://localhost:9999/中自动分析如下图:
分析结果
查看某个app电量占用
2、分析参数说明
PARTIAL_WAKE_LOCK:保证CPU保持高性能运行,而屏幕和键盘背光(也可能是触摸按键的背光)关闭。一般情况下都会使用这个WakeLock。
ACQUIRE_CAUSES_WAKEUP:这个WakeLock除了会使CPU高性能运行外还会导致屏幕亮起,即使屏幕原先处于关闭的状态下。
ON_AFTER_RELEASE:如果释放WakeLock的时候屏幕处于亮着的状态,则在释放WakeLock之后让屏幕再保持亮一小会。如果释放WakeLock的时候屏幕本身就没亮,则不会有动作。
API17被弃用的WakeLock:保持屏幕长亮
1、SCREEN_DIM_WAKE_LOCK:保证屏幕亮起,但是亮度可能比较低。同时键盘背光也可以不亮。
2、SCREEN_BRIGHT_WAKE_LOCK :保证屏幕全亮,同时键盘背光也亮。
3、FULL_WAKE_LOCK:表现和SCREEN_BRIGHT_WAKE_LOCK 类似,但是区别在于这个等级的WakeLock使用的是最高亮度。
推荐是用WindowFlagWindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON。使用方法是在Activity中:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
在布局中添加这个属性:android:keepScreenOn="true";
(正文已结束)
推荐阅读:宁德都市网
免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!