Android电量优化之电量测试
电量测试,就是测试移动设备电量消耗快慢的一种测试方法。一般用平均电流来衡量电量消耗速度。平均电流越小,说明设备使用时间越长。但是平均电流多大才说明不耗电却没有一个统一标准。包括:
1、硬件测试:利用硬件设备测试被测设备的电流,统计一段时间内(使用某个功能模块)的平均电流值。
2、软件测试:利用系统工具导出分析报告
本文只介绍软件测试
进行软件测试需安装Battery Historian,它是google开源的电池历史数据分析工具。详细介绍可以参考https://github.com/google/battery-historian。
Battery Hostorian的安装
安装Battery Historian的方式有两种:分别为Docker与源码编译安装,对于Windows docker需要Windows 10,并且进入bios开启虚拟化。
1、Docker安装。
Docker 是一个开源的应用容器引擎,一般用于云计算和大数据平台,可以一键将别人发布的docker服务环境copy过来。
Docker有Community Edition (CE 社区版) and Enterprise Edition (EE 企业版)两种版本,我们使用社区版就可以了。
安装好Docker之后,github上让我们运行
但是这个地址貌似需要翻墙。我们可以使用镜像
docker run -p 9999:9999 blystad/battery-historian
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian
一段漫长的等待……,然后
表示启动成功了。
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 version
我们需要确保能够调起go工具,否则需要配置go环境变量。
Windows的在我的电脑右键属性进入配置。
Linux/Mac的则在~/.bashrc 或者 ~/.profile 或者~/.bash_profile 都可以。
我们需要配置go的bin目录进入Path变量,这点和java一样,表示go相关工具的查找路径。另外还需要配置一个GOPATH,GOPATH就是我们工程的目录。
比如我们的工程目录在$HOME/work,则配置如下:
因为我下载的是kind 是 Instanller,所以直接配置一个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/
导出bugreport电量分析报告
对于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
分析报告界面介绍
1、将bugreport.txt或者bugreport.zip到入到http://localhost:9999/中自动分析如下图:
2、分析参数说明
- WakeLock级别
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";
- CPU runingcpu运行的状态,是否被唤醒
- Kernel only uptime只有内核运行时间
- Activity Manager Proc活跃的用户进程
- Mobile network type网络类型
- Mobile radio active移动蜂窝信号 BP侧耗电
- 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 strengthwifi信号强度(great\good\moderate\poor)
- Wifi runningwifi组件是否在工作(未传输数据)
- Wifi on同上
- Audio音频是否开启
- Camera相机是否在工作
- Video是否在播放视频
- Foreground process前台进程
- Package install是否在进行包安装
- Package active包管理在工作
- Battery level电池当前电量
- Temperature电池温度
- Logcat misc是否在导出日志
- Plugged 充电
(正文已经结束)
推荐阅读:吉林视窗
免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!
相关新闻
- 2020-05-05·新贵正当燃,8848钛金手机M
- 2020-05-11·摒弃无效社交,爻信APP引领价
- 2020-05-18·新全球最薄手机?ELIFE S
- 2020-05-24·手机批发价,一台手机能挣你六七
- 2020-05-31·真·小手机!Palm入网工信部