Android电量
- Android工具
- 统计和评测标准
- 方法
- 问题
Android电量概念
手机由众多“部件”组成,所谓“部件”是指:CPU,WIFI,GPS....所以,Android App消耗总电量为 App运行过程中,涉及各部件的消耗电量的总和。
假设运行App导致CPU运行,时间:t,CPU单位时间消耗电量:w,则App的CPU耗电量为:W = w*t,而有物理公式 W = U*I*t(U:电压值,I:电流值),在手机中,一般U恒定不变,所以,可以单独通过 Q(电容量,单位: mAh)= I * t 表示电量。
Android各部分耗电量
在Android手机中,手机每个组件,如CPU、显示屏、GPS、Audio、WiFi、Bluetooth等,运行时的能耗都保存在power_profile.xml文件中。所以我们可以通过读取power_profile.xml文件获取,获得各组件的能耗值
以小米4为例: system/framework/framework-res.apk 中的 power_profile.xml
<?xml version="1.0" encoding="utf-8"?>
<device name="Android">
<item name="none">0</item>
<!-- 亮屏状态下的耗电基数 -->
<item name="screen.on">100</item>
<!-- 蓝牙传输的耗电基数 -->
<item name="bluetooth.active">142</item>
<!-- 打开蓝牙设备后的耗电基数 -->
<item name="bluetooth.on">0.3</item>
<item name="bluetooth.at">0.01</item>
<!-- 屏幕最高亮度的耗电基数 -->
<item name="screen.full">160</item>
<!-- wifi开启后的耗电基数 -->
<item name="wifi.on">4</item>
<!-- wifi数据传输的耗电基数 -->
<item name="wifi.active">120</item>
<!-- wifi扫描的耗电基数 -->
<item name="wifi.scan">220</item>
<item name="dsp.audio">88</item>
<item name="dsp.video">88</item>
<!-- 数据网络传输的耗电基数 -->
<item name="radio.active">300</item>
<!-- gps设备耗电基数 -->
<item name="gps.on">170</item>
<!-- 总电量 -->
<item name="battery.capacity">1390</item>
<!-- 驻网扫描的耗电基数 -->
<item name="radio.scanning">70</item>
<!-- 电话耗电 -->
<array name="radio.on">
<value>3</value>
<value>3</value>
</array>
<!--
cpu运行速率以及响应的耗电量
idle --- 2.8
300000 --- 66.6
2457600 --- 168.4
-->
<array name="cpu.speeds">
<value>300000</value>
<value>422400</value>
<value>652800</value>
<value>729600</value>
<value>883200</value>
<value>960000</value>
<value>1036800</value>
<value>1190400</value>
<value>1267200</value>
<value>1497600</value>
<value>1574400</value>
<value>1728000</value>
<value>1958400</value>
<value>2265600</value>
<value>2457600</value>
</array>
<item name="cpu.idle">2.8</item>
<array name="cpu.active">
<value>66.6</value>
<value>84</value>
<value>90.8</value>
<value>96</value>
<value>105</value>
<value>111.5</value>
<value>117.3</value>
<value>123.6</value>
<value>134.5</value>
<value>141.8</value>
<value>148.5</value>
<value>168.4</value>
<value>168.4</value>
<value>168.4</value>
<value>168.4</value>
</array>
</device>
APP 关注的几个关键指标:
- screen.full 屏幕全亮状态下的耗电量
- wifi.active wifi传输数据的耗电量
- wifi.scan wifi扫描的耗电量
- radio.active 数据网络传输数据的耗电量
- gps.on gps定位的耗电量
- cpu cpu不同运行频率的耗电量
以小米4的xml 配置为例:
wifi传输耗电量为120 而数据网络传输耗电量为300,是wifi的2.5倍
cpu高频计算的耗电量为168.4,不同频率下的耗电量也不同
wifi扫描耗电量为220 也是比较耗电的行为
总结
以下是众包一周的数据请求统计:Wifi请求占用了23.72% 数据流量(2G/3G/4G)76.28%