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

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

一、确保手机硬件最优状态
二、确保手机以下三个基本场景功耗正常
三、确保没有网络传输导致电流抬升
四、modem 唤醒源

一、确保手机硬件最优状态

开启数据流量功耗分析影响点很多,首先,我们要确保测试功耗的手机处于最优状态。
比如:

  1. 确保手机射频校准过。
  2. 确保手机射频参数刷版本时候没有被擦掉。
  3. 确保手机天线接触良好。
    如果天线在后盖上,请盖上后盖。

如果后盖不能盖上,请焊接天线,或者将手机后壳电池插口地方挖洞安装假电池。

二、确保手机以下三个基本场景功耗正常

手机硬件保证ok后,我们要优先测试并确保以下三个场景下的功耗是正常的。

1.飞行模式电流待机正常

飞行模式电流分析参考文章如下:
飞行模式低电流分析

2.不插卡待机电流正常

不插卡待机电流分析参考文章如下:
不插卡待机电流正常

3.插卡待机电流正常

插卡待机电流分析参考文章如下:
插卡待机电流正常

三、确保没有网络传输导致电流抬升

如何确认数据传输对应的apk,首先要有网络数据包,在有网络数据包的情况下,可能对应有apk,也可能没有,因为有些网络包是对应不了apk的,因为它有可能是垃圾包,查询包,或者其他状态确认包。

1.kernel log中搜索关键字“wakeup” 或者 “wake up by”

假如有以下log

[cccil/cldma]CLDMA_MD wakeup source:(0/0/0)

或者以下log

[system_server][spm]wake up by CONN2AP, timeout=52352,r13=0x4500,debug_flag=0x9f

则说明有网络包传输,而且会有唤醒 AP 测的介入。

2. 根据Kernel log时间推测 Android 时间

kernel log使用的是 UTC 硬件时间,Android 时间一般为UTC 时间+ 时区(比如中国时区需要+8小时)

通过推测Android log时间,然后看看这个时间点附近app的活动信息。

3.确认TCP/IP 包

TCP/IP log 位于netlog 中,需要抓取cap包

4. 使用 wireshark 工具分析 cap log

wireshark 下载地址如下:
wireshark

四、modem 唤醒源

如果AP 测没有唤醒,但是波形图可以很明显的看到抬升,这时候因为没有log,因此需要根据波形推测可能的问题。
一般多是RRC,RRC是Modem 和基站握手通讯的基本行为,这个为Modem 的所需,并且基站所需要这台手机的信息都是通过RRC 交换的。
一个RRC的周期一般是12s 左右,也有2个RRC连在一起的,如果周期是这个的整数倍,则可以联想是RRC 所为。

RRC 分带 CDRX 和不带CDRX。
CDRX 主要用来表明握手期间基站是否运行Modem 休眠的一个参数,1表示运行。

一般带CDRX 的波形图是有机会短暂休眠的,表现就是电流图可以触底,带CDRX的RRC 是有基站决定的。

一般不带CDRX,可以看到电流一直维持在高位,这是因为基站在这个RRC过程中不允许Modem 休眠,这个是基站决定的,并非手机端行为。

友情推荐:
Android 干货分享

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!


程序员Android
112 声望22 粉丝

和您一起终身学习,这里是程序员Android。