Google的三代移动消息服务

工作以来的推送经验,有最初的运营性人工消息推送,兴奋于创新、恰当且高点击率的文案;也有今年持续地从产品上优化消息服务,头疼于历史业务的错综复杂、数据的缺失和第三方服务的不完善……

想到移动应用消息推送服务的发展历史并不久远,不如干脆彻底梳理下相关的知识,以为后用。

第一篇是关于Google旗下Android系统的官方消息服务,从2010年至今历经三代演变。

Google官方消息服务属于Android系统级服务,与苹果的APNs类似,第三方应用的服务器把消息发送给谷歌的服务器再转接到各个设备,相应的应用就可以获取通知。

相比于应用自己维护的长连接,或是第三方消息推送服务,系统级服务能更好地节约内存、节省电量,同时克制Android系统使用体验碎片化的问题。

不过,一般的认知里,由于众所周知的原因,谷歌的消息服务在国内并不能很好地运行,往往需要翻墙才能实现。

对此,我做了些梳理,希望从Google的三代消息服务的变化,了解Android系统官方消息服务的特点与现状,后续也将对苹果官方的APNs、国内手机厂商、第三方公司,以及最近的统一推送联盟(UPS)各自的消息服务进行梳理。

1.第一代消息服务C2DM

2010年5月20日,Google在Android 2.2(Froyo冻酸奶)推出第一代云消息服务C2DM(Android Cloud to Device Messaging),允许第三方应用开发者借此推送(Push)少量数据消息(1024bytes)到Android应用程序和Chrome扩展程序。

C2DM注册与发送过程

C2DM服务本质上是基于XMPP协议的一套标准API机制,与Gmail等共享进程服务;

是当时Android上最好的推送解决方案,使用简单,服务器负载均衡,消息队列处理都交给Google服务器;

使用C2DM服务的Android设备,需要登录Google的账户,并安装电子市场(Market Application);

2013年,一个名为a.privacy.tispy(窃私骷髅)的病毒使用C2DM服务向用户手机发送控制指令,偷偷上传用户通话录音、地理位置、短信、彩信、联系人等到指定远端服务器,大量热门手机游戏、应用感染病毒。

直到2014年,国内开发者依然可以使用该服务,只是不稳定,发送慢,使用国外服务器效果更好。

2012年6月,Google发布GCM服务(Google Cloud Messaging)后,当年8月宣布正式弃用C2DM服务,并发布文档以协助开发人员迁移到新服务。2015年10月20日Google完全关闭了C2DM服务;

2.第二代消息服务GCM

2012年6月27日,Google在Android 4.1(Jelly Bean)推出第二代消息服务GCM(Google Cloud Messaging),引用了对身份验证和交付的改进,新的API端点和消息传递参数,以及消除了API发送速率和消息大小的限制。

GCM消息交互类型

GCM使用服务器API和SDK运行,均由Google维护,并且是独立的进程;

GCM在Google I / O 2013之前宣布支持Chrome,在I / O 2015上宣布支持iOS;

GCM支持2种方式实现消息推送,xmpp可以实现服务器与客户端消息的双向推送。http,只能从服务器将消息推送给客户端;

开发者最多可以使用4KB的有效负载数据发送较大的消息;

GCM不提供任何内置的用户界面或其他消息数据的处理, 而是直接将消息交由Android应用处理,包含了收到消息的完整原始数据,由应用自行实现处理逻辑(通知栏、站内信等);

GCM服务需要在Android 2.2+运行,但不限于通过Google Play安装的应用程序使用,对于Android 3.0之前的设备,需要建立用户的Google帐户,Android 4.0.4+设备,Google帐户不是必须的;

2018年4月,Google宣布最快将在2019年4月11日移除GCM服务器和客户端API,取而代之的是在2016年的I/O大会上推出的第三代消息服务FCM(Firebase Cloud Messaging)。

3.第三代消息服务FCM

FCM服务由Google的子公司Firebase提供。2014年10月21日,Firebase宣布已被谷歌以未披露的金额收购。2016年的I/O大会上Google正式推出的第三代消息服务FCM。

FCM支持通知消息和数据消息(应用内消息),这两种消息类型的有效负载上限均为 4KB,但从 Firebase 控制台发送消息时,系统会强制执行 1024 个字符的限制;

FCM支持不可折叠消息和可折叠消息、普通优先级和高优先级、最长28天有效期等;

FCM可以使用三种方式将消息分发到客户端应用:分发至单一设备、分发至设备组,或分发至订阅了主题的设备;

FCM支持使用 A/B 测试来试用不同版本的通知消息;

FCM的Web支持扩展到了Chrome以外的其他Web浏览器,包括Firefox和Opera。

比较遗憾国内无法方便地使用Google官方的移动推送服务,好在市场上还有些不错的服务商,工信部牵头成立的统一推送联盟也进入内测阶段了,值得期待。

如今国内移动互联网流量红利耗尽,众多企业选择出海东南亚、非洲、中东的大趋势下,海外产品在Android和Web端使用Google的移动推送服务,依然是一个不错的选择。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181204G03CBQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励