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

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è)端口


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

獲取設(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

選擇bugreport.zip文件上傳

之后就會(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)提示

默認(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


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

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

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





