Android電量優化,讓你的手機續航更持久
開啟掘金成長之旅!這是我參與「掘金日新計劃 · 2 月更文挑戰」的第 2 天,點擊查看活動詳情
節能減排,從我做起。一款Android應用如果非常耗電,是一定會被主人嫌棄的。自從Android手機的主人用了你開發的app,一天下來,也沒幹啥事,電就沒了。那麼他就會想盡辦法找出耗電量殺手,當他找出後,很有可能你開發的app就被無情的卸載了。為了避免這種事情發生,我們就要想想辦法讓我們的應用不那麼耗電,電都用在該用的時候和地方。
通過power_profile.xml查看各個手機硬件的耗電量
Google要求手機硬件生產商都要放入power_profile.xml文件到ROM裏面。有些不太負責的手機生產商,就亂配,也沒有真正測試過。但我們還是可以大概知道耗電的硬件都有哪些。
先從https://ibotpeaches.github.io/Apktool/ 下載apktool反編譯工具,然後執行adb命令,將手機framework的資源apk拉取出來。
adb pull /system/framework/framework-res.apk ./
然後我們用下載好的反編譯工具,將framework-res.apk進行反編譯。
java -jar apktool_2.7.0.jar d framework-res.apk
apktool_2.7.0.jar換成你下載的具體的jar包名稱。
power_profile.xml文件的目錄如下:
framework-res/res/xml/power_profile.xml
```xml
電量殺手簡介
Screen
屏幕是非常耗電的一個硬件,不要問我為什麼。屏幕主要有LCD和OLED兩種。LCD屏幕白色光線從屏幕背後的燈管發出,儘管屏幕顯示黑屏,依舊耗電,這種屏幕逐漸被淘汰,如果你翻出個早點的功能機,或許能看到。那麼大部分Android手機都是OLED的屏幕,每個像素點都是獨立的發光單元,屏幕黑屏時,所有像素都不發光。有必要時,讓屏幕息屏很重要,當然手機也有自動息屏的時間設置,這個不太需要我們操心。
Radio數據網絡和Wi-Fi無線網絡
網絡也是非常耗電的,其中又以數據網絡的耗電更多於Wi-Fi的耗電。所以請儘量引導用户使用Wi-Fi網絡使用app的部分功能,比如下載文件。
GPS
GPS也是很耗電的硬件,所以不要動不動就請求地理位置,GPS平常是要關閉的,除非你在使用定位和導航等功能,這樣你的手機續航會更好。
WakeLock
如果使用了WakeLock,是可以有效防止息屏情況下的CPU休眠,但是如果不用了,你不釋放掉鎖的話,則會帶來很大的電量的開銷。
查看手機耗電的歷史記錄
// 上次拔掉電源到現在的耗電情況
adb shell dumpsys batterystats --unplugged
你在逗我?讓我看命令行的輸出?後面我們來使用Battery Historian的圖表進行分析。
使用Battery Historian分析手機耗電量
安裝Docker
Docker下載網址 https://docs.docker.com/desktop/install/mac-install/
使用Docker容器編排
docker run -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
獲取bugreport文件
Android7.0及以上
adb bugreport bugreport.zip
Android6.0及以下
adb bugreport > bugreport.txt
上傳bugreport文件進行分析
在瀏覽器地址欄輸入http://localhost:9999
點擊Browse按鈕並上傳bugreport.zip或bugreport.txt生成分析圖表。
我們可以通過時間軸來分析應用當下的電池使用情況,比較耗電的是哪部分硬件。
使用JobScheduler來合理執行後台任務
JobScheduler是Android5.0版本推出的API,允許開發者在符合某些條件時創建執行在後台的任務。比如接通電源的情況下才執行某些耗電量大的操作,也可以把一些不緊急的任務在合適的時候批量處理,還可以避開低電量的情況下執行某些任務。
- Android性能優化之內存優化
- 區塊鏈到底能不能落地,去中心化有沒有必要
- Flutter開發 - 使用GetX框架實現類似MVVM架構
- Android電量優化,讓你的手機續航更持久
- Android對Firebase崩潰日誌和埋點分析的集成
- Android代碼實現新年賀卡動畫
- Android應用添加谷歌登錄(Google Sign In)
- Android自定義View - DoraEmptyLayout
- 全新升級的AOP框架Dora.Interception[6]: 框架設計和實現原理
- 如何高效讀寫百萬級的Excel?
- 紅人姜Dora:從雙非二本到頂級互聯網大廠,一個普通人的升級打怪之路
- 頭等倉:深度解析波卡生態 DAO 基礎設施 Dora Factory
- 6年,12dora終渡B劫
- 6年,12dora終渡B劫