阅读本文大约需要2.1分钟。
背景
在之前的文章《APP耗电量测试白皮书》中详细讲解了如何做APP的功耗测试及原理,今天这里主要是想跟大家分享一下最近使用过程中遇到的一个问题:无法正常提交bugreport文件。
在讲这个问题前先来回顾一下 Android Battery Historian 的安装方式,我之前是通过docker的方式安装的:
docker run --restart=always -d -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
以上这个命令需要翻墙才可以正常安装,如果没有翻墙能力可以执行下面的这个命令,采用的是国内的镜像:
docker run --restart=always -d -p 9999:9999 registry.cn-hangzhou.aliyuncs.com/xyz10/android-battery-historian:stable-3.0
我要说的那个问题就是在提交bugreport文件后页面无响应,打开Chrome的console面板如下:
解决方案
通过Google得知,是这个服务器上的d3.js库被下架了🤷♂️
这里我们可以使用自己编译源码的方式来解决。
步骤
主要参考 https://github.com/google/battery-historian 中的 Building from source code 来操作:
在安装配置完所需要的Go、Git、Python、Java环境后即可执行下面的编译命令:
下面这个命令执行时间非常长
,跟网速有关,我
是等了一下午才执行完
go get -d -u github.com/google/battery-historian/...
cd $GOPATH/src/github.com/google/battery-historian
下面这个命令同样非常耗时,我是等了一个晚上才编译完
go run setup.go
但是编译会出现报错如下:
此时执行下面的命令:
cd third_party/closure-library/
git reset --hard v20170409
cd -
go run setup.go
这样就没有报错了,继续按照步骤执行:
go run cmd/battery-historian/battery-historian.go [--port <default:9999>]
就可以看到下面的状态,表明可以正常使用了:
想要明白些道理,遇见些有趣的事 —— 离岛
