[待机功耗]呼吸灯功耗分析与优化

1. 功耗现象

连接香港WiFi待机10小时平均电流20.69mA(不能超过17mA)

1.1 查看PowerMonitor波形现象

初次查看波形图,发现某个时刻后,待机的平均电流就明显变大,且一直持续整个暗屏待机结束,故很可能是功耗异常原因

功耗现象.png

2. 功耗异常发生时刻确认

2.1 查看电流波形变化

异常波形的持续时间是1秒,且每隔2秒出现一次,且该波形平均电流为23.42 mA,故初步判定为功耗异常原因

波形变化.png

上述需要找到这个特殊时刻发生的具体的时间,并将整个时刻和日志一一对应,找到问题发生原因

2.2 特殊时刻是6036.91秒

**换算为时间:09:52:02 + 是6036.91秒 = 11:32:42 **

特殊时刻是6036.91秒

3. 功耗异常原因

查看 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查看持锁时间,作为参考实际电流波形持续的时间。

综合上述:应用唤醒导致该波形产生,但是为什么该波形产生后,出现了很有规律的波形呢?

3.1 特殊时刻前后的唤醒情况分析

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秒的波形

3.2 现象复现 - 问题确认呼吸灯导致

并不是所有的现象都可以在日志中提醒,这里有时我们需要进行复现。这里安装上述应用com.autonavi.minimap 地图导航, le.android.talk, com.google.android.gms,com.tencent.mm,并待机,同时如果是社交应用,可以做发生消息的测试

暗屏待机时,微信后台运行,接收到消息时,就会触发消息通知,出现呼吸灯闪烁,就可以稳定出现2秒一个周期的台阶电流。

4. 呼吸灯功耗优化

4.1 呼吸灯亮屏规格

呼吸灯亮灭规则.png

4.2 修改呼吸灯的亮灭频率
Case事件指示SW设置电流3min平均电流/mA
优化前4亮1灭16mA9 mA
优化后2灭2亮4mA1.38 mA
4.3 修改呼吸灯的亮度-修改占空比
模式平均电流的差值
无呼吸灯6.2mA
呼吸灯 25 占空比7.2mA1 mA
呼吸灯 50 占空比8.4mA2.2 mA
呼吸灯 90 占空比10.68mA4mA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值