Android App耗電發熱分析
阿新 • • 發佈:2019-02-16
如題,這是一篇分享如何分析Android平臺App耗電問題的文章,今天學到的新技能,算是之前寫過的一篇文章Android APP耗電優化的一些經驗的續集吧,O(∩_∩)O。
首先,上一個adb命令:
adb shell dumpsys batterystats
這個命令可以打印出於電池消耗相關的資訊,可以通過
adb shell dympsys batterystats > D:/batterystats.txt
命令將內容輸出到文字檔案中。檔案大致內容如下:
- 左邊的方框內是時間線,在這個檔案的記錄中,電池消耗是以時間為線索的。
- 中間的方框是剩餘電池電量,在正常使用情況下,會隨著時間減少。
- 右邊的方框表示在該時間發生了什麼事,一般都是與耗電相關的事件的重要節點。比如+wake_lock是某個應用獲取了喚醒鎖,-wake_lock是釋放了喚醒鎖。+running則表示CPU被某段程式佔用,-running則表示該段程式執行完了等等,意思都是比較字面化的。而u0a78等符號則表示應用id,一個id對應一個應用,應用的id列表可以在這個檔案內找到。(以上都是我的猜測,但是經過我一天學習應該基本正確。。。內誰,你先把磚頭放下,有話我們慢慢說)
那有了這個報告之後該怎麼分析耗電高,手機發熱的原因呢?我們用notepad++開啟該檔案然後搜尋“temp=”,會得出下面的結果:
看到沒有,電量有了,手機溫度也有了,我們只要分析溫度升高還有電量下降特別快的時間裡發生了什麼事情就行了。我的手機使用比較正常所以這裡沒有太特別的地方。
最後,該上輪子了。google已經做了工具用於視覺化的顯示這個報告:battery-historian。
我們只要跟著下面幾個步驟做就可以檢視視覺化電池報告啦:
1.下載上面連結中的battery-historian工具並解壓。
2.開啟解壓資料夾中的script資料夾。
3.在該路徑下開啟命令列視窗。
4.輸入historian.py D:/batterystats.txt > D:/battery.html。這裡需要安裝python環境,我裝的是python2.7,可以正常使用。
5.用chrome瀏覽器開啟battery.html檔案。
做完以上步驟我們就可以看到以下介面,開始分析吧少年: