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


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

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

Battery

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 HistorianGitHub文檔運行操作就可以.

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>]

Command

啟動命令

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

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

Webpage

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

3. 分析

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

adb bugreport > bugreport.txt

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

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

系統狀態

System

應用狀態(簡書)

App


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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM