问题描述
Android设备是如何检测到新邮件、WhatsApp消息或推文的通知?这些通知是如何发送给用户的?是Android系统还是应用程序负责处理这一过程?具体发生了哪些底层操作?
解决方案
方案1
关键点
- Android设备与Google服务器保持持续的轻量级连接。
- 通知由应用开发者服务器(如Twitter、Facebook、Gmail等)发送至Google服务器。
- Android设备接收到通知后下载并显示。
详细步骤
- 建立持续连接
Android设备通过Google Play服务与Google服务器保持持续的轻量级连接。这种连接非常节省数据和电量。
接收通知
- 当Google服务器接收到新邮件、WhatsApp消息或推文等事件时,会将这些通知发送给Android设备。
Android设备接收到通知后,会下载并解析这些数据,然后将其打包成意图(Intent)广播,最终被相应的应用程序接收。
保持连接
- 即使在设备处于“闲置”模式下,TCP连接仍然保持打开状态,这意味着应用程序不需要一直运行在后台以检查通知。
方案2
关键点
- 使用Google Cloud Messaging (GCM) 服务进行消息推送。
- 应用程序注册至GCM服务器,而目标服务(如Gmail、Google+等)也注册至同一服务器。
- GCM服务器作为中介,根据事件类型向注册的应用程序发送通知。
详细步骤
- 注册服务
- 应用程序在设备启动时注册至GCM服务器,并告知其注册目的。
目标服务(如Gmail、Google+等)也注册至GCM服务器。
消息推送
- 当目标服务有新事件时,GCM服务器会向注册的应用程序发送通知。
注册的应用程序接收到通知后,会被唤醒并处理新的消息。
节省资源
- 由于只由Google服务应用维持单个网络连接,而不是每个应用程序都维持自己的连接,因此可以节省数据和电量资源。
综上所述,Android设备通过Google Cloud Messaging (GCM) 服务与应用开发者服务器之间的消息推送机制,实现了新邮件、WhatsApp消息或推文等通知的实时提醒。这一机制不仅节省了数据和电量资源,还简化了应用程序的开发和维护工作。
正文完