Android電量優(yōu)化-Battery Historian環(huán)境搭建及簡單使用

個人博客

http://www.milovetingting.cn

Android電量優(yōu)化-Battery Historian環(huán)境搭建及簡單使用

前言

在Android5.0后,Batterystats已經(jīng)內(nèi)置在Android系統(tǒng)中,用于收集設備上的電池數(shù)據(jù)??梢允褂胊db將收集的電池數(shù)據(jù)導出,并生成可使用 Battery Historian 分析的報告。Battery Historian 會將報告從 Batterystats 轉(zhuǎn)換為可在瀏覽器中查看的 HTML 直觀視圖。

在Android8.0后,也可通過Android Studio的Profiler-Energy工具查看,這里不再多介紹。

安裝Docker

Battery Historian可以通過Docker來安裝,也可以直接下載Battery Historian源碼編譯。

通過源碼編譯的方式,步驟較多,過程較復雜。這里不多介紹。

最簡單的方法是通過Docker來安裝。

安裝Docker

安裝Docker,可以在官網(wǎng)上下載對應系統(tǒng)平臺的安裝包,可以參考這個鏈接:https://yeasy.gitbook.io/docker_practice/install

配置鏡像加速器

國內(nèi)從 Docker Hub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器??梢詤⒖歼@個鏈接:https://yeasy.gitbook.io/docker_practice/install/mirror

安裝Battery Historian

  1. 啟動Docker后,運行cmd,然后輸入docker search battery,搜索battery historian的鏡像
search battery
  1. 上面列出了battery historian相關(guān)的鏡像,可以選擇一個鏡像,通過docker pull blystad/battery-historian-2命令,拉取鏡像
pull battery

下載所需時間視網(wǎng)絡情況而不同,如果下載緩慢,請參考前面的鏈接配置鏡像加速器。

  1. 運行 run --name=battery -d -p 9999:9999 blystad/battery-historian-2``

    • name參數(shù)也可以指定其它名稱,只要不重復就可以。命令的最后一個參數(shù)是上面拉取鏡像時用到的名稱。
    run
    • 如果已經(jīng)運行過上面的命令,一般會報錯,可以指定name和port為其它值即可
    run
  2. 然后打開Docker的Dashboard面板,這里以Windows10為例,右擊電腦右下角的Docker圖標,在彈出的菜單中選擇Dashboard

    DockerBoard
  3. 可以看到,已經(jīng)創(chuàng)建好了我們需要的容器。點擊start圖標

    start
  4. 點擊下圖紅框中的圖標,會在瀏覽器中打開http://localhost:9999/

    start
  5. 打開后的界面是這樣的:

    start

    如果打開過程緩慢,那么可以考慮是否加載網(wǎng)頁過程中出錯了。可以F12打開開發(fā)者工具


    start

    如果看到上圖紅框所示的情況,那么一般是執(zhí)行出錯了。點擊查看,可以看到是由于加載不到js文件導致的。這種情況的話,只能科學上網(wǎng),否則后面上傳Bugreport文件時不會出現(xiàn)Submit按鈕。

    或者不通過Docker的方式安裝Battery Historian,而是通過編譯源碼的方式,通過修改html文件中引用的js文件路徑為可以訪問的路徑。

導出電量數(shù)據(jù)

  • 重置電池數(shù)據(jù)收集

    adb shell dumpsys batterystats --reset

    設備始終會在后臺收集 Batterystats 和其他調(diào)試信息。重置操作會清除舊的電池收集數(shù)據(jù)。如果不重置,輸出內(nèi)容會非常大。

  • 如果需要統(tǒng)計所有的喚醒鎖的信息,則需要設置

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

  • 統(tǒng)計完成后,需要關(guān)閉這個功能

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

  • 斷開設備與計算機的連接,以便僅消耗設備電池的電量。

  • 操作要測試的應用

  • 重新連接手機,導出數(shù)據(jù)

    • 對于搭載 Android 7.0 及更高版本的設備:

      adb bugreport > [path/]bugreport.zip

    • 對于搭載 Android 6.0 及更低版本的設備:

      adb bugreport > [path/]bugreport.txt

  • 上傳報告

    start

分析耗電

  • 上傳成功后,生成的分析報告頁面

    start

    可以看到,圖中紅框中的黑線下降趨勢。鼠標放在線上面,會顯示耗電的應用情況。

  • AndroidQ及以上導出的數(shù)據(jù)報告,可能會無法解析

    start

    遇到這種情況,可以換一個鏡像

    docker pull runcare/battery-historian

    start

    鏡像拉取完成后

    docker run --name=battery2 -d -p 9999:9999 runcare/battery-historian

    注意:name不要和已有的重復,端口號也不要重復,可以先停止原運行的容器。

    start

    然后就可以正常解析報告

    start
  • 可以選定需要分析的應用來查看具體的信息

    start
  • 查看右側(cè)的wakelock、service等信息

    start
    start
  • 查看System Stats標簽下的相關(guān)信息

    start

后記

電量優(yōu)化是一個比較系統(tǒng)性的工作,需要熟悉項目的具體業(yè)務,再結(jié)合Historian分析報告,分析具體的耗電點,結(jié)合代碼進行優(yōu)化,再驗證優(yōu)化效果。

本文簡單記錄Battery Historian的環(huán)境搭建及電量報告的導出、上傳。具體的分析還是需要結(jié)合實際業(yè)務來分析耗電的情況,在實踐中提高電量優(yōu)化的能力。

記錄如上,以便后續(xù)查看。

參考

https://developer.android.com/topic/performance/power/setup-battery-historian?hl=zh_cn

http://m.itdecent.cn/p/378cf678bdeb

https://yeasy.gitbook.io/docker_practice/

https://developer.android.com/topic/performance/power/battery-historian?hl=zh_cn

https://developer.android.com/studio/profile/energy-profiler?hl=zh-cn

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

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

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