1. 程式人生 > >使用BatteryHistorian分析和優化應用電量

使用BatteryHistorian分析和優化應用電量

art man protobuf 工具 tail 數據請求 number 能夠 htm

歡迎Follow我的GitHub, 關註我的CSDN.

在Android項目中, 較難監控應用的電量消耗, 可是用戶卻很關心手機的待機時間. 過度耗電的應用, 會遭到用戶無情的卸載, 不要存在僥幸心理, 給競品帶來機會. 因此, 我們須要研究應用的耗電量, 並進行優化. 本文解說一下Battery Historian, 是一款由Google提供的Android系統電量分析工具. 在網頁中展示手機的電量消耗過程, 輸入電量分析文件, 顯示消耗情況. 最後提供一些電量優化的方法, 可供參考.

技術分享

1. 安裝Go

Battery Historian是Go語言開發, 須要安裝Go編譯環境.
下載Mac版的安裝包, 運行完畢, 檢查Go版本號

?  ~ go version
go version go1.6 darwin/amd64

.bash_profile中, 設置Go語言變量

#Go Settings
export GOPATH=/Users/.../Workspace/GoWorkspace
export GOBIN=/Users/.../Workspace/GoWorkspace/bin

GOPATH源代碼地址. GOBIN生成地址, 推薦$GOPATH/bin.
運行source .bash_profile, 應用profile配置.

新建src文件夾, 加入HelloWorld文件hello.go.

package
main import "fmt" func main() { fmt.Printf("hello, world\n") }

安裝hello.go

go install hello.go

運行

$GOBIN/hello

假設顯示hello, world, 即表示安裝完畢.


2. Battery Historian

在安裝Battery Historian時, 須要提前安裝wget.

sudo brew install wget

依照Battery Historian的GitHub文檔運行操作就可以.

go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/google/battery-historian/...
cd $GOPATH/src/github.com/google/battery-historian bash setup.sh # 運行Go腳本, 默認端口9999 go run cmd/battery-historian/battery-historian.go [--port <default:9999>]

技術分享

啟動命令

cd $GOPATH/src/github.com/google/battery-historian
go run cmd/battery-historian/battery-historian.go [--port <default:9999>]

在瀏覽器中, 輸入http://localhost:9999/, 就可以啟動電量檢測頁面.

技術分享

在啟動頁面時, 可能須要連接VPN, 訪問Google信息.

3. 分析

獲取手機的電量文件, 導出到根文件夾, 以備Battery Historian使用.

adb bugreport > bugreport.txt

使用Battery Historian的網頁載入bugreport.txt文件.

如遇到一些問題, 又一次提交bugreport.txt文件.

系統狀態

技術分享

應用狀態(簡書)

技術分享


4. 電量優化

依據Battery Historian的電量提示信息, 消耗電量包括
喚醒鎖\SyncManager同步管理器\音視頻\流量.

優化方式:
(1) 檢查所有喚醒鎖, 是否存在冗余或者沒用的位置.
(2) 集中相關的數據請求, 統一發送; 精簡數據, 降低無用數據的傳輸.
(3) 分析和統計等非重要操作, 能夠在電量充足或連接WIFI時進行, 參考JobScheduler.
(4) 精簡冗余的服務(Service), 避免長時間運行耗電操作.
(5) 註意定位信息的獲取, 使用後及時關閉.


電量優化並非很難, 但須要對業務很熟悉, 了解一些耗電操作的使用情況, 及時優化. 僅僅有給用戶精致的體驗, 用戶才幹更加喜歡我們的應用, 這就是服務型社會的本質.

本文地址: http://blog.csdn.net/caroline_wendy/article/details/50769915

That’s all! Enjoy it!

使用BatteryHistorian分析和優化應用電量