前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2019-11-20-app专项测试【Android电量】Battery Historian耗电分析

2019-11-20-app专项测试【Android电量】Battery Historian耗电分析

作者头像
小黑同学
发布2020-08-17 14:50:52
1.5K0
发布2020-08-17 14:50:52
举报
文章被收录于专栏:E=mc²

设备环境:macos 测试对象:Android-app

  1. 使用 Homebrew 安装docker
代码语言:javascript
复制
brew cask install docker
  1. 在终端搜索Battery Historian相关的镜像
代码语言:javascript
复制
docker search battery  
  1. 拉取并运行battery-historian镜像,会自动下载并运行镜像(可以忽略第4步),(下面两条命令使用其中之一就可以,可能有防火墙的原因不能成功)
代码语言:javascript
复制
docker run --name=battery -d -p 9999:9999 bhaavan/battery-historian

docker run -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
在这里插入图片描述
在这里插入图片描述

上图是正在下载镜像

  1. (如果第3步执行完之后不小心关闭了)启动镜像(前面已经下载过镜像了,这条命令就直接启动了,同样执行对应的一条就行)
代码语言:javascript
复制
docker run -d -p 9999:9999 bhaavan/battery-historian 

docker run -p 9999:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999
启动成功
启动成功
  1. Battery Historian容器就成功的运行了,端口映射本地端口9999,在浏览器打开http://localhost:9999如下
在这里插入图片描述
在这里插入图片描述
  1. 连接手机,打开调试模式

Android 7.0和更高版本的开发设备获取错误报告:

代码语言:javascript
复制
adb bugreport bugreport.zip

对于6.0或更低版本的设备:

代码语言:javascript
复制
adb bugreport > bugreport.txt
  1. 选择生成在本地的bugreport.zip文件上传
在这里插入图片描述
在这里插入图片描述

记载这里我遇到一个坑,就是文件上传后,submit提交按钮不显示

原因:本质是web某些资源没有加载出来,其中的一些资源需要访问google服务器,但是这些资源被墙了,无法访问。只要解决了墙的问题,submit的问题也就迎刃而解了。 解决方案: ① v** ② 想办法将无法加载的资源替换为可以加载的资源,参考:https://github.com/waquer/ReplaceGoogleCDN 有同学说***之后还是无法显示submit提交按钮,我这里提供下他的解决方案

参考链接:https://blog.csdn.net/super_spy/article/details/51966956

  1. 之后就会看到电池的使用数据报告,Battery Historian图表显示随着时间的推移电源相关事件。

当系统组件处于活动状态时,每行显示彩色条形段,从而从电池中汲取电流。该图表并未显示该组件使用了多少电,只是该应用程序处于活动状态。图表按类别进行组织,随着时间的推移显示每个类别的栏,如图表的X轴上所示。不同颜色代表指标的不同状态:比如Screen 红色代表亮屏,白色代表关屏,具体鼠标放在最左侧的️上就会自动提示

在这里插入图片描述
在这里插入图片描述

默认情况下,统计信息是在运行基础上维护的,Android也不记录特定于应用程序的用户空间wakelock转换的时间戳。如果您希望Historian在时间线上显示关于每个单独唤醒锁的详细信息,则应在开始实验之前使用以下命令启用完整唤醒锁报告:

代码语言:javascript
复制
adb shell dumpsys batterystats --enable full-wake-history

请注意,通过启用完全唤醒锁定报告,电池历史记录将在几个小时内溢出。使用此选项进行短时间测试(3-4小时)。 采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包:

代码语言:javascript
复制
adb shell dumpsys batterystats --reset

执行上面两条命令后,相当于清理了battery记录的日志,点开了微信、后置相机、今日头条运行一段时间,然后导出报告

代码语言:javascript
复制
adb bugreport bugreport.zip

或者下面的命令,加上包名,测指定的app(包名com.example.android.sunshine.app,填写自己要测的包名)

代码语言:javascript
复制
adb shell dumpsys batterystats > bugreport.txt
adb shell dumpsys batterystats>com.example.android.sunshine.app > bugreport.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档