編輯:關於Android編程
在Android項目中, 較難監控應用的電量消耗, 但是用戶卻非常關心手機的待機時間. 過度耗電的應用, 會遭到用戶無情的卸載, 不要存在僥幸心理, 給競品帶來機會. 因此, 我們需要研究應用的耗電量, 並進行優化. 本文講解一下Battery Historian, 是一款由Google提供的Android系統電量分析工具. 在網頁中展示手機的電量消耗過程, 輸入電量分析文件, 顯示消耗情況. 最後提供一些電量優化的方法, 可供參考.
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
, 即表示安裝完成.
在安裝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 ]
啟動命令<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;">
cd $GOPATH/src/github.com/google/battery-historian
go run cmd/battery-historian/battery-historian.go [--port
在浏覽器中, 輸入http://localhost:9999/, 即可啟動電量檢測頁面.
在啟動頁面時, 可能需要連接VPN, 訪問Google信息.
獲取手機的電量文件, 導出到根目錄, 以備Battery Historian使用.
adb bugreport > bugreport.txt
使用Battery Historian的網頁加載bugreport.txt文件.
如遇到一些問題, 重新提交bugreport.txt文件.
系統狀態
應用狀態(簡書)
根據Battery Historian的電量提示信息, 消耗電量包含
喚醒鎖\SyncManager同步管理器\音視頻\流量.
優化方式:
(1) 檢查全部喚醒鎖, 是否存在冗余或者無用的位置.
(2) 集中相關的數據請求, 統一發送; 精簡數據, 減少無用數據的傳輸.
(3) 分析和統計等非重要操作, 可以在電量充足或連接WIFI時進行, 參考JobScheduler.
(4) 精簡冗余的服務(Service), 避免長時間執行耗電操作.
(5) 注意定位信息的獲取, 使用後及時關閉.
電量優化並不是很難, 但需要對業務非常熟悉, 了解一些耗電操作的使用情況, 及時優化. 只有給用戶精致的體驗, 用戶才能更加喜歡我們的應用, 這就是服務型社會的本質.
先看效果圖 如何使用 import java.text.DateFormat; import java.text.ParseException; import jav
首先聲明一點: 這裡的多線程下載並不是指多個線程下載一個 文件,而是每個線程負責一個文件,今天給大家分享一個多線程下載的 例子。先看一下效果,點擊下載開始下載,同時顯示下
在這裡先看看效果圖: OK,有時候,在我們的項目中會要求TextView中文本有一部分的字體顏色不一樣,這時我們應該使用 SpannableStrin
1、概述 上一篇已經基本給大家介紹了如何自定義ViewGroup,如果你還不了解,請查看:Android 手把手教您自定ViewGroup ,本篇將使用上篇