专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
目录
相关文章推荐
51好读  ›  专栏  ›  鸿洋

Android性能优化-电量优化

鸿洋  · 公众号  · android  · 2017-05-18 07:30

正文

请到「今天看啥」查看全文



通常情况下,使用3G移动网络传输数据,电量的消耗有三种状态:


  • Full power: 能量最高的状态,移动网络连接被激活,允许设备以最大的传输速率进行操作。

  • Low power: 一种中间状态,对电量的消耗差不多是Full power状态下的50%。

  • Standby: 最低的状态,没有数据连接需要传输,电量消耗最少。


3

如何进行电量使用分析?


电量使用优化, 基本上是我们最不怎么关注的一项优化。可能很多公司连QA/Tester也不会关注测试App电量的使用。


一般来说开发和测试的测试设备也一直是连着USB处于充电状态的,感官上也体会不到电量的损耗。


要进行电量优化,我们首先得知道电都消耗到那里去了,不然如何进行针对性的优化呢?


答案是通过google开源的Battery Historian来进行分析。


(1)电量数据收集


Android 5.0及以上的设备, 允许我们通过adb命令dump出电量使用统计信息.


1.因为电量统计数据是持续的, 会非常大, 统计我们的待测试App之前先reset下, 连上设备, 命令行执行:

$ adb shell dumpsys batterystats --reset
Battery stats reset.


2.断开测试设备, 操作我们的待测试App.

3.重新连接设备, 使用adb命令导出相关统计数据:

// 此命令持续记录输出, 想要停止记录时按Ctrl+C退出.
$ adb bugreport > bugreport.txt


导出的统计数据存储到bugreport.txt, 此时我们可以借助如下工具来图形化展示电池的消耗情况.


注意, 官方SDK文档导出文件方式为:
adb shell dumpsys batterystats > batterystats.txt
使用python historian.py batterystats.txt > batterystats.html查看数据
是battery-historian老版本的使用方式. 目前Battery Historian已更新2.0版本, 推荐使用bugreport方式导出数据分析, 可以看到更多信息.


(2)安装工具


工具开源地址:

https://github.com/google/battery-historian


根据gitbub上面介绍,Battery History工具的安装有两种方式:


  1. 通过安装Docker环境来安装。(这种方式很简单,Docker真心好用,太彪悍了!)


Docker是一种容器,一般用于云计算和大数据平台。提倡的一种思想就是:软件即服务。这句话不是盖的,一句话就可以将别人发布的docker服务环境一次全部copy过来(注意是整个软件环境哦,相当于复制了一台一模一样的主机,连软件都不要安装了,全有了。彪悍吧!)
Docker只支持Windows10


由于笔者使用的window,无法通过Docker的方式,所以是采用第2点进行安装


2.通过编译gitbub上面的源码来安装


这真是一个虐心的过程,因为Battery History是Go语言开发的。我们需要安装Go环境、Pytho环境、Git环境,并配置好相关的环境变量。具体的软件安装教程就不附上了,这里贴一下工具的下载地址。


Go下载地址:

https://golang.org/doc/install?download=go1.7.3.windows-amd64.msi

Python下载地址:

https://www.python.org/

Git下载地址:

https://git-scm.com/


需要注意的是, Battery Historian是Go语言的, 安装Go的时候需要配置其bin的环境变量.
Python环境需要是2.7的(3.x不行), 建议使用pyenv管理本地的python环境.
另外, 因为Battery Historian是一个网页版工具, 涉及一些JS引用, 有时需要爬梯子


安装及成功配置环境变量后


1.输入命令行 go get -d -u github.com/google/battery-historian/…
**下载到GOPATH配置目录下


2.进入到 $GOPATH/src/github.com/google/battery-historian目录下方
$ cd $GOPATH/src/github.com/google/battery-historian


3.运行Battery Historian



1) go run setup.go
Compile Javascript files using the Closure compiler
$ go run setup.go
等待数分钟或者10分钟左右,如果仍然没有下载成功,可以手动下载,如下操作
**下载【closure-library】和【closure-compiler】和【flot-axislabels】,解压放到GOROOT目录下third_party文件夹下方的的closure-compiler和closure-library和flot-axislabels文件夹 ../battery-historian\third_party;如果没有均手动创建


2)go run cmd/battery-historian/battery-historian.go
Run Historian on your machine (make sure $PATH contains $GOBIN)
$ go run cmd/battery-historian/battery-historian.go [--port <9999>]


4.检查/battery-historian是否运行, 登录网址 http://localhost:9999查看




千呼万唤使出来,不容易。这里建议使用Chrome浏览器,并且一定要使用VPN,不然各种莫名的问题


(3)分析指标


工具安装完成后,我们将adb采集的数据上传至Battery Historian,就可以得到电量的分析情况。







请到「今天看啥」查看全文