Android測試電量與優(yōu)化報告

前言善玫,電量消耗的計算與統(tǒng)計是一件麻煩而且矛盾的事情,記錄電量消耗本身也是一個費電量的事情密强。唯一可行的方案是使用第三方監(jiān)測電量的設(shè)備蝌焚,這樣才能夠獲取到真實的電量消耗。

工具:Battery Historian, 是一款由Google提供的Android系統(tǒng)電量分析工具.使用Battery Historian需要搭建GO開發(fā)環(huán)境誓斥。需要更加直觀的觀察電量數(shù)據(jù)只洒,還需要搭建Python開發(fā)環(huán)境。(參考文獻:http://www.it610.com/article/5231420.htm

通過Battery Historian獲取了手機電量總情況后劳坑,研究手機電量使用情況毕谴,并找出項目對手機電量的使用情況,分析電量使用情況距芬,并研究項目電量優(yōu)化的策略涝开。

測試手機app的電量使用情況
測試手機的電量使用匯總情況

主要指標解釋

橫坐標:時間周期,60秒為一個周期框仔;

battery_level: 電池的電量情況舀武;

plugged: 充電狀態(tài)及充電的時長;

screen: 屏幕是否點亮及時間

top: 該欄顯示當前時刻哪個app處于最上層,就是當前手機運行的app离斩,用來判斷某個app對手機電量的影響银舱,這樣也能判斷出該app的耗電量信息。

wake_lock*:??wake_lock 該屬性是記錄wake_lock模塊的工作時間跛梗。是否有停止的時候等寻馏。

running: 界面的狀態(tài),主要判斷是否處于idle的狀態(tài)核偿。用來判斷無操作狀態(tài)下電量的消耗诚欠。

wake_lock_in: wake_lock有不同的組件,這個地方記錄在某一個時刻漾岳,有哪些部件開始工作轰绵,以及工作的時間。

data_conn:數(shù)據(jù)連接方式的改變尼荆,上面的edge是說明采用的gprs的方式連接網(wǎng)絡(luò)的左腔。此數(shù)據(jù)可以看出手機是使用2g,3g耀找,4g還是wifi進行數(shù)據(jù)交換的翔悠。這一欄可以看出不同的連接方式對電量使用的影響。

status:電池狀態(tài)信息野芒,有充電蓄愁,放電,未充電狞悲,已充滿撮抓,未知等不同狀態(tài)。這一欄記錄了電池狀態(tài)的改變信息摇锋。

phone_signal_strength:手機信號狀態(tài)的改變丹拯。這一欄記錄手機信號的強弱變化圖,依次來判斷手機信號對電量的影響荸恕。

health:電池健康狀態(tài)的信息乖酬,這個信息一定程度上反映了這塊電池使用了多長時間。這一欄記錄電池狀態(tài)在何時發(fā)生改變融求。

plug:充電方式咬像,usb或者插座,以及顯示連接的時間生宛。這一欄顯示了不同的充電方式對電量使用的影響县昂。

補充:之前僅僅為項目電量情況進行一次系統(tǒng)診斷,但用戶使用過程中出現(xiàn)的異常電量使用情況無法被統(tǒng)計與分析陷舅。所以對用戶使用項目的持續(xù)診斷與分析是至關(guān)重要的倒彰。

為持續(xù)診斷設(shè)計策略時,發(fā)現(xiàn)新的問題:與應(yīng)用的正常行為相比莱睁,持續(xù)監(jiān)控電池電量會消耗更多電量待讳。因此,比較合適的做法是只監(jiān)控電池電量的顯著變化(尤其是在設(shè)備進入或結(jié)束低電量狀態(tài)的情況下)仰剿。比如 用戶容易感知到的電量變化節(jié)點:低電量狀態(tài)耙箍,手機電量過低自動關(guān)機,電池溫度等異常狀態(tài)下進行監(jiān)控并將數(shù)據(jù)上傳服務(wù)器酥馍。再在服務(wù)器中進行統(tǒng)計分析后辩昆,通知手機做出電量補救措施。(持續(xù)診斷操作步驟相當耗時旨袒,故可選)

判斷手機充電狀態(tài)

通過手機廣播來接受到手機電池電量的顯著變化:

// BatteryManager.BATTERY_STATUS_CHARGING 表示是充電狀態(tài)

// BatteryManager.BATTERY_STATUS_DISCHARGING 放電中

// BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充電

// BatteryManager.BATTERY_STATUS_FULL 電池滿

//充電類型 BatteryManager.BATTERY_PLUGGED_AC 表示是充電器汁针,不是這個值,表示是 USB

//電池健康情況砚尽,返回也是一個數(shù)字

//BatteryManager.BATTERY_HEALTH_GOOD 良好

//BatteryManager.BATTERY_HEALTH_OVERHEAT 過熱

//BatteryManager.BATTERY_HEALTH_DEAD 沒電

//BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 過電壓

//BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未知錯誤

電量優(yōu)化建議:?

第一:項目存在大量的輪詢請求接口施无。應(yīng)該將其整合起來,減少CPU的消耗必孤。

?第二(可選):項目的直播或音頻是電量消耗大戶猾骡,可判斷用戶是否處于充電狀態(tài)瑞躺,再獲取用戶電量,在某個臨界點時兴想,降低直播碼率幢哨,提高觀看直播時間。?

第三:清單文件application標簽下keepScreenOn保持屏幕常亮模式不夠完善嫂便,導致用戶長時間無操作情況下捞镰,屏幕長時間 保持常亮。建議修改模式為:用戶5分鐘未操作狀態(tài)下毙替,屏幕變暗且屏幕不關(guān)閉岸售。滿足屏幕處于開啟狀態(tài)下節(jié)約用電。?

第四(可選):項目存在大量的圖片展示厂画,圖片加載時會消耗大量的流量與電量凸丸。方案一:可判斷用戶是否處于充電 狀態(tài),再獲取用戶電量袱院,在某個臨界點時甲雅,降低加載圖片碼率,提高操作時間坑填。?

第五:項目也有一些上傳下載操作進行著抛人,可采用高效下載策略,做到批量執(zhí)行網(wǎng)絡(luò)請求脐瑰,盡量避免頻繁的間隔網(wǎng)絡(luò)請 求妖枚。判斷哪些任務(wù)是不緊急的,可以交給Job Scheduler來處理苍在,Job Scheduler集中處理收到的任務(wù)绝页,選擇合適的時間,合適的網(wǎng) 絡(luò)寂恬,再一起進行執(zhí)行续誉。

結(jié)語: 測試電量與優(yōu)化是一條漫長的道路,也希望大家有“把電量當成干糧”的意識初肉,這樣你所做的app也會更加優(yōu)雅酷鸦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市牙咏,隨后出現(xiàn)的幾起案子臼隔,更是在濱河造成了極大的恐慌,老刑警劉巖妄壶,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摔握,死亡現(xiàn)場離奇詭異,居然都是意外死亡丁寄,警方通過查閱死者的電腦和手機氨淌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門泊愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盛正,你說我怎么就攤上這事删咱。” “怎么了蛮艰?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雀彼。 經(jīng)常有香客問我壤蚜,道長,這世上最難降的妖魔是什么徊哑? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任袜刷,我火速辦了婚禮,結(jié)果婚禮上莺丑,老公的妹妹穿的比我還像新娘著蟹。我一直安慰自己,他們只是感情好梢莽,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布萧豆。 她就那樣靜靜地躺著,像睡著了一般昏名。 火紅的嫁衣襯著肌膚如雪涮雷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天轻局,我揣著相機與錄音洪鸭,去河邊找鬼。 笑死仑扑,一個胖子當著我的面吹牛览爵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播镇饮,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蜓竹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了储藐?” 一聲冷哼從身側(cè)響起梅肤,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邑茄,沒想到半個月后姨蝴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡肺缕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年左医,在試婚紗的時候發(fā)現(xiàn)自己被綠了授帕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡浮梢,死狀恐怖跛十,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秕硝,我是刑警寧澤芥映,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站远豺,受9級特大地震影響奈偏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躯护,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一惊来、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棺滞,春花似錦裁蚁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至移必,卻和暖如春刽严,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背避凝。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工舞萄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人管削。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓倒脓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親含思。 傳聞我的和親對象是個殘疾皇子崎弃,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

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

  • 硬件消耗電量 來執(zhí)行任務(wù)的過程,叫做超時電流消耗主要消耗:1.最大的耗電是我們的屏幕2.蜂窩式無線數(shù)據(jù)交換(3G4...
    王者夢回Arvin閱讀 952評論 0 0
  • 一含潘、了解電量消耗 在電子編程世界饲做,這種硬件消耗電量 來執(zhí)行任務(wù)的過程,叫做超時電流消耗遏弱。耗電情況盆均,例如:打開屏幕,...
    Ayres閱讀 1,181評論 0 1
  • 思維的五個維度 感性判斷漱逸, 利益判斷泪姨, 價值判斷游沿, 規(guī)則可持續(xù)性判斷, 自我思想體系判斷肮砾。 第一階段诀黍,大概算是“文...
    楊蜀冰閱讀 6,214評論 0 3
  • 人們喜歡用動物或植物來比喻人物,比如鼠目寸光仗处、義結(jié)金蘭眯勾,可見萬物與人一一對應(yīng),人與萬物也在互相抄襲婆誓。去年票房爆棚的...
    苦安閱讀 279評論 0 0
  • 雨小月 1.《MacTalk跨越邊界》池建強 2.《代碼整潔之道》Robert C. Martin 3.《美的歷程...
    山雨小月閱讀 276評論 0 1