如果移动3G每30分钟检查一次互联网,为什么推送消息会立即到来?

If mobile 3G checks Internet every 30 min, how come push messages come immediatelly?

当设备使用移动互联网(3G、4G)时,每 30 分钟连接一次互联网。这可以从电子邮件中看到,而不是一个接一个地发送电子邮件,就像设备连接到 Wi-Fi 时(除其他外)。

为什么聊天应用程序(环聊、whatsapp、viber 等)的推送消息会立即出现?

我实际上注意到,当我使用移动数据连接时,只有 Skype 消息不会立即收到。其他人立即到来。

When a device is using the mobile Internet (3G, 4G), it connects to Internet every 30 minutes. This can be seen with emails coming in a bunch instead 1 by 1 like when a device is on wi-fi (among other things).

这只是意味着这些应用程序恰好每 30 分钟提取一次数据,无论是通过 AlarmManagerJobSchedulerSyncManager 还是其他方式。他们可以轻松地将 AlarmManager 投票周期设置为 27 分钟、2.7 分钟或 27 天。

How come that push-messages for chat apps (hangouts, whatsapp, viber,...) come immediately?

在 Play Services 生态系统设备上,他们要么使用 GCM(保持开放的套接字连接),要么使用自己的 GCM-workalike(保持开放的套接字连接,无论他们可以保持服务多长时间) 运行),或者他们正在使用类似 AlarmManager 的短轮询周期(这对电池来说真的很糟糕,但这并不能阻止人们)。

在 Kindle Fire 上,他们可能使用亚马逊的 GCM 等价物

移动数据的有趣之处在于打开的套接字连接上的传入数据包会唤醒 CPU。从那里,这些数据包的目标应用程序可以获取 WakeLock 以便能够有时间处理这些数据包。 WiFi 插座通常会在 CPU 进入休眠模式时断开连接,部分原因是 WiFi 无线电本身通常会在大约同一时间进入休眠模式,以节省电量。

I actually noticed that only Skype messages do not come immediately when I am on the mobile data connection.

出于竞争原因,Skype 可能不会使用 GCM。我有点惊讶他们没有使用他们自己的类似 GCM 的变通服务(例如,基于 MQTT)。