GCM(Google Cloud Message for Android)是Google发布的Android服务器推送(push)技术。之前的C2DM(Android Cloud to Device Messaging)已与2012年6月26日被正式弃用,使用GCM,需要申请开通Google apis,Google apis包括了所有Google服务的api,比如Google Map、Google+、Analytics、YouTube等等,申请地址为: Google API 网站
GCM有以下特点:
- 可以使用第三方应用服务器向Android应用推送消息
- GCM不保证发送的消息的顺序,也不保证消息一定能够推送到手机(恩,谁也不能保证100%)
- Android应用不需要运行就可以接收消息(是的,你没有看错,因为gcm被集成到系统中了,目前一些第三方的推送是在后台运行一个service维持长连接,与这些第三方推送相比,GCM不额外的耗电)
- GCM只传递的数据(可以传递小于4kb的数据),对这些数据的处理可以全部由开发者控制(Google不对数据进行任何处理,仅仅转发一下而已)
- 对于Android4.04以上的系统使用GCM没有任何限制(国行手机也可以使用,截止2013年02月04日,android4.0+的份额为42.6%,随着4.0+版本的提升,Android的推送不再成为一个问题 Android版本分布),Android2.2以上的系统需要安装Google Play Store,Android2.2以下的系统不能够使用GCM
- 对于Android3.0以前的系统,需要在设备上设置google账号
- gcm一次最多只能向1000部设备发送消息,没有提供向所有用户发送的接口(可能google认为向应用程序推送的消息都是与该用户相关的,如果你非要实现群发,一次发送1000个用户,多发送几次就行了)
GCM使用流程如下图所示:
App是运行在Android手机上的应用程序,GCM Server是Google的GCM服务器,Our Server是第三方应用服务器。具体流程如下:
- App发送 SenderID到GCM Server注册接收推送信息(SendID是开发者在Google的网站开通GCM服务时,创建项目的项目号)。
- GCM Server 向App返回RegId(RegId是GCM服务器通过一定算法生产的,可以唯一确定某一部手机上的某一个应用,这个RegId很重要)。
- App向Our Server发送RegId(推送消息的时候要使用RegId,GCM服务器是使用RegId来确定某一部手机上的某一个应用接收消息的,所以第三方服务器需要保存它,需要注意的是RegId很长,比如可能有183位,存数据库时需要注意字段长度)
- Our Server向GCM Server发送消息,传递appkey和RegId(appkey分为Oauth api key和simple api key)
- GCM Server把消息推送给App
相关推荐
AesTestTool为加密软件,支持GCM 和 ECB两种模式 128bit秘钥 GCM算法是一个C++工程,“C++gcm算法工程”目录里面有源码 加密软件是用C#写的,所以把C++工程编译成了dll文件,由C#调用 “软件工程目录”文件夹是...
AES GCM算法,可以编译通过执行,没看懂
aes gcm siv 256 算法加密解密源程序,GitHub源码
GCM加密的源码,实现AES—GCM加密模式
主要是aes-gcm算法实现的code,详细描述gcm算法的各部分实现过程
AES GCM 128 bit加密算法工程源码,C++语言实现,希望能够帮助到大家
在工作中会经常遇到密码加密,URL传参要进行加密,在此我参照一个例子将用java实现的AES加解密程序用实例写出。JS实现AES-GCM加密,java实现AES-GCM解密
AES GCM,ECB,KeyWrap算法调试工具,C#语言实现,平时调试加密算法自己写的一个小工具,附工程源码
做国外电表DLMS加解密必用的算法,费劲我几个月的整理修改,总算把这GCM-AES-128的加解密算法和密钥传输的包裹算法弄好。算是商业机密吧,呵呵!据说有厂家为数据传输加解密前前后后搞了2年。 压缩包里有三个代码...
高版本AES-GCM模式加密的Shiro漏洞利用1
gcm python算法 包含aes128 狂欢,
aes128-gcm 电表相关加密算法源码
google在今年六月份发布了新的推送机制GCM,取代C2DM.
加密认证联合模式的源代码,加密认证的加密算法均采用AES加密。包含了EAX GCM CCM三种联合加密认证的算法资源文件。
详细介绍了GCM及其在软硬件中的实现,并描述了使用方法,最后还列出了18种Test Case供测试使用
详细介绍了GCM开发步骤与注意事项等,对初步接触GCM的童鞋蛮有作用的
包含android推送服务GCM发开源代码,非jar包内容
AES-GCM是当前最新的AES算法的一种加密和认证的模式,利用AES进行数据加密和解密,利用GHASH进行身份验证,更加安全可靠。
nist-300-83D-(Galois Counter Mode (GCM)) Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC