Android是否支持近实时推送通知?

我最近了解到iPhone应用程序接收几乎即时通知给应用程序通知的能力。

这是以推送通知的形式提供的,这是一个定制的协议,它始终保持与iPhone的数据连接,并向应用程序发送二进制数据包,从服务器应用程序发送到电话应用程序0.5到5秒之间,该应用程序以惊人的速度快速弹出警报响应时间。 这是作为数据(而不是SMS)发送的,非常小的数据包作为数据计划的一部分而不是作为传入消息收取。

我想知道使用Android是否有类似的功能,或者是否可以使用Android API来实现接近此功能的东西。 为了澄清,我定义类似于:

  • 不是短信,而是一些数据驱动的解决方案
  • 尽可能实时
  • 是可扩展的,即作为移动应用程序的服务器部分,我可以在几秒钟内通知数千个应用程序实例
  • 我很欣赏这个应用程序可以基于拉,HTTP请求/响应风格,但理想情况下,我不想仅仅为了检查通知而投票; 除此之外,它像滴水一样消耗数据计划。


    Firebase云消息传递FCM常见问题解答是GCM的新版本。 它继承了GCM的核心基础架构,可在Android,iOS和Chrome上可靠地传递消息。 不过他们会继续支持GCM,因为很多开发人员今天都在使用GCM SDK来处理通知,而客户端应用升级需要时间。

    截至2012年6月26日,Google Cloud Messaging是向设备上运行的应用程序发送消息的首选方式。

    之前(现在已弃用),该服务被称为“云到设备消息传递”。


    XMPP是一个很好的解决方案。 我已经将它用于启用实时Android应用程序。 XMPP功能强大,可扩展性强,易于集成和使用。

    有大量免费的XMPP服务器(尽管出于礼貌你不应该滥用它们),并且有一些开源服务器可以在你自己的盒子上运行。 OpenFire是一个很好的选择。

    你想要的图书馆不是Smack,如上所述,这是一个小问题。 但请注意,这是一个构建环境 - 您将不得不构建库。

    这是我对XMPP解决方案的电池寿命影响的计算:

    Android客户端必须通过周期性唤醒来向XMPP服务器发送心跳来维护持续的TCP连接。
    这显然会在用电方面带来成本。 这个成本的估计如下:

  • 使用1400mAh电池(Nexus One和HTC Desire提供)
  • 连接到3G网络的闲置设备使用大约5mA
  • 唤醒,心跳,睡眠周期每5分钟发生一次,需要3秒完成并使用300mA
  • 因此每小时电池使用成本为:
  • 36秒300mA = 3mAh发送心跳
  • 3600秒5mA =空闲时5mAh
  • 4:95 + 3 = 7:95mAh
  • 一块1400mAh的电池在空闲时间约为11.6天,在运行该应用时约为7.3天,这表示电池寿命缩短了约37%。
  • 然而,由于设备很少完全闲置,37%的电池寿命缩短表示绝对最差的情况。

  • 我最近开始使用Android的MQTT http://mqtt.org作为您要求的一种方式(即,不是SMS而是数据驱动的,几乎即时的消息传递,可扩展的,不是轮询等)

    我有一篇关于这方面的背景资料的博客文章,以免它有用http://dalelane.co.uk/blog/?p=938

    (注意:MQTT是一项IBM技术,我应该指出我为IBM工作。)

    链接地址: http://www.djcxy.com/p/62391.html

    上一篇: Does Android support near real time push notification?

    下一篇: Facebook SDK app crash after login onActivityResult Android