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

欢迎关注我的公众号

posted @ 2021-06-10 09:58  bjxiaxueliang  阅读(804)  评论(0编辑  收藏  举报