遇到手机功耗问题我们该怎么办?

和你一起终身学习,这里是程序员Andoid

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、功耗是啥?
二、遇到功耗问题我们该怎么办?
三、功耗问题重点 抓log
四、MTK 平台功耗 log 抓取方法
五、SPRD 平台功耗 log 抓取方法
六、高通平台功耗log抓取方法
七、记录异常时间段/点
八、抓取 bugreport
九、抓取 5份 top log信息
十、记录平均电流图

一、功耗是啥?

手机功耗是啥?
通俗点讲是手机耗电,最直接表现是电池不耐用了,待机时间变短了,用户的体验变差了,客户的投诉变多了。那么,开发过程中我们遇到手机功耗问题该怎么办?

二、遇到功耗问题我们该怎么办?

正常情况下,手机测试过程中遇到bug,测试同事的第一反应是抓log,记录复现场景,然后提bug,丢给研发去分析。

1.那么当我们遇到功耗问题我们该怎么办呢?

功耗问题同样属于bug,所以,上面对测试过程中遇到bug的要求,同样适用于功耗问题的要求,即抓log,记录复现场景,然后提bug,丢给研发去分析。

只有理清复现问题的场景,这样研发才可以轻松的解决问题,如果自己都搞不清楚出现问题的情况,没有log,只说数据,研发有时候也是爱莫能助,他们也是人,不是神,不是说看看数据就可以给你改好功耗问题的。如果有可以看一眼数据就可以改好功耗的人,请给我们来一打,我们需要他。

2. 提bug举例

飞行模式电流异常举例如下:

功耗要求
测试前提(很重要)关闭 BT 、关闭 Wifi 、关闭 Location、打开飞行模式
重现步骤(很重要)开机,飞行模式灭屏5-15分钟
实际结果飞行底电流平均值 20mA(取灭屏后10-15分钟的平均电流值)
期望结果电流正常,平均值4mA 左右
概率100%
Log 抓取要求(共5份)高通平台(logkit)MTK平台(mtklog)SPRD 平台(Ylog) 、bugreport、 平均电流图异常时间段 / 点5次 top 文件
Log 抓取方法请看下文

三、功耗问题重点 抓log

功耗问题很复杂,各个不同场景下都可以引起功耗问题,因此遇到功耗问题,我们需要单独提供各个场景下,单独测试某个功耗场景下的问题,同时记录异常功耗电流波形图,各个log。

1.功耗问题需要保证5个前提

功耗问题涉及较多,需要保证在以下5个前提下进行。

  1. 保证飞行模式底电流正常。

  2. 保证Log 与 电流波形图 一 一对应。

  3. 保证一份 Log 只测试一个场景功耗。

  4. 测试15分钟,取测试5-15分钟内的平均值,0-5分钟log数据可以不计入平均值。

  5. 记录电流异常的时间段/点。

2.功耗问题需要提供 5 份log

遇到功耗问题,请提供以下 5种log

  1. MTK平台(见步骤四)或SPRD 平台(见步骤五)或高通平台log (见步骤六)

  2. 异常时间段 / 点(见步骤七)

  3. bugreport(见步骤八)

  4. top 文件 5份(见步骤九)

  5. 平均电流图(见步骤十)

四、MTK 平台功耗 log 抓取方法

MTK log 默认开启了Modem log,这个对抓取通话相关的log是有利的,但是对于有高要求的功耗问题却有很大的坏处,开启modem Log 会导致手机功耗偏高,所以,功耗log要求:一定要关闭 modem log。

1.MTK 平台关闭modem log方法

拨号界面输入暗码 *#*#3646633#*#*,进入MTK Logger 界面,右上角打开Logger Setting,手动关闭除Moblie Log之外的开关(比如:ModemLog、NetworkLog、GPSLog)。然后返回主界面,开启log,复现问题,关闭log。

详细关闭方法请看下图:

mtk 平台开启 Mobile log 参考图

五、SPRD 平台功耗 log 抓取方法

1.展讯平台关闭modem log方法

拨号界面输入暗码 *#*#83781#*#*,进入SPRD Logger 界面,右上角打开Settings, 点击Custom scene,关闭除Android log之外的开关(比如:BT、AP 、PS 、DSP 、Modem 等)。然后点击commit, 然后开启log,复现问题,然后关闭log。

详细关闭方法请看下图:

SPRD 平台开启 Android log 参考图

六、高通平台功耗log抓取方法

高通平台 Logkit 没有抓取modem log的功能,所以,我们可以直接输入暗码*#*#12345#*#*开启Log,复现问题,然后关闭log。

高通平台 Logkit 功耗log抓取方法

七、记录异常时间段/点

测试功耗之前,请一定把手机时间跟电脑时间同步,这样不仅方便记录异常时间段/点,而且有利于研发分析问题。

1.手机同步时间方法

进入 Settings,找到System,然后找到Data & time,调节手机时间与电脑时间同步。

同步时间方法如上

八、抓取 bugreport

抓取bug report 前,请执行以下adb命令reset 电池状态

adb shell dumpsys batterystats --reset
adb shell dumpsys batterystats --enable full-wake-history

然后开始测试功耗异常问题,测试30分钟左右,在执行以下adb命令抓取bugreport

adb bugreport bugreport.zip

九、抓取 5份 top log信息

手机连接USB、 测试功耗问题,然后每隔2分钟执行一下下面adb命令。

adb shell top -n 30 -m 10  -k -%CPU > top1.txt

建议命名为top1.txttop2.txttop3.txttop4.txttop5.txt方便查看

十、记录平均电流图

测试功耗可以分两种
1.使用程控电源+Excell表
2.使用PowerMonitor

1.使用程控电源+Excell表 抓取的电流图

比如某项目 屏全亮+打开wifi+打开BT+打开Location+插入双卡测试的平均电流如下:

程控电源+Excel 统计平均值

2.使用PowerMonitor 抓取的电流图

Power Monitor 测试功耗电流图如上

友情推荐

Android开发干货分享

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

分享到朋友圈吧,方便您使用时快速查找!

posted @ 2019-11-27 18:35  程序员Android的博客  阅读(926)  评论(0编辑  收藏  举报