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

一、安裝方式

使用docker下載

docker search battery

沒有android-battery-historian鏡像的時候會自動下載
下載完鏡像後執行如下命令
docker – run -p :9999 gcr.io/android-battery-historian:2.1 --port 9999
docker run -d -p 9999:9999 bhaavan/battery-historian
執行後進入http://localhost:9999是否有如下界面
在這裏插入圖片描述

二、生成電量文件

步驟一:Android也不記錄特定於應用程序的用戶空間wakelock轉換的時間戳。如果您希望Historian在時間線上顯示關於每個單獨喚醒鎖的詳細信息,則應在開始實驗之前使用以下命令啓用完整喚醒鎖報告:

adb shell dumpsys batterystats --enable full-wake-history

步驟二:採集報告前將battery統計狀態重置,重置命令結束後斷開usb,測試結束後用獲取報告命令導出統計文件包

adb shell dumpsys batterystats --reset

步驟三:導出電量

7系統以上的設備運用:

adb bugreport bugreport.zip

6.0或更低版本的設備:

 adb bugreport > bugreport.txt
 >如果不能使用7以下系統的手機請參考 https://blog.csdn.net/mwq30123/article/details/53888449

步驟三:停止記錄詳細信息

adb shell dumpsys batterystats --disable full-wake-history

在這裏插入圖片描述

三、參數說明

WakeLock

Android爲了節省電量,會在用戶無操作一段時間之後進入休眠狀態。Wake Lock是一種鎖的機制,只要有人拿着這個鎖,系統就無法進入休眠。一些App爲了能在後臺持續做事情,就會持有一個WakeLock,那麼手機就不會進入休眠狀態,App要做的事情能做了,但是也更加耗電。

App在前臺不要申請WakeLock,此時無需申請,申請的話會計算到應用電量消耗;
App在後臺由於業務需要必須要申請WakeLock時使用帶有超時參數的方法,防止由於忘記或者異常情況下沒有釋放;
App申請使用WakeLock,任務結束之後及時釋放,讓系統再次進入休眠狀態。

battery_level:電量,可以看出電量的變化。
比如圖中的數據顯示出當前的電量爲71%。
在這裏插入圖片描述
**plugged:**充電狀態,這一欄顯示是否進行充電,以及充電的時間範圍。
大圖中反應了在某一時間插入了數據線,然後一直持續到數據採集結束。

**health:**電池健康狀態的信息,這個信息一定程度上反映了這塊電池使用了多長時間。這一欄記錄電池狀態在何時發生改變,上面的圖中電池狀態一直處於good狀態(2—代表good)

**screen:**屏幕是否點亮。
這一點,可以用於考慮睡眠狀態和點亮狀態下電量的使用信息

參數說明
CPU runing cpu運行的狀態,是否被喚醒
Kernel only uptime 只有內核運行時間
Activity Manager Proc 活躍的用戶進程
Mobile network type 網絡類型
Mobile radio active 移動蜂窩信號 BP側耗電
Crashes(logcat) 某個時間點出現crash的應用
Doze 是否進入doze模式
Device active 和Doze相反
JobScheduler 異步作業調度
SyncManager 同步操作
Temp White List 電量優化白名單
Phone call 是否打電話
GPS 是否使用GPS
Network connectivity 網絡連接狀態(wifi、mobile是否連接)
Mobile signal strength 移動信號強度(great\good\moderate\poor)
Wifi scan 是否在掃描wifi信號
Wifi supplicant 是否有wifi請求
Wifi radio 是否正在通過wifi傳輸數據
Wifi signal strength wifi信號強度(great\good\moderate\poor)
Wifi running wifi組件是否在工作(未傳輸數據)
Wifi on 同上
Audio 音頻是否開啓
Camera 相機是否在工作
Video 是否在播放視頻
Foreground process 前臺進程
Package install 是否在進行包安裝
Package active 包管理在工作
Battery level 電池當前電量
Temperature 電池溫度
Charging on 在充電
Logcat misc 是否在導出日誌

四、查詢電量

獲取整個設備的電量消耗信息: adb shell dumpsys batterystats  | more
獲取某個apk的電量消耗信息:  adb shell dumpsys batterystats  com.Package.name | more
adb shell dumpsys battery

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章