功耗分析工具battery-historian

battery-historian工具使用(安卓耗電分析)

battery-historian使用

數(shù)據(jù)準備
battery-historian工具需要使用bugreport中的Battery History

  1. 先斷開adb服務,然后開啟adb服務
    adb kill-server 這一步很重要忧便,因為當我們開發(fā)時做電量記錄時會打開很多可能造成沖突的東西头岔。為了保險起見我們重啟adb垒棋。

adb devices就會自動連接查找手機。當然也可以adb start-server

  1. 重置電池數(shù)據(jù)收集數(shù)據(jù)蕉堰,我們在開始的時候需要通過以下命令來打開電池數(shù)據(jù)的獲取以及重置:
adb shell dumpsys batterystats --enable full-wake-history
adb shell dumpsys batterystats --reset

執(zhí)行的效果如下:

image

上面的操作相當于初始化操作台谢,如果不這么做會有一大堆的干擾的數(shù)據(jù)张遭,看起來會比較痛苦莽龟。然后把數(shù)據(jù)線直接拔掉(防止數(shù)據(jù)線造成充放電數(shù)據(jù)干擾)蠕嫁,現(xiàn)在做一些測試,手動或者跑一些自動化的case都行毯盈。經(jīng)過一段時間后剃毒,我們重新連接手機確認adb連上了,運行下面這條命令來將bugreport的信息保存到txt文檔中搂赋,

adb bugreport > bugreport.txt

或者用下面的命令也可以:

adb shell dumpsys batterystats > batterystats.txt
adb shell dumpsys batterystats > com.example.android.sunshine.app > batterystats.txt

加上包名可以限制輸出的數(shù)據(jù)是我們要檢測的赘阀。

但是這個txt的數(shù)據(jù)可讀性不強歉备。接下來我們就要用到這個battery-historian工具了友瘤。

到此我們有兩種方式分析這個文件:(historian-V1之前的版本 和historian-V2最新的版本)

historian-V1之前的版本分析方式:

將txt文檔轉(zhuǎn)化為html文件,命令如下腰素。

python historian.py -a bugreport.txt > battery.html

上面的historian.py腳本是Python寫的宋欺,所以需要python環(huán)境酌媒,然后從github上下載這個腳本。文件在github上面的scripts目錄下面迄靠,需要下載到命令行所在的目錄

image

上面兩條命令執(zhí)行成功后秒咨,會在目錄下發(fā)現(xiàn)兩個文件

bugreport.txt和battery.html,這個時候我們用google瀏覽器打開html文件掌挚,可以看到如下信息:

image

各個參數(shù)的意義
首先我們在bugreport.txt找到Battery History數(shù)據(jù)欄類似下面的信息:

DUMP OF SERVICE batterystats:

Battery History (2% used, 5980 used of 256KB, 45 strings using 2592):

                0 (9) RESET:TIME: 2015-03-05-15-21-56

                0 (2) 100 c0900422 status=discharging health=good plug=none temp=200 volt=4167 +running +wake_lock +sensor +screen data_conn=edge phone_signal_strength=great brightness=medium proc=u0a15:"android.process.acore"

                0 (2) 100 c0900422 proc=u0a7:"com.android.cellbroadcastreceiver"

                0 (2) 100 c0900422 proc=u0a53:"com.android.gallery3d"

你在html中信息都能從bugreport.txt中找到相應的信息雨席。

現(xiàn)在來分析各個指標代表的意義:

橫坐標

[圖片上傳失敗...(image-991cab-1637745139346)]

上面的10,20代表的就是秒的意思吠式,它是以一分鐘為周期陡厘,到第60秒的時候變?yōu)?。橫坐標就是一個時間范圍特占,咱們的例子中統(tǒng)計的數(shù)據(jù)是以重置為起點糙置,獲取bugreport內(nèi)容時刻為終點。我們一共采集了多長時間的數(shù)據(jù)是目,圖表下也有信息說明谤饭。(經(jīng)其他人的反饋,這個坐標間隔是會隨著時間的長度發(fā)生改變懊纳,所以要以你的實際情況為準揉抵。這個縮放級別可以調(diào)整的,如下圖:)

image

縱坐標

縱坐標的數(shù)據(jù)就很麻煩了嗤疯,數(shù)據(jù)量太多冤今,一條一條來吧。

  • battery_level

電量茂缚,可以看出電量的變化戏罢。比如上圖中的數(shù)據(jù)顯示剛開始電量是100%屋谭,然后在第11秒-12秒中間的某個時刻降到了99%。

image
  • plugged

充電狀態(tài)龟糕,這一欄顯示是否進行了充電戴而,以及充電的時間范圍。例如上圖反映了我們在第22s插入了數(shù)據(jù)線翩蘸,然后一直持續(xù)了數(shù)據(jù)采集結(jié)束所意。

  • screen

屏幕是否點亮,這一點可以考慮到睡眠狀態(tài)和點亮狀態(tài)下電量的使用信息催首。

  • top

該欄顯示當前時刻哪個app處于最上層扶踊,就是當前手機運行的app,用來判斷某個app對手機電量的影響郎任,這樣也能判斷出該app的耗電量信息秧耗。該欄記錄了應用在某一個時刻啟動,以及運行的時間舶治,這對我們比對不同應用對性能的影響有很大的幫助分井。

  • wake_lock*

wake_lock 該屬性是記錄wake_lock模塊的工作時間。是否有停止的時候等

  • running

界面的狀態(tài)霉猛,主要判斷是否處于idle的狀態(tài)尺锚。用來判斷無操作狀態(tài)下電量的消耗。

  • wake_lock_in

wake_lock有不同的組件惜浅,這個地方記錄在某一個時刻瘫辩,有哪些部件開始工作,以及工作的時間坛悉。

  • gps

gps是否開啟

  • phone_in_call

是否進行通話

  • Sync

是否跟后臺同步.

可以把鼠標停在某一項上面伐厌。可以看到何時sync同步 啟動的裸影,持續(xù)時間Duration多久挣轨。

電池容量不會顯示單一行為消耗的具體電量,這里只能顯示使用電池的頻率和時長轩猩,你可以看分時段的剩余電量來了解具體消耗了多少電量卷扮。

image
  • Job

后臺的工作,比如服務service的運行界轩。從下面圖中可以看到qihoo的AppStore和魯大師都在運行后臺服務画饥。

image
  • data_conn

數(shù)據(jù)連接方式的改變,上面的edge是說明采用的gprs的方式連接網(wǎng)絡的浊猾。此數(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ā)生改變,上面的圖中電池狀態(tài)一直處于good狀態(tài)财骨。

  • plug

充電方式镐作,usb或者插座,以及顯示連接的時間隆箩。
這一欄顯示了不同的充電方式對電量使用的影響该贾。

historian-V2最新的版本的方式:

將生成bugreport.txt文件在 http://localhost:9999 中上傳文件生成報告(前提在本地或者某服務器上搭好了battery-historian項目環(huán)境)

image

其實在這里也可以看到兩種版本分析模式:

image

如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕捌臊,您的“推薦”將是我最大的寫作動力靶庙!

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娃属,隨后出現(xiàn)的幾起案子六荒,更是在濱河造成了極大的恐慌,老刑警劉巖矾端,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掏击,死亡現(xiàn)場離奇詭異,居然都是意外死亡秩铆,警方通過查閱死者的電腦和手機砚亭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殴玛,“玉大人捅膘,你說我怎么就攤上這事」鏊冢” “怎么了寻仗?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凡壤。 經(jīng)常有香客問我署尤,道長耙替,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任曹体,我火速辦了婚禮俗扇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箕别。我一直安慰自己铜幽,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布串稀。 她就那樣靜靜地躺著除抛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厨诸。 梳的紋絲不亂的頭發(fā)上镶殷,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音微酬,去河邊找鬼绘趋。 笑死,一個胖子當著我的面吹牛颗管,可吹牛的內(nèi)容都是我干的陷遮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼垦江,長吁一口氣:“原來是場噩夢啊……” “哼帽馋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起比吭,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绽族,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后衩藤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吧慢,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年赏表,在試婚紗的時候發(fā)現(xiàn)自己被綠了检诗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓢剿,死狀恐怖逢慌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情间狂,我是刑警寧澤攻泼,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響坠韩,放射性物質(zhì)發(fā)生泄漏距潘。R本人自食惡果不足惜炼列,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一只搁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俭尖,春花似錦氢惋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至已亥,卻和暖如春熊赖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背虑椎。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工震鹉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捆姜。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓传趾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泥技。 傳聞我的和親對象是個殘疾皇子浆兰,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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