和你一起终身学习,这里是程序员 Android
本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
一、确保手机硬件最优状态
二、确保手机以下三个基本场景功耗正常
三、确保没有网络传输导致电流抬升
四、modem 唤醒源
一、确保手机硬件最优状态
开启数据流量功耗分析影响点很多,首先,我们要确保测试功耗的手机处于最优状态。
比如:
- 确保手机射频校准过。
- 确保手机射频参数刷版本时候没有被擦掉。
- 确保手机天线接触良好。
如果天线在后盖上,请盖上后盖。
如果后盖不能盖上,请焊接天线,或者将手机后壳电池插口地方挖洞安装假电池。
二、确保手机以下三个基本场景功耗正常
手机硬件保证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 干货分享
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。