`
gaojingsong
  • 浏览: 1200912 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Android平台下几种推送方案】

阅读更多

一、使用GCM(Google Cloude Messaging)

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

优点:Google提供的服务、原生、简单,无需实现和部署服务端。

缺点:1.要求Android 2.2以上,对于不少2.2以前的系统没法推送;

     2.国内服务不稳定。而且不少国内的终端厂商纷纷把Google的服务去掉,替换上自己的。

     3.需要用户绑定Google账号,但不少国内用户没有Google账号。

 

二、使用XMPP协议(Openfire+Spark+Smark)

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性,有很强的可扩展性。包括上面讲的GCM服务器底层也是采用XMPP协议封装的。

优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。

缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。

 

而androidpn(Android Push Notification)就是基于 XMPP 开源组件的一套整合方案,服务端基于Openfire、客户端基于Smack。到AndroidPN项目主页( http://sourceforge.net/projects/androidpn/ ) 下载2个文件: androidpn-server-0.5.0-bin.zip 和 androidpn-client-0.5.0.zip 分别是服务器和客户端的代码。详细的实现方式网上有不少文章。

  1.androidpn服务端重启后客户端不会重连,这个非常悲剧

  2.由于服务器不保存消息,造成了如果客户端当前离线就收不到消息

  3.androidpn发送完消息就不管了,所以没有消息回执报表之类,造成没法做应用后续的数据分析用户体验的改善,这对于企业级的应用是个致命伤。

 

XMPP协议比较费电费流量,这个对当前智能机的消耗太大,在窄带网络和不稳定的(手机)网络都不是最优的选择。但总体来说,XMPP协议还是比较成熟的。

 

三、使用MQTT协议(想了解更多可以看http://mqtt.org/)



 

轻量级的、基于代理的“发布/订阅”模式的消息传输协议。

优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考: http://mqtt.org/software),且已有C++版的服务端组件rsmb。

缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

 

四、HTTP轮循方式

定时向HTTP服务端接口(Web Service API)获取最新消息。

优点:实现简单、可控性强,部署硬件成本低。

缺点:实时性差。

成本大,需要自己实现与服务器之间的通信,例如消息排队等;

到达率不确定,考虑轮询的频率:太低可能导致消息的延迟;太高,更费客户端的资源(CPU资源、网络流量、系统电量)和服务器资源(网络带宽)

 

五、采用第三方服务

就是前面介绍的第三方推送,客户端只需要导入第三方提供的lib库,有第三方管理长连接,负责消息的接收/发送。同时对消息都有比较详细的报表数据,可以用于做数据分析、挖掘,改善用户体验。

 

六、SMS信令推送

原理 基于Push方式

具体描述

服务器有新消息时,发送1条类似短信的信令给客户端,客户端通过拦截信令,解析消息内容 / 向服务器获取信息

 

优点

可实现完全的实时操作

缺点

成本高(主要是短信资费的支出)

 

 

推送的原理主要是2种方式:Push 和 Pull


 

  • 大小: 54 KB
  • 大小: 63.4 KB
0
0
分享到:
评论

相关推荐

    Android几种消息推送方案总结

    现在总结下Android平台下几种推送方案的基本情况以及优缺点: 一、使用GCM(Google Cloude Messaging) Android自带的推送GCM可以帮助开发人员给他们的Android应用程序发送数据。它是一个轻量级的消息,告诉Android...

    android推送解决方案

    Android 推送解决方案是指在 Android 平台上实现推送功能的各种方法和技术。推送功能是在移动互联网时代中的一种常见的技术,主要应用于各类移动应用程序中,以便实时地将服务器端的最新信息推送到客户端。 1. 推...

    Android实现推送方式解决方案系列教程

    在探讨Android实现推送方式解决方案的过程中,我们聚焦于XMPP协议这一关键知识点,深入解析其在Android推送机制中的应用。XMPP(Extensible Messaging and Presence Protocol)作为一种基于XML的即时通讯协议,不仅...

    Android消息推送的完美解决方案

    本文将探讨几种常见的Android消息推送解决方案,以及它们的优缺点。 首先,消息推送分为Pull(拉)和Push(推)两种方式。Pull方式是客户端定期向服务器请求新数据,而Push方式则是服务器在有新数据时直接推送给...

    Android推送实现方案探讨

    综上所述,Android平台上的推送技术实现方案多样,开发者需要根据自身项目的具体需求和技术条件选择最适合的方案。无论是官方提供的GCM服务、基于XMPP协议的自建方案,还是选择第三方推送服务,都旨在为用户提供更加...

    Android平台下基于泛型的南京青奥会赛事异步推送方案的设计.pdf

    【Android 平台下的赛事异步推送方案设计】 在Android平台上设计一款针对南京青奥会赛事的异步推送系统,可以有效地将赛事信息实时、高效地推送给用户,提升用户体验。该设计方案主要涉及以下几个关键知识点: 1. ...

    Android 推送代码整合

    Android推送主要分为以下几种方式: 1. **云消息推送(如Firebase Cloud Messaging, FCM)**: 谷歌提供的官方推送服务。 2. **第三方推送服务(如个推等)**: 第三方服务商提供的推送解决方案。 3. **自建服务器推...

    Android实现几种推送方式解决方案

    本文将深入探讨几种在Android中实现推送方式的解决方案,以及它们各自的优缺点。 首先,我们需要理解推送方式的基础知识。在移动互联网之前,手机通常依赖窗口弹出式通知来提醒用户新事件。随着技术的发展,推送...

    android xmpp的消息推送

    在Android平台上,使用XMPP进行消息推送可以实现高效、可靠的通知服务。 首先,我们来理解一下客户端的实现。在Android客户端中,你需要集成一个XMPP库,如Smack或XMPPTCPConnection。这些库提供API,用于建立与...

    推荐几款好用的android安卓app消息推送三方库.zip_android六大布局

    例如,基于XMPP的推送方案可以支持多方多端即时通讯,适用于聊天应用或者需要实时交互的场景。开发者可以利用XMPP协议来创建自定义的推送服务,实现更加灵活的消息处理。 此外,Android原生的Cloud to Device ...

    Android-fpush-基于Nettyprotobuf实现的即时消息推送服务

    本项目"Android-fpush-基于Nettyprotobuf实现的即时消息推送服务"就是这样一个解决方案,它利用了Netty框架和Protocol Buffers(protobuf)技术来高效、稳定地实现这一功能。 Netty是一个高性能、异步事件驱动的...

    大数据云推送平台解析

    大数据云推送平台是指运用大数据技术实现云服务中的一种,主要是向移动应用推送消息的云服务技术。推送技术是移动应用中一项十分重要的功能,它允许应用在不启动的情况下向用户发送信息,这一过程一般基于云端服务器...

    Openfire 推送(Android + iOS)

    在移动应用开发中,尤其是在Android和iOS平台上,为了实现消息的即时推送,Openfire 提供了集成推送服务的功能。下面将详细解释如何使用Openfire为Android和iOS设备实现推送功能。 首先,了解XMPP和推送服务的基本...

    Android应用源码之激光推送客户端demo.zip

    2. **Android推送服务机制**:Android系统提供了GCM(Google Cloud Messaging)和FCM(Firebase Cloud Messaging)作为官方的推送服务,但激光推送可能提供了更高效、定制化的解决方案。推送服务的工作原理是,...

    Android推送实现

    Android平台上的推送服务主要包括Google官方提供的C2DM(Cloud to Device Messaging)以及第三方服务提供商的解决方案。 #### 二、C2DM推送服务 C2DM是Google为Android 2.2及以上版本系统提供的推送服务标准,它...

    基于MQTT的移动推送解决方案

    基于此背景,本文将深入探讨MQTT协议及其在移动推送领域的应用,重点讲解MQTT原理、优势以及如何设计一套高效的移动推送方案。 #### MQTT介绍 MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅...

    U盟消息推送_phpios推送_php安卓推送_thinkphp推送

    首先,"U盟消息推送"是一种第三方推送服务,它提供了一整套跨平台的消息推送解决方案。U盟可能提供API接口和SDK,开发者可以通过集成这些工具,轻松地将推送功能添加到自己的应用程序中。U盟通常支持多种操作系统,...

    XMPP消息推送Demo【服务器+客户端】

    总的来说,这个XMPP消息推送Demo提供了完整的服务器和客户端解决方案,帮助开发者快速理解和实践Android应用中的消息推送功能。通过学习和修改这个Demo,开发者可以为自己的应用构建可靠的推送通知系统,提高用户...

    android消息推送机制

    在Android平台上,消息推送机制是应用开发者用于实时与用户交互的重要技术。它允许服务器在用户不直接使用应用程序时,向用户的设备发送通知或数据。这种机制对于提高用户体验、提升用户粘性和实现即时通信功能至关...

Global site tag (gtag.js) - Google Analytics