一、待机电流波形
最干净的待机电流波形应该只有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 = false
11-30 11:17:27.660 1978 17686 D AlarmAlign: alignElapsed = 58957491
11-30 11:17:27.660 1978 17686 D AlarmAlign: alarmWhenElapsed = 59349294
11-30 11:17:27.660 1978 17686 D AlarmAlign: alarmMaxWhenElapsed = 59349294
11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->forceImportance:com.tencent.mm
11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm
11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowList
11-30 11:17:27.825 1978 17686 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importance
Partial wakelock
Nov 30 2023
11:17:27 - 11:17:27
+15h52m55s718ms to +15h52m56s220ms
active duration: 502ms
3 occurences
Wakelock_in | Number of times | Total duration | Actual event times
StnManagerCallback |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 = false
system.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.mm
system.txt:3383:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm
system.txt:3384:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowList
system.txt:3385:11-30 13:46:36.891 1978 17588 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importance
CPU running
Nov 30 2023
13:46:36 - 13:46:39
+18h22m04s781ms to +18h22m07s923ms
active duration: 3s 142ms
1 occurences
CPU running | Number of times | Total duration | Timestamps when wakeup reason was recorded
Abort: Pending Wakeup Sources: [timerfd] | 1 | 177ms | 13:46:36
Abort: Pending Wakeup Sources: IPA_CLIENT_APPS_WAN_COAL_CONS | 1 | 0ms | 13:46:36
App Processor wakeup
Nov 30 2023
13:46:36 - 13:46:36
+18h22m04s882ms to +18h22m04s882ms
1 occurences
App Processor wakeup | Number of times
com.tencent.mm | 1
Kernel only uptime
Nov 30 2023
13:46:36 - 13:46:36
+18h22m04s781ms to +18h22m04s958ms
active duration: 177ms
2 occurences
Wakeup reason | Number of times | Source CPU running event caused by userspace
Abort: Pending Wakeup Sources: [timerfd] | 1 | y
Abort: Pending Wakeup Sources: IPA_CLIENT_APPS_WAN_COAL_CONS | 1 | y
Partial wakelock
Nov 30 2023
13:46:36 - 13:46:37
+18h22m05s071ms to +18h22m05s575ms
active duration: 504ms
3 occurences
Wakelock_in | Number of times | Total duration | Actual event times
StnManagerCallback | 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 app
Nov 30 2023
13:46:36 - 13:46:37
+18h22m04s958ms to +18h22m06s051ms
active duration: 1s 93ms
1 occurences
First wakelock acquired by | Number of times
StnManagerCallback | 1
Only 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 = 68116921
system.txt:5734:11-30 13:54:12.408 1978 3273 D AlarmAlign: alarmWhenElapsed = 68384042
system.txt:5735:11-30 13:54:12.408 1978 3273 D AlarmAlign: alarmMaxWhenElapsed = 68384042
system.txt:5736:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->forceImportance:com.tencent.mm
system.txt:5737:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm
system.txt:5738:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm-->isInAllAllowList
system.txt:5739:11-30 13:54:12.585 1978 3273 D NotificationManagerSmartServiceImpl: setSmartImportanceForRecord-->com.tencent.mm,result is true,use app importance
CPU running
Nov 30 2023
13:54:12 - 13:54:15
+18h29m40s659ms to +18h29m43s653ms
active duration: 2s 994ms
1 occurences
CPU running | Number of times | Total duration | Timestamps when wakeup reason was recorded
Abort: Pending Wakeup Sources: [timerfd] [timerfd] | 1 | 0ms | 13:54:12
App Processor wakeup
Nov 30 2023
13:54:12 - 13:54:12
+18h29m40s788ms to +18h29m40s788ms
1 occurences
App Processor wakeup | Number of times
com.tencent.mm | 1
Kernel only uptime
Nov 30 2023
13:54:13 - 13:54:15
+18h29m41s772ms to +18h29m43s653ms
active duration: 1s 881ms
1 occurences
Wakeup reason | Number of times | Source CPU running event caused by userspace
Abort: Pending Wakeup Sources: [timerfd] [timerfd] | 1 | y
Partial wakelock
Nov 30 2023
13:54:12 - 13:54:12
+18h29m40s787ms to +18h29m41s291ms
active duration: 504ms
3 occurences
Wakelock_in | Number of times | Total duration | Actual event times
StnManagerCallback | 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 app
Nov 30 2023
13:54:12 - 13:54:13
+18h29m40s659ms to +18h29m41s772ms
active duration: 1s 113ms
1 occurences
First wakelock acquired by | Number of times
NetworkStats | 1
Only 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 wakeup
Dec 1 2023
20:24:11 - 20:24:11
+3m28s539ms to +3m28s539ms
1 occurences
App Processor wakeup | Number of times
com.tencent.mm | 1
Partial wakelock
Dec 1 2023
20:24:11 - 20:24:11
+3m28s575ms to +3m28s727ms
active duration: 152ms
3 occurences
Wakelock_in | Number of times | Total duration | Actual event times
ActivityManager-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 |