background image

安卓推送技术探讨

背景介绍
随着苹果产品的风靡,推送技术在国内也越来越热门。推送最开始用于邮件系统。随着

iPhone 和 Android 手机的风靡,逐渐在手机上也越来越常见。不少手机客户端也时常推送
一些消息。

推送技术的应用
推送技术在手机上的应用主要有两块:广告推送、SNS 信息推送。

广告推送:给目前有一定安装量但没有盈利模式的手机应用开发者带来了一定希望,但
要注意推送的频度和内容选中,不然会因为推送的东西用户不感兴趣造成打扰。

SNS 信息推送:主要用于 QQ 空间、人人网、微博和天涯论坛等 web2.0 社区网站推送
好友的留言等,可以用来提升用户黏性。

客户端////服务器通信的两种方式:
服务端和客户端推送有两种方式,分别是 Pull 和 Push。

Pull :由客户端定时访问服务器,询问是否有新信息。而 Push 则在手机客户端和服务
器之间建立持久连接通道,服务端一有消息就通过通道发给手机。

Push:相比 Pull,Push 推送的消息是实时的,而且更节省手机的电量和流量,不需要定
时访问服务器。

Pull 轮询方式一般信息会有 1 到 10 分钟不等的延时,

且耗电量也比 Push

方式消耗得多。

Android/iOS

Android/iOS

Android/iOS

Android/iOS 推送比较

相比 Android,iOS 的推送服务要稳定,因为 Android 操作系统用户可以自己杀死服务,

这样就造成了手机接收不到通知消息。苹果 APNs(Apple Push Notification Service)的流程
如下:

1、应用程序注册消息推送。

2、iOS 从苹果推送服务器(APNs)获取 device token(设备令牌,用于标识设备)

,应

用程序接收 device token。

3、应用程序将 device token 发送给第三方 Push 服务端程序。

4、服务端程序向 APNS 服务发送消息。

5、APNS 服务将消息发送给 iPhone 应用程序。

推送解决方案
目前 Android 上主要的推送实现方案有以下几种:
方案一、Google

Google

Google

Google Cloud

Cloud

Cloud

Cloud Messageing

Messageing

Messageing

Messageing

Google 在 Android 上标配了自己的推送 GCM(Google Cloud Messageing)

,可以帮助开

发人员给他们的 Android 应用程序发送数据。它是一个轻量级的消息,告诉 Android 应用程
序有新的数据要获取从服务器,或者它可能是一个消息,其中包含了 4KB 的 payload data(像
即时通讯这类应用程序可以直接使用该 payload 消息)。GCM 服务处理排队的消息,并把消
息传递到目标设备上运行的 Android 应用程序。

GCM 的推送消息的流程如下图: