1.如果是window home版本,需要下载dockerToolBox https://get.daocloud.io/toolbox/ (Deprecated)
2.确认开始BIOS虚拟化
- 安装
安装成功运行
docker run hello-world
// 提示 docker: error during connect: This error may indicate that the docker daemon is not running.
// 进入docker工作空间,执行下述命令,打开docker daemon
.\DockerCli.exe -SwitchDaemon
// docker run可以运行成功代表docker配置没有问题
- 运行 battery-history容器
docker run -p 9000:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
如果没有翻墙,或者下载不行,需要国内其他镜像
// 没有翻墙,使用阿里云的镜像来下载
// 查找battery historian镜像
docker search battery
// 查看到镜像名是 bhaavan/battery-historian
docker run --name=battery_history -d -p 9001:9999 bhaavan/battery-historian
// 阿里云镜像 (经测试有问题,不知道其他人如何)
docker run -p 9000:9999 registry.cn-hangzhou.aliyuncs.com/xyz10/android-battery-historian:stable-3.0
// 查看镜像是否存在
docker iamges
// 查看活动状态
docker ps -a
成功的话,输入 http://localhost:9000/ 就可以看到本地的battery history分析页面了
分析电量
// 重置电池数据收集
adb shell dumpsys batterystats --reset
// 详细记录唤醒锁信息
adb shell dumpsys batterystats --enable full-wake-history
// dump电池数据
adb shell dumpsys batterystats > [path/]batterystats.txt
// 生成报告
adb bugreport > [path/]bugreport.zip //7.0以上
adb bugreport > [path/]bugreport.txt // 7.0以下
提交分析报告
在battery historian网页上上传得到的bugreport.zip文件
docker相关命令
//查看运行容器
docker ps -a
docker ps -n 5
//查看镜像文件
docker images
// 创建一个容器
docker run -p 9000:9999 registry.cn-hangzhou.aliyuncs.com/xyz10/android-battery-historian:stable-3.0
问题
-
Uncaught ReferenceError: d3 is not defined
解决方案:
While it's running, run docker ps to get its name.
Then run docker exec -it <NAMES> bash.
Install vim apt-get update && apt-get install vim
Edit base.html vim templates/base.html
Change line 45 from
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/d3/4.9.1/d3.min.js"></script>
to
<script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script>
Then restart the container docker restart <CONTAINER ID>.
Voila! I'm not entirely sure how to make this change permanent. I guess one has to run the local copy of the container instead of pulling it from the web.
实在不行,可以访问一个线上的battery history: https://bathist.ef.lc/
相关电池模式测试
//强制进入闲置模式
adb shell dumpsys deviceidle force-idle
//退出闲置模式
adb shell dumpsys deviceidle unforce
//重新激活设备
adb shell dumpsys battery reset
//强制进入待机模式
adb shell dumpsys battery unplug
adb shell am set-inactive <packageName> true
//唤醒
adb shell am set-inactive <packageName> false
adb shell am get-inactive <packageName>
//手动应用后台限制
adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND ignore
//解除后台限制
adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND allow
//进入省电模式
adb shell dumpsys battery unplug
adb shell settings put global low_power 1
//移除省电模式
adb shell dumpsys battery reset