电量优化(一)电量消耗的全过程分析

    设备忙着执行各种任务和各种复杂计算,秀自拍上传朋友圈图片、秀直播,设备硬件正在快速消耗电池电量来完成这些任务。很明显,你的任务处理的越复杂,电量就会消耗的越多和越快,一眨眼的功夫电量就消耗完了,用户的手机顿时变成个累赘的砖头了,这时候用户就会怀疑谁(哪个app)这么耗电,把它卸了!

写出耗电量低的应用的关键是要透彻理解它的全部过程。

image.png

    在电子编程世界,这种硬件消耗电量 来执行任务的过程,叫做超时电流消耗,
任何电子编程专业的人都会告诉你,你的设备的各项活动在相同时间内,消耗的电量是不同的。
比如,很多手机号称待机好几天,这个确实是真的,不过就是使用飞行模式放在家里什么都不干,确实可以甚至可以坚持10多天。
    但是我们一旦使用它,比如使用蜂窝式无线数据交换(3G4G)、屏幕保持唤醒状态等。
    作为开发者,我们很想知道我的应用执行的哪些任务消耗的电量是最多的?这个问题确实会很棘手。
    电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情(所以很多设备都把这个监测电量的功能阉割掉了。)。
    唯一可行的方案是使用第三方监测电量的设备,这样才能够获取到真实的电量消耗(因为第三方硬件监测的时候是用的自己的供电而不是用的手机的电量)。
    耗电情况,例如:打开屏幕,所有要使用CPU/GPU工作的动作都会唤醒屏幕,都会消耗电量。这和应用程序唤醒设备还不一样。
比如使用叫醒闹钟(wake clock)、AlarmManager、JobSchedulerAPI。

image.png

    待机状态的电量消耗:


image.png

    使用和唤醒屏幕后:


image.png

    当设备从休眠状态中,被应用程序假面唤醒时,你会看到在第一次唤醒时,这里有一条电量使用高峰线

    CUP唤醒时的高峰线:


image.png

    接下来就是后续的一些执行的消耗了:


image.png

    值得注意的是当工作完成后,设备会主动进行休眠,这非常重要,在不使用或者很少使用的情况下,长时间保持屏幕唤醒会迅速消耗电池的电量。
    另外一种,蜂窝式无线也是耗电量非常可怕的。我出门就经常这样干,当我发现手机快没电的时候,我把蜂窝无线关了,留着紧急情况自己可以主动打电话,这个很有用 可以延长2小时的使用哦。

一、蜂窝式无线:

当设备通过无线网发送数据的时候,为了使用硬件,这里会出现一个唤醒好点高峰。
接下来还有一个高数值,这是发送数据包消耗的电量,
然后接受数据包也会消耗大量电量 也看到一个峰值。
所以我们指导了,开启无线模式这个过程非常耗电,那么硬件这块为了防止频繁开启关闭耗电,采取了一个无奈的办法,会在一个小段时间内保持开启模式,防止短时间内还有数据包需要接收。这些数据非常有用,可是 不是所有开发者都有这个第三方设备跟踪。但是使用Android L版本就可以利用到新的一系列的工具来优化应用程序的耗电。(这里显然不要考虑兼容性问题吧,我只是想测电量消耗问题,同一款APP在不同版本上耗电情况应该不会有太大影响。)

image.png

二、Battery Historian

电量使用记录分析工具。
通过ADB获取的数据,通过使用Battery Historian工具分析处理后,得到的html结果文件,用浏览器可以直接查看的。
Battery Historian工具是一个独立的Python开源脚本,可以从gitbub上下载。
请看详细文档:《battery-historian工具使用》

搭建环境:
一、GO环境安装:
下载目录: https://golang.org/doc/install
https://golang.org/doc/install?download=go1.7.3.windows-amd64.msi

二、安装Git
https://git-scm.com/

三、安装Python
注意仅支持python2.7
https://www.python.org/

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

推荐阅读更多精彩内容

  • 一、电量消耗理论与分析 写出耗电量低的应用的关键是要透彻理解它的理论以及全部过程。下面将对电量消耗的相关理论知识进...
    香沙小熊阅读 4,603评论 4 4
  • 前言 设备忙着执行各种任务和各种复杂计算,秀自拍上传朋友圈图片、秀直播,设备硬件正在快速消耗电池电量来完成这些任务...
    双鱼大猫阅读 521评论 2 9
  • 一、了解电量消耗 在电子编程世界,这种硬件消耗电量 来执行任务的过程,叫做超时电流消耗。耗电情况,例如:打开屏幕,...
    Ayres阅读 1,165评论 0 1
  • 已记不得是去年哪一天回的国,差不多也是刚好一年的时间了,去年的今天还是处于很迷惘的状态,回国进行华为软件工程师的面...
    毛线小Y阅读 132评论 0 0
  • 今天听了万建峰老师的课程,感受非常深刻。 互联网思维深深颠覆了我原来的思维方式,重新认识了互联网环境下的市场、用户...
    敏头阅读 262评论 0 0