`

Android 推送之原理与初触Androidpn(Android Push Notification)

阅读更多

由于最近项目中涉及到了android推送,所以看了一些关于android推送方面的东西,总结到后面我们知道android推送的实现可以归结为3种:

1、POLL,拉。大致思路为向服务器定时的发送请求,然后自己让服务器返回信息。

优点:实现简单。

缺点:实时性差。如果定时间隔小连接数又多,对服务器会有高压力要求。据说还会费电……不知道是不是真的。

 

2、SMS,彩信方式。据说是拦截彩信,并解析内容。这个还没有动手实践过。

优点:实现简单。实时性也好。

缺点:SMS服务的成本问题。贵!

 

3、TCP/IP,持久的长连接。简单的说就是与服务器建立一个基于TCP/IP持久连接,然后服务器就可以给你发消息了。

优点:实时性好。

缺点:实现起来比较困难。据说也会比较费电……也没测试过。

 

POLL的比较简单,用Timer和TimerTask定时器,以及HTTP相关的几个类就可以实现基本的功能,然后自己解析服务器返回信息。

主要是关于持久长连接的实现:1、基于IBM的MQTT实现。 2、基于XMPP实现

基于XMPP实现的有一个Androidpn项目,开源的。虽然后面项目中我采用了MQTT。因为Androidpn不够成熟,里面有一些bug,我暂时无法修掉。因为我只看了Android端的源代码,也许有些bug需要根据服务端修改。(困扰我很久的问题是服务器重启后androidpn手机端无法重连,暂时放下了,等有需要再去啃它

其项目源码在这里可以下:http://sourceforge.net/projects/androidpn/  进去之后的Files标签里有3个资源:

androidpn-server 服务器端代码

androidpn-demoapp 实例(说实话,没什么用)

androidpn-client 手机端代码

分享到:
评论
分享到:
评论
1 楼 wenjiefeng 2012-10-14  
你好,在andrioidpn-client客户端源码里,NotificationDetailsActivity这个类里,下面的参数都是什么意思呢
Intent intent = getIntent();
        String notificationId = intent
                .getStringExtra(Constants.NOTIFICATION_ID);
        String notificationApiKey = intent
                .getStringExtra(Constants.NOTIFICATION_API_KEY);
        String notificationTitle = intent
                .getStringExtra(Constants.NOTIFICATION_TITLE);
        String notificationMessage = intent
                .getStringExtra(Constants.NOTIFICATION_MESSAGE);
        String notificationUri = intent
                .getStringExtra(Constants.NOTIFICATION_URI);

      Log.i("test", "notificationId===============" + notificationId);
       Log.i("test", "notificationApiKey============" + notificationApiKey);
       Log.i("test", "notificationTitle============" + notificationTitle);
       Log.i("test", "notificationMessage=================" + notificationMessage);
       Log.i("test", "notificationDistance========distance=====111====" + notificationDistance);
       Log.i("test", "notificationUri===============" + notificationUri);

    疑惑1、   这几个参数代表什么意思呢,  notificationId;  notificationApiKey; notificationTitle;     notificationMessage;   notificationUri;
我看源码里好几处都用到这几个参数 ,

  疑惑2、  现在服务端已经能将消息推送到服务端了并增加了一些参数,推送的消息里增加了距离distance等参数,该在客户端的哪个类里获取这些值呢?

相关推荐

    Android Push Notification实现信息推送完整包

    在Android平台上,推送通知是应用与用户保持互动的重要方式,特别是在后台运行时...参考提供的资源,特别是`android push notification文档.docx`和`修正Demo`,能够加速这一过程,使你的应用具备高效的消息推送能力。

    基于androidpn设计的android远程推送demo

    基于AndroidPN(Android Push Notification)设计的Android远程推送Demo,是实现这一功能的一种具体实践。AndroidPN是一个开源项目,专门用于在Android设备上实现Google Cloud Messaging (GCM)或Firebase Cloud ...

    android push notification 下载即可运行

    在Android平台上,推送通知(Push Notification)是一种高效且节省资源的方式,用于向用户发送应用程序相关的实时信息,即使应用并未在前台运行。这个“android push notification 下载即可运行”项目表明,它提供了...

    Android推送框架 androidpn.doc

    AndroidPN(Android Push Notification)是一个基于XMPP协议的开源Android推送通知实现,它包括了客户端和服务器端的完整实现。XMPP(Extensible Messaging and Presence Protocol)是一种用于即时通信和在线状态的...

    Android 推送原理(Android Push Notification)详解

    Android推送原理,也被称为Android Push Notification,是一种在应用程序不运行时向用户传递信息的技术。它允许服务器端将数据推送到Android设备,即使应用在后台或完全关闭也能接收到通知。这种技术对于保持用户与...

    基于androidpn设计的android客户端远程推送demo

    AndroidPN(Android Push Notification)是专门为Android平台设计的一种远程推送服务,它允许服务器端向Android设备发送消息,即使应用在后台或完全关闭状态也能接收到通知。这种服务极大地提高了用户体验,因为用户...

    androidpn-client推送客户端

    AndroidPN(Android Push Notification)客户端是一款专门为Android操作系统设计的应用程序,用于实现远程服务器向设备推送通知的功能。在移动应用开发中,推送通知是一项至关重要的特性,它允许应用程序在后台状态...

    androidpn服务器推送

    AndroidPN(Android Push Notification)是Android平台上的一种消息推送服务,旨在帮助开发者实现在应用程序后台时仍然能够接收服务器发送的通知或数据。在AndroidPN服务器推送的实现中,有以下几个关键知识点: 1....

    Android push notification方案比较

    例如,AndroidPN是一个基于XMPP的开源Android推送实现。尽管XMPP提供了丰富的功能,但它也有一些挑战: - 重连机制:服务器重启后,客户端需要重新启动才能恢复推送。 - 复杂性:使用XMPP协议可能会显得过于复杂,...

    android推送服务器与客户端1

    - `androidpn-server-0.5.0-bin.zip`:AndroidPN(Android Push Notification)是一个开源的推送服务项目,可能提供了一个自建推送服务器的选项,供开发者学习和实践。 - `Client_Android.zip`:很可能包含了...

    Android push notification 服务端源代码

    AndroidPN(Android Push Notification)是一个开源项目,专注于提供服务端的解决方案,帮助开发者实现推送通知功能。这个压缩包包含的是AndroidPN服务端的源代码,而非编译后的二进制文件,因此可以让你深入理解其...

    androidpn 推送系统

    AndroidPN(Android Push Notification)是一种基于Android平台的推送通知服务,它允许开发者向用户的设备发送实时消息,即使应用在后台或完全关闭的状态下也能接收到这些消息。这种服务对于提高用户体验,保持应用...

    android推送开源框架

    AndroidPN,全称为Android Push Notification,是一个专门为Android平台设计的开源推送框架。它允许开发者轻松地在应用程序中集成远程推送通知服务,以便实时地向用户发送消息,无需应用程序处于前台运行状态。...

    Androidpn推送增强版

    AndroidPN(Android Push Notification)是专门为Android平台设计的一款推送服务,旨在提高应用程序的实时通信效率,减少应用在后台运行时对系统资源的占用。增强版的AndroidPN在基础功能上进行了优化,提供了更加...

    androidpn 消息推送客户端+服务器端

    AndroidPN(Android Push Notification)是一种基于XMPP协议的开源消息推送系统,专为Android平台设计。这个项目包含两部分:客户端应用和服务器端组件。在本文中,我们将深入探讨这两个部分以及它们的工作原理。 ...

    Android-Push-Notification:基于 AndroidPN 的 Android 推送通知

    基于AndroidPN 项目实现的的消息推送 特点 客户端服务器交互初始化 用户登录认证 客户端发起在线心跳通知 发送消息时若用户在线则直接发送,否则保存到数据库 服务器从数据库中获取未接收过的消息列表,循环发送同时...

    消息推送-androidpn

    AndroidPN(Android Push Notification)是一款专为Android平台设计的消息推送框架,它允许开发者实现在服务器端向客户端设备发送通知,极大地提升了应用的实时性和用户互动性。通过AndroidPN,开发者可以及时将新...

    androidpn消息推送

    AndroidPN(Android Push Notification)是一种基于Google Cloud Messaging (GCM) 的第三方消息推送服务,它允许开发者为Android应用实现远程消息推送功能。郭霖的教程是帮助开发者理解并实现这一服务的一个优秀资源...

    androidPN推送服务器

    AndroidPN(Android Push Notification)是一个为Android设备提供实时消息推送服务的开源项目。它允许开发者通过服务器向安装了特定应用的Android设备发送通知,无需保持应用程序在后台运行,从而节省设备资源并提高...

Global site tag (gtag.js) - Google Analytics