扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
3.获取电池充电状态
馆陶ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
intent.getIntExtra("plugged", 0); //获取充电方式
经测试: BATTERY_PROPERTY_CURRENT_NOW和BATTERY_PROPERTY_CURRENT_AVERAGE获取到的数据并不准确
测量设备电耗
知道电池总容量后可以根据当前电量的百分比,计算出当前电量。
方法一:
安卓手机是可以通过系统设置显示电池电量的。
1、我们点击进入“设置”,不同系统不同机型进入到设置的方法大同小异:进入设置界面后,看到【设备】设置中的【省电】,点击进入。
2、进入到【省电】设置看到下面的【电池信息】,我们可以看到此时电量为60%,但是状态栏中的电池信息是看不到的,总不能每次都进入设置界面看吧。我们看到下面的“电池百分比”,在后面的方框中打“钩”。
方法二:
通过下载360电池充电管理软件等第三方的电池电量管理软件,就可以实现电量百分比显示。
方法三:
通过下载有电池百分比的rom,也可以实现电量百分比显示。
背景介绍
目前对于移动设备而言,电量是很重要的一个方面。现在大家使用手机基本每天都需要充电,所以用户也非常关注耗电的问题,如果应用设计不合理导致电量大量消耗,那么对于关注耗电的用户而言,这款应用将会是首要卸载目标。因此,作为测试人员,我们也应该对应用的耗电做一些针对性测试。
Android电量测试
各参数意义
battery_level: 电量,可以看出电量的变化
plugged: 充电状态,这一栏显示是否进行了充电,以及充电的时间范围。
Screen: 屏幕是否点亮,这一点可以考虑到睡眠状态和点亮状态下电量的使用信息。
Top: 该栏显示当前时刻哪个app处于最上层,就是当前手机运行的app,用来判断某个app对手机电量的影响,这样也能判断出该app的耗电量信息。该栏记录了应用在某一个时刻启动,以及运行的时间,这对我们比对不同应用对性能的影响有很大的帮助。
wake_lock*: wake_lock该属性是记录wake_lock模块的工作时间。是否有停止的时候等。
running: 界面的状态,主要判断是否处于idle的状态。用来判断无操作状态下电量的消耗。
wake_lock_in: wake_lock有不同的组件,这个地方记录在某一个时刻,有哪些部件开始工作,以及工作的时间。
Gps: gps是否开启。
phone_in_call: 是否进行通话。
Sync: 是否跟后台同步。可以把鼠标停在某一项上面。可以看到何时sync同步启动的,持续时间Duration多久。电池容量不会显示单一行为消耗的具体电量,这里只能显示使用电池的频率和时长,你可以看分时段的剩余电量来了解具体消耗了多少电量。
Job: 后台的工作,比如服务service的运行。
data_conn: 数据连接方式的改变,上面的edge是说明采用的gprs的方式连接网络的。此数据可以看出手机是使用2g,3g,4g还是wifi进行数据交换的。这一栏可以看出不同的连接方式对电量使用的影响。
Status: 电池状态信息,有充电,放电,未充电,已充满,未知等不同状态。这一栏记录了电池状态的改变信息。
phone_signal_strength: 手机信号状态的改变。这一栏记录手机信号的强弱变化图,依次来判断手机信号对电量的影响。
Health: 电池健康状态的信息,这个信息一定程度上反映了这块电池使用了多长时间。这一栏记录电池状态在何时发生改变,上面的图中电池状态一直处于good状态。
Plug: 充电方式,usb或者插座,以及显示连接的时间。这一栏显示了不同的充电方式对电量使用的影响。
优点:结果直观,有详细的耗电数据
缺点:不支持5.0以下的android系统
获取数据注意事项:
获取测试结果时我们也要注意数据的有效性,避免数据误差,让数据更有效的说明问题,下面提供两种方法,来提高获取数据的有效性。
一、横向对比法:分两步测试,第一步测量手机硬件运行消耗的电量;第二步测试手机硬件和软件运行综合的耗电量。最后将两次的耗电进行对比,得出软件消耗的电量大小;
二、纵向对比法:同时进行两台手机,其中一台手机不运行软件,另一台手机运行软件;分别获得两台手机的耗电量,对比两台手机耗电量差异,得出软件消耗的电量大小。
这两种方法在测试上有一定的差异,很多应用软件都是需要移动网络的支持,而手机接收的网络信号是会随时间变化的。
因此,第一种方法的误差主要来源于手机在不同的基站网络下工作状态的变化。
第二种方法的差异则体现在两台手机本身硬件消耗的电量可能存在差异,所以需要尽可能使用同一型号,同一批次的手机。
电池续航时间是移动用户体验中最重要的一个方面。没电的设备完全无法使用。因此,对于应用来说,尽可能地考虑电池续航时间是至关重要的。
Android 6.0 之后 , 引入了电量优化相关特性 Doze 低电耗模式 和 Standby 应用待机模式 ;
上述两个特性都是通过优化手机在未充电时的行为 , 达到延长手机待机时间的目的 ;
|类型|开启条件|影响范围|
| ---- | ---- |---- | ---- |
| Doze 低耗电模式 | 未充电、屏幕熄灭、设备在一段时间内保持不活动状态 |延迟后台应用的 CPU 和网络模块工作 |
| Standby 应用待机模式 | 延迟不活跃应用(进程不在前台运行并且没有在锁定屏幕或通知栏中的通知) |延迟网络模块工作 |
系统提供了一个可配置的白名单,将部分免除低电耗模式和应用待机模式优化的应用列入其中。 在低电耗模式和应用待机模式期间,列入白名单的应用可以使用网络并保留部分唤醒锁定。不过,列入白名单的应用 仍会受到其他限制 ,就像其他应用一样。例如,列入白名单的应用的作业和同步会延迟(在6.0及以下的设备上),并且其常规 AlarmManager 闹钟不会触发。
先添加权限
Energy Profifiler
使用 Android 8.0 及以上版本的设备时,使用Energy Profifiler 可以了解应用在哪里耗用了不必要的电量。 Energy Profifiler 会监控 CPU、网络无线装置和 GPS 传感器的使用情况,并直观地显示其中每个组件消耗的电量。还会显示可能会影响耗电量的系统事件(唤醒锁定、闹钟、作业和位置信息请求)的发生次数。
Battery Historian
Battery Historian时google提供的电量监控工具,详见
在应用层,主要从 WakeLock即时释放、网络优化、内存优化等方面来做手
若使用的是vivo手机,Android系统是多个功能和服务的集合体,比如权限管理、蓝牙设置、电话服务、指纹与密码等常用功能有关的耗电会被计入Android系统,如果第三方软件使用到这些功能,电量也会被计入Android系统,所以我们看到Android系统程序耗电较高,实际和第三方软件的使用情况有关,您可以使用“一键加速”清理后台不必要的程序,适当调低屏幕亮度和音量;另外进入设置--电池,根据手机电量情况选择合适的省电模式,延长手机续航时间。
如果希望在状态栏显示剩余电量百分比,可以通过下面方法进行设置:
EMUI 3.1:进入“设置电池”,勾选“显示剩余电量百分比”;
EMUI 4.0:在“设置通知栏和状态栏”,勾选“显示剩余电量百分比”,或者在“设置高级设置电池管理”,打开“显示剩余电量百分比”。
如果不希望显示剩余电量百分比,可以按照以上操作方法关闭。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流