使用Battery Historian工具分析Android耗電分析

Android8.0以上分析使用Energy Profiler,低版本使用Battery Historian,為了降低配置的難度建議使用docker容器運(yùn)行Battery Historian鏡像

在docker上運(yùn)行Battery Historian鏡像

使用docker是最簡(jiǎn)單高效的辦法,也不用配置繁瑣的環(huán)境問(wèn)題,docker安裝

在終端搜索Battery Historian相關(guān)的鏡像

docker search battery  
image.png
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian

拉取并運(yùn)行battery-historian鏡像,會(huì)自動(dòng)下載并運(yùn)行鏡像,之前pull過(guò)了就直接運(yùn)行

vpn可以使用

docker run -p port_number:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

port_number自己選擇一個(gè)端口

image.png
image.png

Battery Historian容器就成功的運(yùn)行了,端口映射本地端口9999,在瀏覽器打開(kāi)

image.png

獲取設(shè)備的耗電報(bào)告

耗電統(tǒng)計(jì)是系統(tǒng)組件,伴隨系統(tǒng)運(yùn)行的整個(gè)過(guò)程,也就是說(shuō)系統(tǒng)運(yùn)行他就一直在統(tǒng)計(jì)。這個(gè)統(tǒng)計(jì)是基于軟件層面實(shí)現(xiàn)的,不同的硬件模塊配置了不同的參數(shù),然后使用算法進(jìn)行估算,power_profile文件的參數(shù)值OEM廠商必須測(cè)量并提供前實(shí)際值,所以不同的廠商是不一樣的。另外獲取統(tǒng)計(jì)報(bào)告的時(shí)候需要將統(tǒng)計(jì)重置,并斷開(kāi)usb連接(連接時(shí)充電),否則會(huì)大大影響統(tǒng)計(jì)有效性。

要從運(yùn)行Android 7.0和更高版本的開(kāi)發(fā)設(shè)備獲取錯(cuò)誤報(bào)告:

adb bugreport bugreport.zip

對(duì)于6.0或更低版本的設(shè)備:

adb bugreport > bugreport.txt
image.png

選擇bugreport.zip文件上傳


image.png

之后就會(huì)看到電池的使用數(shù)據(jù)報(bào)告,Battery Historian圖表顯示隨著時(shí)間的推移電源相關(guān)事件。

當(dāng)系統(tǒng)組件處于活動(dòng)狀態(tài)時(shí),每行顯示彩色條形段,從而從電池中汲取電流。該圖表并未顯示該組件使用了多少電,只是該應(yīng)用程序處于活動(dòng)狀態(tài)。圖表按類別進(jìn)行組織,隨著時(shí)間的推移顯示每個(gè)類別的欄,如圖表的X軸上所示。不同顏色代表指標(biāo)的不同狀態(tài):比如Screen 紅色代表亮屏,白色代表關(guān)屏,具體鼠標(biāo)放在最左側(cè)的?上就會(huì)自動(dòng)提示

image.png

默認(rèn)情況下,統(tǒng)計(jì)信息是在運(yùn)行基礎(chǔ)上維護(hù)的,Android也不記錄特定于應(yīng)用程序的用戶空間wakelock轉(zhuǎn)換的時(shí)間戳。如果您希望Historian在時(shí)間線上顯示關(guān)于每個(gè)單獨(dú)喚醒鎖的詳細(xì)信息,則應(yīng)在開(kāi)始實(shí)驗(yàn)之前使用以下命令啟用完整喚醒鎖報(bào)告:

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

請(qǐng)注意,通過(guò)啟用完全喚醒鎖定報(bào)告,電池歷史記錄將在幾個(gè)小時(shí)內(nèi)溢出。使用此選項(xiàng)進(jìn)行短時(shí)間測(cè)試(3-4小時(shí))。

采集報(bào)告前將battery統(tǒng)計(jì)狀態(tài)重置,重置命令結(jié)束后斷開(kāi)usb,測(cè)試結(jié)束后用獲取報(bào)告命令導(dǎo)出統(tǒng)計(jì)文件包:

adb shell dumpsys batterystats --reset

執(zhí)行上面兩條命令后,相當(dāng)于清理了battery記錄的日志,點(diǎn)開(kāi)了微信、后置相機(jī)、今日頭條運(yùn)行一段時(shí)間,然后導(dǎo)出報(bào)告

adb bugreport bugreport.zip
image.png

image.png

內(nèi)核喚醒源和內(nèi)核喚醒鎖活動(dòng)的事件記錄


image.png

另外可以做兩次報(bào)告的對(duì)比分析


image.png

如下圖,但是我選擇的是沒(méi)啥關(guān)聯(lián)的報(bào)告對(duì)比,內(nèi)容很多,看看對(duì)比信息


image.png

image.png

image.png

image.png

image.png
公眾號(hào)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容