记录 Android Battery Historian 安装使用中的一个问题

1,038 阅读2分钟

阅读本文大约需要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>]

就可以看到下面的状态,表明可以正常使用了:

想要明白些道理,遇见些有趣的事 —— 离岛