人生有三大错觉

1.手机振动

2.他喜欢我

3.我的app不耗电

软件功耗的组成

软件功耗主要包括9项

功耗项

解释

usage

通用的功耗

CPU

CPU的功耗

wakelock

唤醒带来的功耗

mobileRadio

移动无线的功耗

wifi

wifi功耗

gps

定位的功耗

sensor

传感器的功耗

camera

相机功耗

flashlight

闪光灯功耗

功耗计算原理

 1. 手机由众多“部件”组成,所谓“部件”是指:CPU,WIFI,GPS....所以,Android App消耗总电量为 App运行过程中,涉及各部件的消耗电量的总和。

 2. 假设运行App导致CPU运行,时间:t,CPU单位时间消耗电量:w,则App的CPU耗电量为:W = w*t,而有物理公式 W = U*I*t(U:电压值,I:电流值),在手机中,一般U恒定不变,所以,可以单独通过 Q(电容量,单位: mAh)= I * t 表示电量

其他软件耗电项的计算原理与2中的计算原理相同。

 

总的耗电量=usage耗电量+CPU耗电量+wakelock耗电量+mobileRadio耗电量+wifi耗电量+gps耗电量+Sensor耗电量+camera耗电量+flashlight耗电量

Battery Historian for windows环境搭建

简介:Battery historian是一款通过上传bugreport文件分析用户手机中App的电池耗电情况的工具。

Battery Historian 1.0 通过python脚本转换成html文件,而新版本 Battery Historian 2.0 发布了,新版本带来了很多的改进:更清晰的报告,每个应用程序的摘要,更快的执行等等。

步骤

一、首先安装Go编程语言

  1. 下载安装程序;
  2. 安装Go;
  3. 配置GOROOT和GOPATH

    a. GOROOT的作用是告诉Go 命令和其他相关工具,在哪里去找到安装在你系统上的Go包,所以这里配置的是GO的安装目录

     

android 功耗测试场景 android功耗分析_功耗测试

 

    b.GOPATH可以简单理解为是工程的目录,所以创建一个GO的工程路径

     

android 功耗测试场景 android功耗分析_battery-historian_02

 

         C.最后配置一下环境变量,把Go的bin目录放到path环境变量中

     

android 功耗测试场景 android功耗分析_功耗测试_03

 

  4. 检查Go是否安装成功,打开命令行输入Go version

   

android 功耗测试场景 android功耗分析_功耗测试_04

二、安装Git

      目前版本控制也都是GIT,所以基本上所有的电脑都已经安装,该步骤略过,可自行百度安装。

三、安装Python

  1. 下载安装程序
  2. 安装完成;
  3. 环境变量配置,添加Path的路径,是Python的安装路径
  4. 输入命令行 python –V(注意是大写V)检查是否安装成功

     

android 功耗测试场景 android功耗分析_Android功耗测试_05

四、下载Battery Historian源码并且运行

  1. 输入命令行go get -d -u github.com/google/battery-historian/..  
  2. android 功耗测试场景 android功耗分析_功耗_06

  3.  **下载到GOPATH配置目录下
  4. 进入到$GOPATH/src/github.com/google/battery-historian目录下方
  5. android 功耗测试场景 android功耗分析_功耗_07


  6. 运行Battery Historian a. go run setup.go
    # Compile Javascript files using the Closure compiler
    $ go run setup.go
  7. android 功耗测试场景 android功耗分析_功耗_08

1.1 重置电池数据收集数据

adb shell dumpsys batterystats --enable full-wake-history

adb shell dumpsys batterystats --reset

我们通过以上命令来打开电池数据的获取以及重置,清除干扰的数据

1.2 获取电量报告

把数据线直接拔掉(防止数据线造成充放电数据干扰),现在做一些测试,手动或者跑一些自动化的case都行。经过一段时间后,我们重新连接手机确认adb连上了,运行下面这条命令来将bugreport的信息保存到txt文档中。

adb bugreport >D:\bugreport.txt

备注:一般厂商报问题的时候,也会提供该日志文件,可以将该日志文件导入Battery Historian中进行分析。

1.3 使用battery-historian工具图形化报告

启动命令行,在cmd中进入本地go wakespace中的\src\github.com\google\battery-historian目录下,执行

go run cmd/battery-historian/battery-historian.go

打开浏览器,进入http://localhost:9999/网址,然后选择导入bugreport.txt文件,即可进入到图形化展示界面。

横轴是时间轴,纵轴代表的每个耗电项的耗电情况。另外,往下滑,可以选择具体的应用,