Nexus5電量消耗的全過(guò)程分析

前言

設(shè)備忙著執(zhí)行各種任務(wù)和各種復(fù)雜計(jì)算滔蝉,秀自拍上傳朋友圈圖片、秀直播贬蛙,設(shè)備硬件正在快速消耗電池電量來(lái)完成這些任務(wù)雨女。很明顯,你的任務(wù)處理的越復(fù)雜阳准,電量就會(huì)消耗的越多和越快,一眨眼的功夫電量就消耗完了馏臭,用戶的手機(jī)頓時(shí)變成個(gè)累贅的磚頭了野蝇,這時(shí)候用戶就會(huì)懷疑誰(shuí)(哪個(gè)app)這么耗電,把它卸了括儒!

寫(xiě)出耗電量低的應(yīng)用的關(guān)鍵是要透徹理解它的全部過(guò)程绕沈。

battery sketch
  • 在電子編程世界,這種硬件消耗電量 來(lái)執(zhí)行任務(wù)的過(guò)程帮寻,叫做超時(shí)電流消耗乍狐,
  • 任何電子編程專(zhuān)業(yè)的人都會(huì)告訴你,你的設(shè)備的各項(xiàng)活動(dòng)在相同時(shí)間內(nèi)固逗,消耗的電量是不同的浅蚪。
  • 比如,很多手機(jī)號(hào)稱(chēng)待機(jī)好幾天烫罩,這個(gè)確實(shí)是真的惜傲,不過(guò)就是使用飛行模式放在家里什么都不干,確實(shí)可以甚至可以堅(jiān)持10多天贝攒。
  • 但是我們一旦使用它盗誊,比如使用蜂窩式無(wú)線數(shù)據(jù)交換(3G4G)、屏幕保持喚醒狀態(tài)等。
  • 作為開(kāi)發(fā)者哈踱,我們很想知道我的應(yīng)用執(zhí)行的哪些任務(wù)消耗的電量是最多的荒适?這個(gè)問(wèn)題確實(shí)會(huì)很棘手。
    電量消耗的計(jì)算與統(tǒng)計(jì)是一件麻煩而且矛盾的事情开镣,記錄電量消耗本身也是一個(gè)費(fèi)電量的事情(所以很多設(shè)備都把這個(gè)監(jiān)測(cè)電量的功能閹割掉了吻贿。)。
  • 唯一可行的方案是使用第三方監(jiān)測(cè)電量的設(shè)備哑子,這樣才能夠獲取到真實(shí)的電量消耗(因?yàn)榈谌接布O(jiān)測(cè)的時(shí)候是用的自己的供電而不是用的手機(jī)的電量)舅列。
  • 耗電情況,例如:打開(kāi)屏幕卧蜓,所有要使用CPU/GPU工作的動(dòng)作都會(huì)喚醒屏幕帐要,都會(huì)消耗電量。這和應(yīng)用程序喚醒設(shè)備還不一樣弥奸。
比如使用叫醒鬧鐘(wake clock)榨惠、AlarmManager、JobSchedulerAPI盛霎。
battery life

待機(jī)狀態(tài)的電量消耗:

standby

使用喚醒屏幕后:

weak up
當(dāng)設(shè)備從休眠狀態(tài)中赠橙,被應(yīng)用程序假面喚醒時(shí),你會(huì)看到在第一次喚醒時(shí)愤炸,這里有一條電量使用高峰線
CUP喚醒時(shí)的高峰線:
Awake1
接下來(lái)就是后續(xù)的一些執(zhí)行的消耗了:
Awake2
  • 值得注意的是當(dāng)工作完成后期揪,設(shè)備會(huì)主動(dòng)進(jìn)行休眠,這非常重要规个,在不使用或者很少使用的情況下凤薛,長(zhǎng)時(shí)間保持屏幕喚醒會(huì)迅速消耗電池的電量浊猾。
  • 另外一種羹呵,蜂窩式無(wú)線也是耗電量非常可怕的坛怪。我出門(mén)就經(jīng)常這樣干墅拭,當(dāng)我發(fā)現(xiàn)手機(jī)快沒(méi)電的時(shí)候活玲,
    我把蜂窩無(wú)線關(guān)了,留著緊急情況自己可以主動(dòng)打電話谍婉,這個(gè)很有用 可以延長(zhǎng)2小時(shí)的使用哦舒憾。

蜂窩式無(wú)線:

  • 當(dāng)設(shè)備通過(guò)無(wú)線網(wǎng)發(fā)送數(shù)據(jù)的時(shí)候,為了使用硬件屡萤,這里會(huì)出現(xiàn)一個(gè)喚醒好點(diǎn)高峰珍剑。
    接下來(lái)還有一個(gè)高數(shù)值,這是發(fā)送數(shù)據(jù)包消耗的電量死陆,
    然后接受數(shù)據(jù)包也會(huì)消耗大量電量 也看到一個(gè)峰值招拙。
  • 所以我們指導(dǎo)了唧瘾,開(kāi)啟無(wú)線模式這個(gè)過(guò)程非常耗電,那么硬件這塊為了防止頻繁開(kāi)啟關(guān)閉耗電别凤,采取了一個(gè)無(wú)奈的辦法饰序,會(huì)在一個(gè)小段時(shí)間內(nèi)保持開(kāi)啟模式,防止短時(shí)間內(nèi)還有數(shù)據(jù)包需要接收规哪。這些數(shù)據(jù)非常有用求豫,可是 不是所有開(kāi)發(fā)者都有這個(gè)第三方設(shè)備跟蹤。但是使用Android L版本就可以利用到新的一系列的工具來(lái)優(yōu)化應(yīng)用程序的耗電诉稍。(這里顯然不要考慮兼容性問(wèn)題吧蝠嘉,我只是想測(cè)電量消耗問(wèn)題,同一款A(yù)PP在不同版本上耗電情況應(yīng)該不會(huì)有太大影響杯巨。)
Nexus5 -Cellular Radio

Battery Historian

電量使用記錄分析工具蚤告。
通過(guò)ADB獲取的數(shù)據(jù),通過(guò)使用Battery Historian工具分析處理后服爷,得到的html結(jié)果文件杜恰,用瀏覽器可以直接查看的。
Battery Historian工具是一個(gè)獨(dú)立的Python開(kāi)源腳本仍源,可以從gitbub上下載心褐。
請(qǐng)看詳細(xì)文檔:《battery-historian工具使用》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笼踩,隨后出現(xiàn)的幾起案子逗爹,更是在濱河造成了極大的恐慌,老刑警劉巖戳表,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桶至,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡匾旭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)圃郊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)价涝,“玉大人,你說(shuō)我怎么就攤上這事持舆∩瘢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵逸寓,是天一觀的道長(zhǎng)居兆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)竹伸,這世上最難降的妖魔是什么泥栖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任簇宽,我火速辦了婚禮,結(jié)果婚禮上吧享,老公的妹妹穿的比我還像新娘魏割。我一直安慰自己,他們只是感情好钢颂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布钞它。 她就那樣靜靜地躺著,像睡著了一般殊鞭。 火紅的嫁衣襯著肌膚如雪遭垛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天操灿,我揣著相機(jī)與錄音锯仪,去河邊找鬼。 笑死牲尺,一個(gè)胖子當(dāng)著我的面吹牛卵酪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谤碳,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼溃卡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蜒简?” 一聲冷哼從身側(cè)響起瘸羡,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搓茬,沒(méi)想到半個(gè)月后犹赖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卷仑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年峻村,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锡凝。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粘昨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窜锯,到底是詐尸還是另有隱情张肾,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布锚扎,位于F島的核電站吞瞪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏驾孔。R本人自食惡果不足惜芍秆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一惯疙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浪听,春花似錦螟碎、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至克伊,卻和暖如春酥郭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愿吹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工不从, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人犁跪。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓椿息,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親坷衍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寝优,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容