Android性能優(yōu)化篇之電量優(yōu)化(1)——電量消耗分析

image

引言

1. Android性能優(yōu)化篇之內(nèi)存優(yōu)化--內(nèi)存泄漏

2.Android性能優(yōu)化篇之內(nèi)存優(yōu)化--內(nèi)存優(yōu)化分析工具

3.Android性能優(yōu)化篇之UI渲染性能優(yōu)化

4.Android性能優(yōu)化篇之計算性能優(yōu)化

5.Android性能優(yōu)化篇之電量優(yōu)化(1)——電量消耗分析

6.Android性能優(yōu)化篇之電量優(yōu)化(2)

7.Android性能優(yōu)化篇之網(wǎng)絡(luò)優(yōu)化

8.Android性能優(yōu)化篇之Bitmap優(yōu)化

9.Android性能優(yōu)化篇之圖片壓縮優(yōu)化

10.Android性能優(yōu)化篇之多線程并發(fā)優(yōu)化

11.Android性能優(yōu)化篇之?dāng)?shù)據(jù)傳輸效率優(yōu)化

12.Android性能優(yōu)化篇之程序啟動時間性能優(yōu)化

13.Android性能優(yōu)化篇之安裝包性能優(yōu)化

14.Android性能優(yōu)化篇之服務(wù)優(yōu)化

介紹

當(dāng)我們使用Android完成任務(wù)時,設(shè)備硬件正在快速消耗電池電量來完成這些任務(wù)搬泥。任務(wù)越繁重桑寨,消耗的電量越多越快。這樣用戶就會在想是哪一個應(yīng)用導(dǎo)致電量消耗的怎么快的忿檩?
要想寫出耗電量低的應(yīng)用的關(guān)鍵是要透徹理解電量消耗的全部過程尉尾。
我們很想知道我的應(yīng)用執(zhí)行的哪些任務(wù)消耗的電量是最多的?這個問題確實會很棘手燥透。電量消耗的計算與統(tǒng)計是一件麻煩而且矛盾的事情沙咏,記錄電量消耗本身也是一個費電量的事情。唯一可行的方案是使用第三方監(jiān)測電量的設(shè)備班套,這樣才能夠獲取到真實的電量消耗(因為第三方硬件監(jiān)測的時候是用的自己的供電而不是用的手機的電量)肢藐。

1.電量消耗分析

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



使用和喚醒屏幕后


image2.png

當(dāng)設(shè)備從休眠狀態(tài)中,被應(yīng)用程序假面喚醒時孽尽,你會看到在第一次喚醒時窖壕,這里有一條電量使用高峰線

CUP喚醒時的高峰線


image3.png

后續(xù)的一些執(zhí)行的消耗


image4.png

值得注意的是當(dāng)工作完成后,設(shè)備會主動進行休眠杉女,這非常重要瞻讽,在不使用或者很少使用的情況下,長時間保持屏幕喚醒會迅速消耗電池的電量熏挎。

蜂窩式無線
當(dāng)設(shè)備通過無線網(wǎng)發(fā)送數(shù)據(jù)的時候速勇,為了使用硬件,這里會出現(xiàn)一個喚醒好點高峰坎拐。接下來還有一個高數(shù)值烦磁,這是發(fā)送數(shù)據(jù)包消耗的電量,然后接受數(shù)據(jù)包也會消耗大量電量 也看到一個峰值哼勇。
所以我們指導(dǎo)了都伪,開啟無線模式這個過程非常耗電,那么硬件這塊為了防止頻繁開啟關(guān)閉耗電积担,采取了一個無奈的辦法陨晶,會在一個小段時間內(nèi)保持開啟模式,防止短時間內(nèi)還有數(shù)據(jù)包需要接收帝璧。這些數(shù)據(jù)非常有用先誉,可是 不是所有開發(fā)者都有這個第三方設(shè)備跟蹤。但是使用Android L版本就可以利用到新的一系列的工具來優(yōu)化應(yīng)用程序的耗電的烁。(這里顯然不要考慮兼容性問題吧褐耳,我只是想測電量消耗問題,同一款A(yù)PP在不同版本上耗電情況應(yīng)該不會有太大影響渴庆。)


image5.png
2.Battery Historian(電量使用記錄分析工具)

Battery Historian是Android 5.0開始引入的新API铃芦。通過下面的指令,可以得到設(shè)備上的電量消耗信息:

2.1 配置分析環(huán)境

第一種 通過安裝Docker環(huán)境來安裝
因本人沒有使用這種襟雷,想要了解的朋友可以參考文檔
第二種 源碼安裝

(1).GO環(huán)境安裝下載
(2). 安裝Git下載
(3). 安裝Python下載
(4). 安裝Java環(huán)境
(5). 下載Battery Historian源碼并且運行
下載源碼
    go get -d -u github.com/google/battery-historian/
運行Battery Historian
    cd $GOPATH/src/github.com/google/battery-historian
    go run setup.go
開啟服務(wù)
    go run cmd/battery-historian/battery-historian.go
檢查/battery-historian是否運行
    登錄網(wǎng)址 http://localhost:9999查看    
詳細(xì)可以參考Google官方的文檔查看
2.2 導(dǎo)出電量發(fā)現(xiàn)文件

historian-V1

    $ adb shell dumpsys batterystats > xxx.txt  //得到整個設(shè)備的電量消耗信息
    $ adb shell dumpsys batterystats > com.package.name > xxx.txt //得到指定app相關(guān)的電量消耗信息

historian-V2
android 6.0 以及以下版本

    adb bugreport > bugreport.txt

android 7.0

    adb bugreport bugreport.zip
2.3 開始分析

啟動battery-historian服務(wù)刃滓,打開http://localhost:9999,上傳bugreport.txt或者bugreport.zip文件

image6.png

image7.png
3.battery-historian分析

現(xiàn)在我們就來分析下面的面板:

image8.png

橫坐標(biāo)
我們看到下面的橫坐標(biāo)是代表上海的時間.
坐標(biāo)就是一個時間范圍嗤军,咱們的例子中統(tǒng)計的數(shù)據(jù)是以重置為起點注盈,獲取bugreport內(nèi)容時刻為終點。我們一共采集了多長時間的數(shù)據(jù)叙赚,圖表下也有信息說明老客。(經(jīng)其他人的反饋,這個坐標(biāo)間隔是會隨著時間的長度發(fā)生改變震叮,所以要以你的實際情況為準(zhǔn)胧砰。通過滾動鼠標(biāo)來調(diào)整縮放級別)
縱坐標(biāo)
縱坐標(biāo)的數(shù)據(jù)有點多,我們來一個一個分析苇瓣。
battery_level
電量等級我們看到面板的右邊就是電量等級的指標(biāo)尉间,橫著面板的黑線就代表電量等級,我們可以把鼠標(biāo)放到上面來查看電量的等級值。
也可以在橫坐標(biāo)的battery_level來查看


image9.png
image10.png

顯示當(dāng)前時間哲嘲,電量等級等等贪薪。

CPU running

界面的狀態(tài),主要判斷是否處于idle的狀態(tài)眠副。用來判斷無操作狀態(tài)下電量的消耗画切。

Userspace wakelock

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

Screen

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

Top app

該欄顯示當(dāng)前時刻哪個app處于最上層,就是當(dāng)前手機運行的app娃弓,用來判斷某個app對手機電量的影響典格,這樣也能判斷出該app的耗電量信息。該欄記錄了應(yīng)用在某一個時刻啟動台丛,以及運行的時間耍缴,這對我們比對不同應(yīng)用對性能的影響有很大的幫助。

Activity Manager Proc
Mobile signal strength

移動信號強度

Wifi scan

wifi掃描的時間

Wifi supplicant

當(dāng)前wifif狀態(tài)

Wifi radio

wifi信號

Wifi signal strength

wifi信號強度

Wifi running

wifi是否連接

Wifi on

wifi是否開啟

Audio

音頻播放的時間點

Temperature

當(dāng)前手機溫度

Plugged

充電狀態(tài)齐佳,這一欄顯示是否進行了充電私恬,以及充電的時間范圍。

Charging on

是否在充電

health

電池健康狀態(tài)的信息炼吴,這個信息一定程度上反映了這塊電池使用了多長時間本鸣。
這一欄記錄電池狀態(tài)在何時發(fā)生改變,上面的圖中電池狀態(tài)一直處于good狀態(tài)硅蹦。

plug

充電方式荣德,usb或者插座,以及顯示連接的時間童芹。
這一欄顯示了不同的充電方式對電量使用的影響涮瞻。

Job

后臺的工作,比如服務(wù)service的運行假褪。從下面圖中可以看到qihoo的AppStore和魯大師都在運行后臺服務(wù)署咽。

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)的改變。
這一欄記錄手機信號的強弱變化圖狠角,依次來判斷手機信號對電量的影響号杠。

Sync

是否跟后臺同步.

可以把鼠標(biāo)停在某一項上面蚪腋》岣瑁可以看到何時sync同步 啟動的,持續(xù)時間Duration多久屉凯。

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

wake_lock_in

wake_lock有不同的組件晓勇,這個地方記錄在某一個時刻,有哪些部件開始工作灌旧,以及工作的時間绑咱。

gps

gps是否開啟

phone_in_call

是否進行通話

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市枢泰,隨后出現(xiàn)的幾起案子描融,更是在濱河造成了極大的恐慌,老刑警劉巖衡蚂,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窿克,死亡現(xiàn)場離奇詭異,居然都是意外死亡毛甲,警方通過查閱死者的電腦和手機年叮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玻募,“玉大人只损,你說我怎么就攤上這事∑哌郑” “怎么了跃惫?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坑雅。 經(jīng)常有香客問我辈挂,道長,這世上最難降的妖魔是什么裹粤? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任终蒂,我火速辦了婚禮蜂林,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拇泣。我一直安慰自己噪叙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布霉翔。 她就那樣靜靜地躺著睁蕾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪债朵。 梳的紋絲不亂的頭發(fā)上子眶,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音序芦,去河邊找鬼臭杰。 笑死,一個胖子當(dāng)著我的面吹牛谚中,可吹牛的內(nèi)容都是我干的渴杆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼宪塔,長吁一口氣:“原來是場噩夢啊……” “哼磁奖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起某筐,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤比搭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后来吩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敢辩,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年弟疆,在試婚紗的時候發(fā)現(xiàn)自己被綠了戚长。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡怠苔,死狀恐怖同廉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柑司,我是刑警寧澤迫肖,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站攒驰,受9級特大地震影響蟆湖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玻粪,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一隅津、第九天 我趴在偏房一處隱蔽的房頂上張望诬垂。 院中可真熱鬧,春花似錦伦仍、人聲如沸结窘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隧枫。三九已至,卻和暖如春谓苟,著一層夾襖步出監(jiān)牢的瞬間官脓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工娜谊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留确买,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓纱皆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芭商。 傳聞我的和親對象是個殘疾皇子派草,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

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

  • 一近迁、電量消耗理論與分析 寫出耗電量低的應(yīng)用的關(guān)鍵是要透徹理解它的理論以及全部過程。下面將對電量消耗的相關(guān)理論知識進...
    香沙小熊閱讀 4,609評論 4 4
  • 先來一發(fā)蘋果官網(wǎng)上Instruments User Guide簸州,其實沒啥用鉴竭,英語不好的也懶得去看。(反正我是看不懂...
    和玨貓閱讀 29,909評論 51 376
  • 養(yǎng)心靈感語錄:當(dāng)水源出現(xiàn)問題的時候岸浑,大家如果只是在自己所屬的閥門裝過濾器搏存,而對源頭忽略不計,不久的將來矢洲,勢必全軍覆沒璧眠!
    一家女主人閱讀 180評論 0 0
  • 我們的思路應(yīng)該就是一個主界面 上面三個button,一個button下面的underline.這個underlin...
    NSGhoul閱讀 995評論 0 1
  • 唐張彥遠(yuǎn)《歷代名畫記》記載:“頡有四目,仰觀垂象读虏。因儷烏龜之跡责静,遂定書字之形。造化不能藏其秘盖桥,故天雨粟灾螃;靈怪不能遁...
    木石堂閱讀 2,332評論 3 5