zoukankan      html  css  js  c++  java
  • 5-电量

    注意:需要翻*墙~需要翻*墙~需要翻*墙~要翻*墙~翻*墙~墙

    电量这一块,想做到非常精准,最好的方法是用硬件设备来测试~~

    一般来说我们1不是做手机的,2不是做ROM的,要那么精准的值干嘛?有个参考的数据值就可以了么,╮(╯▽╰)╭.

    电量想要测试的高大上,避免不了高大上的工具~隆重向大家介绍谷歌官方发布的<Battery Historian 2.0>电量分析工具````

    [英文好的小伙伴~丢给你们一个下载地址及教程:https://github.com/google/battery-historian]

     

    Battery Historian 2.0安装须知

      1.Battery Historian 2.0使用GO语言开发~所以我们要先装GO语言,下载地址:http://golang.org/doc/install 

    推荐下载'.msi'傻瓜式安装即可,环境变量自动配置~很方便.装好后把'X:Goin'增加在Path中,增加一个"GOPATH"顺便检查一下环境配置'GOROOT':

    检查无误后,打开cmd输入"go version",显示出版本号,证明安装成功了:

    2.安装'Git'和'python2.X版本'和'java',安装过程都很简单,百度一下一堆资料,都是一路下一步即可,最后记得配置环境变量:

    3.1我们打开文件夹:C:Goin 然后"shift+鼠标右键"->"在此处打开命令窗口"

    3.2打开命令窗口后输入:go get -d -u github.com/google/battery-historian/...

    大概需要等待3分钟~~

    3.3接着我们到D盘查看:D:GOsrcgithub.comgoogleattery-historian

    3.4然后"shift+鼠标右键"->"在此处打开命令窗口" 输入:go run setup.go 

     

    这个等待时间有点长了~我的网速用了10分钟左右````

    3.5完成这一步之后我们的Battery Historian 2.0就安装完成了,在安装目录下,使用命令启动工具:go run cmdattery-historianattery-historian.go

    启动时弹出对话框什么的"允许"就对了~出现上图类似情况证明启动成功~这个命令窗口不要关闭,关了工具就关了~

     

    3.6接着用浏览器打开:127.0.0.1:9999,看看:

    出现如上图,就算启动成功了~

    获取'bugreport分析图'

      首选,安卓版本至少要是:5.0+

      然后,开启分析图:adb shell dumpsys batterystats --enable full-wake-history

      最后,导出分析图:adb bugreport > bugreport.txt

    时间可能会略长

     

    使用"bugreport"

      1.启动Battery Historian2.0,打开:127.0.0.1:9999

      2.点击"Browse",选择刚刚导出的'bugreport.txt',点击"Submit"

      3.打开以后长这样:

      4.向下滑还可以选择某个package查看:

    尼玛~好长~累死~

    需要注意的其它点

    1.Battery Historian2.0从安装到使用的时候,一定要翻*墙,因为它会加载一些国外源的前端库之类的东西.

    你也可以不翻*墙使用Battery Historian2.0,然后点击浏览器的F12查看"Console"之中那些前端库加载失败了,使用国内源替换.

    但是替换之后,偶尔也会出现类似原因造成的问题~~水平有限不知道为啥~所以最好的办法就是保持翻*墙.

    一般都是到这个文件内替换(base):

    2.注意取值过程中要保证手机是非充电状态~其实只要不插USB线就可以了,如果你设计的一系列场景中涉及到必须要插USB线的时候,可以使用下面这条命令

    手机切换至非充电状态:adb shell dumpsys battery set status 1

    实际上只要不是2就处于非充电状态,所以恢复可充电就把1换成2

     

    3.通过上述方法取出的值是不断累计的结果,系统不会主动清除记录,所以采集电量之前我们要清除以前的数据,来确保新数据有更高的可依据性

    清空之后,按照一系列设计好的场景,对app进行操作,最后取出数据进行分析

    清空以前的旧记录:adb shell dumpsys batterystats --reset

     4.电量测试是一个复杂的活,我们要知道程序之所以会耗电是因为在使用硬件资源。比如屏幕~CPU~流量,我们在收集到数据之后可能要具体问题具体分析了,比如说

    如果关闭流量比开启流量更加耗电,我们就可以怀疑程序检查网络连接的代码有问题,因为在断网时应该更省电,可能是程序在一直检测网络状态导致CPU长时间大频率使用,增加耗电量。

    如果发现某场景数据异常,那么首先要沏茶一壶,再找个舒服的凳子,然后来到程序猿旁边,最后心平气静的问他你在这块代码里都干啥了?

    -----华丽的吐槽线-----

    ((╯‵□′)╯︵┻━┻  鬼知道程序猿们会写出什么BUG)

  • 相关阅读:
    创建对象的七种方式
    设计模式之工厂模式
    设计模式之单例模式
    排序算法之插入排序
    排序算法之选择排序
    类及对象初体验
    排序算法之冒泡排序
    迭代器和生成器
    装饰器
    函数进阶
  • 原文地址:https://www.cnblogs.com/dianxiao2/p/6212170.html
Copyright © 2011-2022 走看看