连接香港WiFi待机10小时平均电流20.69mA(不能超过17mA)
初次查看波形图,发现某个时刻后,待机的平均电流就明显变大,且一直持续整个暗屏待机结束,故很可能是功耗异常原因
异常波形的持续时间是1秒,且每隔2秒出现一次,且该波形平均电流为23.42 mA,故初步判定为功耗异常原因
上述需要找到这个特殊时刻发生的具体的时间,并将整个时刻和日志一一对应,找到问题发生原因
**换算为时间:09:52:02 + 是6036.91秒 = 11:32:42 **
查看 11:32:42 前后1秒内的日志情况,查看最近的唤醒源,具体如下-lock=220547145
40,280: 03-04 11:32:50.091 1129 1685 D PowerManagerService: acquireWakeLockInternal: lock=220547145, flags=0x40000001, tag="*alarm*", ws=WorkSource{1000}, uid=1000, pid=1129, packageName=android
40,350: 03-04 11:32:50.261 1129 1129 D PowerManagerService: updateWakeLockWorkSourceInternal: lock=220547145 [*alarm*], ws=WorkSource{10155} //com.autonavi.minimap
40,351: 03-04 11:32:50.267 1129 1129 D PowerManagerService: updateWakeLockWorkSourceInternal: lock=220547145 [*alarm*], ws=WorkSource{10146} //le.android.talk
40,371: 03-04 11:32:50.306 1129 1129 D PowerManagerService: updateWakeLockWorkSourceInternal: lock=220547145 [*alarm*], ws=WorkSource{10040 com.google.android.gms}
40,372: 03-04 11:32:50.308 1129 1129 D PowerManagerService: updateWakeLockWorkSourceInternal: lock=220547145 [*alarm*], ws=WorkSource{10170} //com.tencent.mm
40,392: 03-04 11:32:50.343 1129 1129 D PowerManagerService: releaseWakeLockInternal: lock=220547145 [*alarm*], flags=0x0, total_time=252ms, ws/pid/uid=WorkSource{10170}/1129/1000, packageName=android
上述发现 com.autonavi.minimap 地图导航, le.android.talk, com.google.android.gms,com.tencent.mm 后台唤醒,由于PowerMonitor和日志中的行为存在误差,故这里找这一分钟中最早出现的唤醒点,但是由于不同器件唤醒工程中持续的时间是无法计算的,故这里只能确定唤醒时刻发生的时间点,但是可以在 releaseWakeLockInternal 中的total_time查看持锁时间,作为参考实际电流波形持续的时间。
综合上述:应用唤醒导致该波形产生,但是为什么该波形产生后,出现了很有规律的波形呢?
03-04 09:51:48 ~ 03-04 11:32:50 期间 855次唤醒
365次 com.google.android.gms 唤醒
224 次 android
183 次 com.tencent.mm
32 次 com.qualcomm.qcrilmsgtunnel
8 次 com.android.phone
4 次 com.android.systemui
3 次 com.tencent.qqlive
3 次 jp.naver.line.android
1 次 com.google.android.apps.maps
03-04 11:32:50 ~ 03-04 19:58:37 期间 2106次唤醒
729 次 com.tencent.mm
541 次 com.google.android.gms
464 次 android
56 次 com.qualcomm.qcrilmsgtunnel
28 次 com.whatsapp
12次 com.amazon.mShop.android.shopping
10 次 audioserver
9次 com.google.android.talk
2次 com.autonavi.minimap
6 次 com.android.systemui
4次 com.UCMobile.intl
4次 com.twitter.android
2次 jp.naver.line.android
上述中唤醒次数并不能反映这个间隔2秒持续1秒的波形
并不是所有的现象都可以在日志中提醒,这里有时我们需要进行复现。这里安装上述应用com.autonavi.minimap 地图导航, le.android.talk, com.google.android.gms,com.tencent.mm,并待机,同时如果是社交应用,可以做发生消息的测试
暗屏待机时,微信后台运行,接收到消息时,就会触发消息通知,出现呼吸灯闪烁,就可以稳定出现2秒一个周期的台阶电流。
Case | 事件指示 | SW设置电流 | 3min平均电流/mA |
---|---|---|---|
优化前 | 4亮1灭 | 16mA | 9 mA |
优化后 | 2灭2亮 | 4mA | 1.38 mA |
模式 | 平均电流 | 的差值 |
---|---|---|
无呼吸灯 | 6.2mA | |
呼吸灯 25 占空比 | 7.2mA | 1 mA |
呼吸灯 50 占空比 | 8.4mA | 2.2 mA |
呼吸灯 90 占空比 | 10.68mA | 4mA |