Android测试电量与优化报告

前言,电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情。唯一可行的方案是使用第三方监测电量的设备,这样才能够获取到真实的电量消耗。

工具:Battery Historian, 是一款由Google提供的Android系统电量分析工具.使用Battery Historian需要搭建GO开发环境。需要更加直观的观察电量数据,还需要搭建Python开发环境。(参考文献:http://www.it610.com/article/5231420.htm

通过Battery Historian获取了手机电量总情况后,研究手机电量使用情况,并找出项目对手机电量的使用情况,分析电量使用情况,并研究项目电量优化的策略。

测试手机app的电量使用情况
测试手机的电量使用汇总情况

主要指标解释

横坐标:时间周期,60秒为一个周期;

battery_level: 电池的电量情况;

plugged: 充电状态及充电的时长;

screen: 屏幕是否点亮及时间

top: 该栏显示当前时刻哪个app处于最上层,就是当前手机运行的app,用来判断某个app对手机电量的影响,这样也能判断出该app的耗电量信息。

wake_lock*:  wake_lock 该属性是记录wake_lock模块的工作时间。是否有停止的时候等。

running: 界面的状态,主要判断是否处于idle的状态。用来判断无操作状态下电量的消耗。

wake_lock_in: wake_lock有不同的组件,这个地方记录在某一个时刻,有哪些部件开始工作,以及工作的时间。

data_conn:数据连接方式的改变,上面的edge是说明采用的gprs的方式连接网络的。此数据可以看出手机是使用2g,3g,4g还是wifi进行数据交换的。这一栏可以看出不同的连接方式对电量使用的影响。

status:电池状态信息,有充电,放电,未充电,已充满,未知等不同状态。这一栏记录了电池状态的改变信息。

phone_signal_strength:手机信号状态的改变。这一栏记录手机信号的强弱变化图,依次来判断手机信号对电量的影响。

health:电池健康状态的信息,这个信息一定程度上反映了这块电池使用了多长时间。这一栏记录电池状态在何时发生改变。

plug:充电方式,usb或者插座,以及显示连接的时间。这一栏显示了不同的充电方式对电量使用的影响。

补充:之前仅仅为项目电量情况进行一次系统诊断,但用户使用过程中出现的异常电量使用情况无法被统计与分析。所以对用户使用项目的持续诊断与分析是至关重要的。

为持续诊断设计策略时,发现新的问题:与应用的正常行为相比,持续监控电池电量会消耗更多电量。因此,比较合适的做法是只监控电池电量的显著变化(尤其是在设备进入或结束低电量状态的情况下)。比如 用户容易感知到的电量变化节点:低电量状态,手机电量过低自动关机,电池温度等异常状态下进行监控并将数据上传服务器。再在服务器中进行统计分析后,通知手机做出电量补救措施。(持续诊断操作步骤相当耗时,故可选)

判断手机充电状态

通过手机广播来接受到手机电池电量的显著变化:

// BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态

// BatteryManager.BATTERY_STATUS_DISCHARGING 放电中

// BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电

// BatteryManager.BATTERY_STATUS_FULL 电池满

//充电类型 BatteryManager.BATTERY_PLUGGED_AC 表示是充电器,不是这个值,表示是 USB

//电池健康情况,返回也是一个数字

//BatteryManager.BATTERY_HEALTH_GOOD 良好

//BatteryManager.BATTERY_HEALTH_OVERHEAT 过热

//BatteryManager.BATTERY_HEALTH_DEAD 没电

//BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 过电压

//BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未知错误

电量优化建议: 

第一:项目存在大量的轮询请求接口。应该将其整合起来,减少CPU的消耗。

 第二(可选):项目的直播或音频是电量消耗大户,可判断用户是否处于充电状态,再获取用户电量,在某个临界点时,降低直播码率,提高观看直播时间。 

第三:清单文件application标签下keepScreenOn保持屏幕常亮模式不够完善,导致用户长时间无操作情况下,屏幕长时间 保持常亮。建议修改模式为:用户5分钟未操作状态下,屏幕变暗且屏幕不关闭。满足屏幕处于开启状态下节约用电。 

第四(可选):项目存在大量的图片展示,图片加载时会消耗大量的流量与电量。方案一:可判断用户是否处于充电 状态,再获取用户电量,在某个临界点时,降低加载图片码率,提高操作时间。 

第五:项目也有一些上传下载操作进行着,可采用高效下载策略,做到批量执行网络请求,尽量避免频繁的间隔网络请 求。判断哪些任务是不紧急的,可以交给Job Scheduler来处理,Job Scheduler集中处理收到的任务,选择合适的时间,合适的网 络,再一起进行执行。

结语: 测试电量与优化是一条漫长的道路,也希望大家有“把电量当成干粮”的意识,这样你所做的app也会更加优雅。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 硬件消耗电量 来执行任务的过程,叫做超时电流消耗主要消耗:1.最大的耗电是我们的屏幕2.蜂窝式无线数据交换(3G4...
    王者梦回Arvin阅读 926评论 0 0
  • 一、了解电量消耗 在电子编程世界,这种硬件消耗电量 来执行任务的过程,叫做超时电流消耗。耗电情况,例如:打开屏幕,...
    Ayres阅读 1,137评论 0 1
  • 思维的五个维度 感性判断, 利益判断, 价值判断, 规则可持续性判断, 自我思想体系判断。 第一阶段,大概算是“文...
    杨蜀冰阅读 6,189评论 0 3
  • 人们喜欢用动物或植物来比喻人物,比如鼠目寸光、义结金兰,可见万物与人一一对应,人与万物也在互相抄袭。去年票房爆棚的...
    苦安阅读 269评论 0 0
  • 雨小月 1.《MacTalk跨越边界》池建强 2.《代码整洁之道》Robert C. Martin 3.《美的历程...
    山雨小月阅读 269评论 0 1