一、待机电流波形
最干净的待机电流波形应该只有paging,不过需要注意2点:
每个paging的间隔,不同网络可能不一样,有可能是320ms, 640ms
| 待机网络 | paging 间隔 | 1分钟的耗电量 | 单个耗电量 | 单个待机电流 | 单个波形时长 |
| 4G | 640ms | 174uAh | 约0.34~0.37Ah | 约41~59 mA | 约21~31 ms |
| 5G | 320ms | 218uAh | 约0.41~0.42uAh | 约38~52 mA | 约25~40 ms |
备注:Smart phone灭屏待机是先5G驻网,5~10分钟后切换为4G驻网
每个paging起来的burst可能不止一个,单独一个是PICH,起来两个是PICH+PCH, 但是良好的网络中PCH出现次数不能占比太高

1.1 4G 驻网待机电流
Paging 640ms

4G波形特征

1分钟内4G耗电量

1.2 5G 驻网待机电流
Paging 320ms

波形特征

1分钟耗电量约218uAh

电流持续时长25~40ms

1.3 毛刺波形
普通的timefd或modem, 持续时间400ms。耗电量20uAh。

1.4 台阶波形

1.5 电流比较大的timefd
| 74 | 20:24:28 | 76 | 20:24:30 | 2 | 31 | [大电流]CPU running 20:24:31 - 20:24:31 [timerfd] |


1.5 TIME-TICK波形
| 282 | 20:27:56 | 282 | 20:27:56 | 0 | 17 | 0.26% | [电流毛刺]20:27:59 *alarm*:TIME_TICK CPU running 347ms |


1.6 telephony-Smart-radio
| 832 | 20:37:06 | 832 | 20:37:06 | 0 | 17 | 0.26% | [电流毛刺]20:37:11 *telephony-Smart-radio* |


1.7 ANDROID_SYSTEM
| 836 | 20:37:10 | 836 | 20:37:10 | 0 | 17 | 0.26% | [电流毛刺]20:37:15 - ANDROID_SYSTEM |


1.8 walarm:Smartui.intent.action.tickintent
| 881 | 20:37:55 | 881 | 20:37:55 | 0 | 17 | 0.26% | [电流毛刺]220:38:00 *walarm*:Smartui.intent.action.tickintent |


1.9 gms
79 19:20:43 84 19:20:48 5 N/A 158 2.6% 19:20:45 GOOGLE_SERVICES


二、应用电流波形
2.1 微信发消息
| 不同网络环境下 发微信消息 | 波形 持续时间 | 耗电量 | 平均电流 | 备注 | 日志 |
| 纯开WiFi | 3.2s | 78.43uAh | 88.45mA | N/A | Alarm:*walarm*:ALARM_ACTION(10000) Wakelock:StnManagerCallback,MicroMsg.MMAutoAuth,PlatformComm 联网:Dst: 157.148.62.149 |
| 纯开数据流量 | 25s | 605uAh | 85mA | 波形时长太长,即相同联网使用数据流量会更耗电 | |
| 开WiFi开数据流量 | 3.19s | 104uAh | 92mA | BugReport中:如果wifi+数据流量开的条件下,存在联网现象,可以从wifi radio ative和mobile radio ative中查看联网是使用wifi还是数据流量 |
2.1.1 微信发消息_纯开WiFi_波形图
开WiFi关数据流量,11.17发微信消息波形,持续3.2秒,78.43mAh, 88.45mA

11-30 11:17:27.660 1978 17686 D AlarmAlign: align alarm = Alarm{ce61bb6 type 2 origWhen 59349294 whenElapsed 59349294 com.tencent.mm} tag = *walarm*:ALARM_ACTION(10000) flags = 9 |||| realign = false11-30 11:17:27.660 1978 17686 D AlarmAlign: alignElapsed = 5895749111-30 11:17:27.660 1978 17686 D AlarmAlign: alarmWhenElapsed = 5934929411-30 11:17:27.660 1978 17686 D AlarmAlign: alarmMaxWhenElapsed = 5934929411-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->forceImportance:com.tencent.mm11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowList11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importancePartial wakelockNov 30 202311:17:27 - 11:17:27+15h52m55s718ms to +15h52m56s220msactive duration: 502ms3 occurencesWakelock_in | Number of times | Total duration | Actual event timesStnManagerCallback |1| 1s 10ms | [11:17:27 - 11:17:28]MicroMsg.MMAutoAuth | 1 | 1s 5ms | [11:17:27 - 11:17:28]PlatformComm |1| 502ms | [11:17:27 - 11:17:27]
2.1.2 微信发消息_纯开数据流量_波形图
开数据关WiFi 13:46 发微信消息波形,持续25秒,605uAh, 85mA


system.txt:3372:11-30 13:46:36.724 1978 17588 D AlarmAlign: align alarm = Alarm{dc9145a type 2 origWhen 67928356 whenElapsed 67928356 com.tencent.mm} tag = *walarm*:ALARM_ACTION(10000) flags = 9 |||| realign = falsesystem.txt:3376:11-30 13:46:36.724 1978 17588 D AlarmAlign: *****Before align alarm = Alarm{dc9145a type 2 origWhen 67928356 whenElapsed 67928356 com.tencent.mm} tag = *walarm*:ALARM_ACTION(10000)system.txt:3377:11-30 13:46:36.724 1978 17588 D AlarmAlign: *****After align alarm = Alarm{dc9145a type 2 origWhen 67928356 whenElapsed 67930800 com.tencent.mm} tag = *walarm*:ALARM_ACTION(10000)system.txt:3382:11-30 13:46:36.890 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->forceImportance:com.tencent.mmsystem.txt:3383:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mmsystem.txt:3384:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowListsystem.txt:3385:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importanceCPU runningNov 30 202313:46:36 - 13:46:39+18h22m04s781ms to +18h22m07s923msactive duration: 3s 142ms1 occurencesCPU running | Number of times | Total duration | Timestamps when wakeup reason was recordedAbort: Pending Wakeup Sources: [timerfd] | 1 | 177ms | 13:46:36Abort: Pending Wakeup Sources: IPA_CLIENT_APPS_WAN_COAL_CONS | 1 | 0ms | 13:46:36App Processor wakeupNov 30 202313:46:36 - 13:46:36+18h22m04s882ms to +18h22m04s882ms1 occurencesApp Processor wakeup | Number of timescom.tencent.mm | 1Kernel only uptimeNov 30 202313:46:36 - 13:46:36+18h22m04s781ms to +18h22m04s958msactive duration: 177ms2 occurencesWakeup reason | Number of times | Source CPU running event caused by userspaceAbort: Pending Wakeup Sources: [timerfd] | 1 | yAbort: Pending Wakeup Sources: IPA_CLIENT_APPS_WAN_COAL_CONS | 1 | yPartial wakelockNov 30 202313:46:36 - 13:46:37+18h22m05s071ms to +18h22m05s575msactive duration: 504ms3 occurencesWakelock_in | Number of times | Total duration | Actual event timesStnManagerCallback | 1 | 1s 7ms | [13:46:36 - 13:46:37]MicroMsg.MMAutoAuth | 1 | 1s 4ms | [13:46:36 - 13:46:37]PlatformComm | 1 | 504ms | [13:46:36 - 13:46:37]Wakelock held by at least 1 appNov 30 202313:46:36 - 13:46:37+18h22m04s958ms to +18h22m06s051msactive duration: 1s 93ms1 occurencesFirst wakelock acquired by | Number of timesStnManagerCallback | 1Only the first app to acquire the wakelock is shown.Total wakelock duration is not attributed to only those apps listed.To enable full wakelock reporting, run:adb shell dumpsys batterystats --enable full-wake-history
2.1.3 微信发消息_开WiFi开数据流量_波形图
13:54开数据开WIFI ,持续3.19秒,104mAh, 92mA

system.txt:5733:11-30 13:54:12.408 1978 3273 D AlarmAlign: alignElapsed = 68116921system.txt:5734:11-30 13:54:12.408 1978 3273 D AlarmAlign: alarmWhenElapsed = 68384042system.txt:5735:11-30 13:54:12.408 1978 3273 D AlarmAlign: alarmMaxWhenElapsed = 68384042system.txt:5736:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->forceImportance:com.tencent.mmsystem.txt:5737:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mmsystem.txt:5738:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowListsystem.txt:5739:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importanceCPU runningNov 30 202313:54:12 - 13:54:15+18h29m40s659ms to +18h29m43s653msactive duration: 2s 994ms1 occurencesCPU running | Number of times | Total duration | Timestamps when wakeup reason was recordedAbort: Pending Wakeup Sources: [timerfd] [timerfd] | 1 | 0ms | 13:54:12App Processor wakeupNov 30 202313:54:12 - 13:54:12+18h29m40s788ms to +18h29m40s788ms1 occurencesApp Processor wakeup | Number of timescom.tencent.mm | 1Kernel only uptimeNov 30 202313:54:13 - 13:54:15+18h29m41s772ms to +18h29m43s653msactive duration: 1s 881ms1 occurencesWakeup reason | Number of times | Source CPU running event caused by userspaceAbort: Pending Wakeup Sources: [timerfd] [timerfd] | 1 | yPartial wakelockNov 30 202313:54:12 - 13:54:12+18h29m40s787ms to +18h29m41s291msactive duration: 504ms3 occurencesWakelock_in | Number of times | Total duration | Actual event timesStnManagerCallback | 1 | 1s 11ms | [13:54:12 - 13:54:13]MicroMsg.MMAutoAuth | 1 | 1s 10ms | [13:54:12 - 13:54:13]PlatformComm | 1 | 504ms | [13:54:12 - 13:54:12]Wakelock held by at least 1 appNov 30 202313:54:12 - 13:54:13+18h29m40s659ms to +18h29m41s772msactive duration: 1s 113ms1 occurencesFirst wakelock acquired by | Number of timesNetworkStats | 1Only the first app to acquire the wakelock is shown.Total wakelock duration is not attributed to only those apps listed.To enable full wakelock reporting, run:adb shell dumpsys batterystats --enable full-wake-history

2.2 长连接心跳电流
2.2.1 微信心跳波形
App Processor wakeupDec 1 202320:24:11 - 20:24:11+3m28s539ms to +3m28s539ms1 occurencesApp Processor wakeup | Number of timescom.tencent.mm | 1Partial wakelockDec 1 202320:24:11 - 20:24:11+3m28s575ms to +3m28s727msactive duration: 152ms3 occurencesWakelock_in | Number of times | Total duration | Actual event timesActivityManager-Sleep | 1 | 26m 17s 706ms | [20:20:54 - 20:47:12]MicroMsg.Alarm | 1 | 205ms | [20:24:11 - 20:24:11]PlatformComm | 1 | 510ms | [20:24:11 - 20:24:11]
| 55 | 20:24:09 | 56 | 20:24:10 | 1 | 32 | [大电流]20:24:11 com.tencent.mm 长链接 |


2.2.2 Smart push 心跳波形
2.2.1 正常心跳波形-波形时长2~4秒
开wifi+关数据流量,待机心跳

com.Smartui.mscoreservice} tag = *walarm*:com.Smartui.push.ChBVe7VPW4T2p6QsznlZoMP8EAEY1rwGIOKUBigB.2 flags = 5

2.2.2 异常心跳波形-波形时长20秒
【Smart push 重连现象】开WiFi和开数据流量,电流波形持续20s ,原因:重连+使用数据流量

20秒:11-27 19:06:02.267 1877 3150 D AlarmManager: deliverAlarm alarm = Alarm{5e4a755 type 0 origWhen 1701083161654 whenElapsed 3491329 com.Smartui.mscoreservice} tag = *walarm*:com.Smartui.push.RECONNECT flags = 5
| 一天总时间 | 起始时间 | 测试时长(s) | 结束时间 | 平均电流(mA) | 总电量消耗(uAh) | 底电流(mA) | |||
| 86400 | 19:02:20 | 1198 | 19:22:18 | 16.1 | 5941 | 9.91 | |||
| 波形偏移-Begin | 波形开始 | 波形偏移-End | 波形结束 | 波形持续时长 | 平均电流(mA) | 电量消耗(uAh) | 电量占比 | 唤醒源 | 联网相关 |
| 45 | 19:03:05 | 95 | 19:03:55 | 50 | 58 | 813 | 13.68% | time_fd\NETLINK | 联网相关 W System.err: java.security.InvalidKeyException: Key encoding is null |
| 265 | 19:06:45 | 285 | 19:07:05 | 20 | 80 | 454 | 7.64% | time_fd\SensorsHAL_WAKEUP | E SmartPush : [MQTT Sn...(292)][I][P][SmartPush-Heartbeat] resetPing |
| 820 | 19:16:00 | 844 | 19:16:24 | 24 | 72 | 489 | 8.23% | time_fd | E SmartPush : [main(2)][D][P][SmartPush-Heartbeat] Schedule same time: 1701084328434, Mon Nov 27 19:25:28 GMT+08:00 2023 |