由于在安装使用Battery Historian的过程中遇到了很多坑,查阅了超多教程,最后总结成一个文档,以免以后再次安装的时候忘记了
ps.果然我又重新搭建了一次,又踩了一次坑,新添加了一些内容,保证100%搭建成功
环境搭建
- 安装python: https://www.python.org/
必须安装python2.7——如果系统中存在两个python版本,在环境变量中将2.7版本放在最上面
在CMD中使用
python -V
查看当前使用版本
- 安装git
在CMD中使用
git version
查看当前使用版本
- 安装JAVA
在CMD中使用
java version
查看当前使用版本
安装1.11版本——进入主页后选择Download,然后点击Archived versions找到对应版本。
版本过高——默认开启了mod模式,导致下载下来后的项目不在src目录里,如果选择关闭mod模式,在进行
go get
的时候又无法拉取到本地版本过低——在进行编译的时候会提示找不到某些内置的包
在CMD中使用
go version
查看当前使用版本
如果想要更改go的工作目录,直接在系统的环境变量中增加一个变量GOPATH,值为自定义的目录,如D:\go_workspace,后续的操作都是在该目录下完成
以上为Battery Historian的基础环境,完成后就可以进行代码的部署
没耐心可以直接跳转到最后,我会上传搭建好的项目压缩包
Battery Historian安装
一般教程都直接使用go最新版本采用以下命令来拉取项目
go get -d -u github.com/google/battery-historian/...
下载结束后发现,工作目录中src并没有项目,项目在pkg/mod中,因为在1.16版本中mod模式是自动开启的,会导致这个问题
但是如果直接关闭mod模式,命令执行后会提示ssl错误、timeout等等。 行不通,换条路子
在尝试了关闭1.16版本mod、换1.8版本(版本太低,提示缺包)、换1.11版本等等操作之后,都不行
以下是本人搭建的方法(参照教程https://www.tqwba.com/x_d/jishu/262524.html
- 将Battery Historian源码,放在路径GOPATH\src\github.com\google文件夹内
GOPATH表示的go的工作目录,在工作目录中按照以上给出的路径一层层创建,然后放入源码。
——
Battery Historian的源码可以以下任意一种:
从GitHub上下载Battery-Historian-master.zip文件后解压,更改文件夹名称为Battery-Historian
使用
git clone https://github.com/google/battery-historian
下载到本地开启mod模式使用
go get -d -u github.com/google/battery-historian/...
拉取到pkg/mod目录下,然后将其复制出来最终得到的源码一定是名称为Battery-Historian的文件夹
- 运行Battery Historian
#进入自己的工作目录,这里拿我的工作目录举个栗子
cd D:\go_workspace\src\github.com\google\battery-historian (自己的workspace path)`
#执行命令
go run setup.go
此时会提示找不到protobuf
- 处理protobuf的问题
初始准备:获得protobuf文件夹
- 开启mod模式使用
go get -d -u github.com/google/battery-historian/...
拉取到pkg/mod目录下
然后执行两个步骤:
非常重要,两个步骤缺一不可
- 在GOPATH/src目录下新建目录名为google.golang.org,找到pkg/mod/google.golang.org目录下的protobuf@v1.26.0文件夹,将其复制出来,放到刚刚新建的目录下,重命名为protobuf。
- 在GOPATH/src/github.com下新建目录golang,找到pkg/mod/github.com/golang下的protobuf目录,复制到新建目录下。
- 下载依赖
(还是这两句命令)
#进入自己的工作目录,这里拿我的工作目录举个栗子
cd D:\go_workspace\src\github.com\google\battery-historian (自己的workspace path)`
#执行命令
go run setup.go
等待数分钟或者10分钟左右,如果仍然没有下载成功,可以手动下载:
分别下载【closure-library】(一定要是v20170409版本)和【closure-compiler】和【flot-axislabels】,解压放到battery-historian目录下third_party文件夹下方的的closure-compiler和closure-library和flot-axislabels文件夹,需要手动创建;
- 执行battery historian
#进入自己的工作目录,这里拿我的工作目录举个栗子
cd D:\go_workspace\src\github.com\google\battery-historian (自己的workspace path)`
#执行编译命令(第一次需要,后面不需要执行该条命令)
go run setup.go
#启动battery-historian ,默认端口9999
go run cmd/battery-historian/battery-historian.go
使用chrome登录网址http://localhost:9999查看是否运行,应当出现以下界面
6. 测试
导出一个bugreport进行测试
- 收集电池的历史数据
adb shell dumpsys batterystats --enable full-wake-history
- 重置电池数据
adb shell dumpsys batterystats --reset
- 运行一段时间,导出adb bugreport (在C盘用户主目录中)
adb bugreport > bugreport.txt
上传到网页后点击submit提交,
选择文件后才会出现submit按钮
可能碰到的问题(没错,我都碰到了 ):
- 没有submit按钮
- 点击提交没反应
- 网页反应很慢
- 导入后报错
Note: Could not parse aggregated battery stats.
使用开发者工具查看网页,发现在报错,表示很多js文件找不到,大概是墙的问题,参阅教程【https://blog.csdn.net/weixin_43559200/article/details/110648193?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-5&spm=1001.2101.3001.4242】对项目进行修改替换
解决办法:
首先下载压缩包https://github.com/gusha915/no-ssr-battery-historian
- 将下载好的压缩包解压
- 找到下载的base.html 文件替换原码中的base.html,路径:battery-historian\templates\base.html
- 将下载好的名为cdn的目录放入到battery-historian\third_party路径下
cd $GOPATH/src/github.com/google/battery-historian
- 运行
go run setup.go
进行编译 - 运行
go run cmd/battery-historian/battery-historian.go
此时已解决项目运行找不到文件的问题(submit按钮不显示、点击提交无反应、运行缓慢的问题)
对于Note: Could not parse aggregated battery stats.
这个问题,需要修改本地battery historian的源码,具体修改条目,参加以下教程:
https://github.com/lilydjwg/battery-historian/commit/a912fa0ee57a9dba00d8fd37a9516c0bc11751ed
修改结束后,重新启动项目,上传测试,成功!完结撒花~~
剩下的这个报错不影响使用,就没有处理了
打包好的项目
下载链接:https://pan.baidu.com/s/1Vr6JeadtEukW3NK6w9GM-A
提取码:gqio
部署方式:直接解压到D盘,配置GOPATH为D:\go_workspace即可