Mac 中 Battery Historain 安裝與使用


Battery Historain是谷歌開發的Android耗電量分析工具,其開發語言為go語言。因此,若安裝Battery Historain,首先需要配置go語言環境。本以為go語言Battery Historain安裝是一件很簡單的事情,但事實卻是安裝過程舉步維艱
這篇文章僅用來記錄Battery Historain安裝過程中遇到的問題解決方法,為同樣做App耗電量相關的研究的其他同學提供一個參考。

  • 安裝go
  • 安裝Battery Historain
  • 免安裝方式

一、安裝go

首先安裝與配置go環境。

  • 下載安裝go
  • 配置go環境
  • 驗證go

1.1、下載安裝go

直接到 官方下載go

官方下載go

1.2、配置go環境

go環境變量建議配置到.bash_profile文件中。
( 不了解.bash_profile文件位置的同學,可參考文章:mac環境變量

我的mac電腦 .bash_profile文件中go環境配置如下:

# go
GOROOT=/usr/local/go
export GOROOT
export GOPATH=/Users/xiaxveliang/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN:$GOROOT/bin

相關參數說明:

  • GOROOT:go的安裝目錄;
  • GOPATH:go的工作路徑;

1.3、驗證go

配置完成環境變量后,驗證一下go的安裝是否正常。

驗證go安裝情況

二、安裝Battery Historain

Battery-Historian為谷歌開發的Android耗電量分析工具,其GitHub官方地址為:
Battery-Historian

2.1、下載go相關依賴包

下載go相關依賴包,運行以下命令:

go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go

遇到 錯誤1:

如果網址不被和諧,相關依賴包應該會很快下載下來。
我在運行以上命令時,遇到了如下錯誤:

go get: module github.com/golang/protobuf/proto: Get "https://proxy.golang.org/github.com/golang/protobuf/proto/@v/list": dial tcp 172.217.27.145:443: i/o timeout

dial tcp 172.217.27.145:443: i/o timeout

解決 錯誤1 :

遇到以上問題后,查了很多資料,網上大多評論為更換為國內的相關代理地址。

// 執行該命令,更換為國內代理地址
go env -w GOPROXY=https://goproxy.cn,direct

go env -w GOPROXY=https://goproxy.cn,direct

2.2、下載 battery-histrizan

go環境下載battery-histrizan,可執行如下命令:

go get -u github.com/google/battery-histrizan

遇到 錯誤2:

同樣如果相關網址不被和諧,battery-histrizan下載應該很順利。
我遇到的錯誤如下:

remote: Repository not found.
fatal: repository 'https://github.com/google/battery-histrizan/' not found

Repository not found

解決 錯誤2:

我的解決方案是:

GitHub下載Battery-Historian

2.3、第一次執行 go run setup.go命令:

執行go run setup.go命令:

// 進入battery-historian目錄
cd battery-historian
// 執行setup.go
go run setup.go

遇到 錯誤3:

執行以上命令過程中,又遇到了如下錯誤:

setup.go:30:2: no required module provides package github.com/google/battery-historian/bugreportutils: go.mod file not found in current directory or any parent directory; see 'go help modules'
setup.go:31:2: no required module provides package github.com/google/battery-historian/historianutils: go.mod file not found in current directory or any parent directory; see 'go help modules'

go.mod file not found

解決 錯誤3:

解決該問題,需要以下兩個步驟:

  • go mod init
  • go mod verify

2.3.1、go mod init

首先運行如下命令,創建go.mod :

// 進入battery-historian的上一級目錄
cd ..
// go mod init創建go.mod
go mod init example

go mod init example

2.3.2、go mod verify

運行如下兩個命令,查找對應的依賴包:

go mod verify
go mod vendor

go mod verify

2.4、第二次執行 go run setup.go命令:

第二次執行 go run setup.go時,本以為看到了曙光,卻發現又在下載依賴包,而且完全下載不下來。

遇到 錯誤4:

依賴包下載不下來。

第二次執行 go run setup.go

解決 錯誤4:

battery-historian/third_party目錄

2.5、執行 go run setup.go 成功

第三次執行 go run setup.go命令,終於成功。

// 安裝battery-historian
go run setup.go

go run setup.go

2.6、啟動battery-historian.go

運行如下命令,啟動battery-historian.go:

// 啟動battery-historian.go
go run cmd/battery-historian/battery-historian.go

go run cmd/battery-historian/battery-historian.go

2.7、瀏覽器打開 http://localhost:9999/

打開瀏覽器,並打開以下網址:
http://localhost:9999/

注:這里有一個坑,打開該網址需VPN,否則頁面內容展示不全,或者打不開。
瀏覽器打開 http://localhost:9999/

2.8、adb bugreport

最后,導出bugreport文件:

// Android 7.0(包含) 以上設備執行如下命令:
adb bugreport > bugreport.zip
// Android 6.0(包含) 以下設備執行如下命令:
adb bugreport > bugreport.txt

將導出后的bugreport文件上傳到:
http://localhost:9999/

三、免安裝方式

國內以上安裝方式太繁瑣了,主要是各種依賴包都下載不下來(昨天完搞了一下午沒搞定,后來搞到晚上一點Battery Historain才安裝完成,中途幾度想放棄)。

偶然從網上看到一種極其簡的使用方式:
有人搭建了一個Battery Historain線上環境,相關網址 https://bathist.ef.lc/
https://bathist.ef.lc/

將我們導出的bugreport文件,直接上傳到該網址,便可以完成相關bugreport文件分析

https://bathist.ef.lc

四、使用 Battery Historain

如何使用 Battery Historain,這一點最權威的當然是Google 官方:

使用 Battery Historian 分析耗電情況
https://developer.android.google.cn/topic/performance/power/battery-historian?hl=zh-cn

官方這里介紹的非常詳細,我不再詳細說明。

五、參考:

Mac上安裝Battery Historain遇到的問題:
https://blog.csdn.net/wei_ada/article/details/106127654

Mac配置Android Battery Historain 3.0:
https://www.jianshu.com/p/88a3cb0aee9e

Battery-Historian:
https://github.com/google/battery-historian

Battery Historian 分析電池用量:
https://developer.android.google.cn/topic/performance/power/setup-battery-historian?hl=zh-cn

=== THE END ===

歡迎關注我的公眾號


免責聲明!

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



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