工具
1、官方historian
地址:https://developer.android.com/studio/profile/battery-historian-charts.html
2、腾讯的GT
地址:http://gt.tencent.com/
3、腾讯的PowerStat
地址:http://gt.tencent.com/
4、chrome调试
用法:数据线连接手机,在地址栏输入chrome:inspect
5、Android Device Monitor
Android studio的工具
尝试
1、官方的historian
historian有2个版本:python和go。
可以得到所有的耗电信息,是耗电分析的基础,其他的工具都是基于这些原理做的,但不利于量化和分析。
2、GT
3、PowerStat
安装的限制条件比较多,只在一个具有root权限的android5.0系统的三星上安装成功。
PowerStat是在GT home上有说名文档和QA文档。
成果
一、新闻详情页的定时请求
在新闻详情页上下滑动,发现PowerStat里面数据监测有明显的变化。
用chrome调试,发现停留在详情页,什么都不操作,会有定时的网络请求。
用fiddler抓包的结果一致:
确定是东方头条里的定时请求。
二、app退出后台,一直消耗流量
启动app,浏览新浪、搜狐等网页后,退出app。
刷新PowerStat的数据,发现随着时间变化,数据流量一直在增加。
下一步,抓包分析数据流量消耗的原因。
使用fiddler抓包,无结果。怀疑这部分是非http的请求。
使用WireShark抓包,得到一些请求过程
分析后,发现这些请求与app没有关系。
不能抓到有效的网络请求。
三、app退出后台,电量消耗情况
使用PowerStat工具,测试数据:
这些数据是一段时间内的耗电量
通过计算可以知道一些耗电情况,但不知能否反应出实时的耗电情况。
四、测试提供的测试场景
考虑的是不同的网络情况,可能会有不同的处理逻辑。
待验证。
总结
编码指导:
1 屏幕唤醒,Timer,WakeLock
2 I/O操作,数据库操作;网络请求次数和数据量;充电或连接到wifi时集中请求数据。
3 屏幕亮度,屏幕颜色,减少GPS使用。