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

Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送

 
阅读更多

作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985

下面是一些知识点介绍,后期将会带领大家进行代码实战:

一、Android实现推送方式解决方案:

1、推送方式基础知识:
   在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们新的信息。由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在APP中了。

  当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。

  虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。

  在开发Android应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息。我们只需要在Android通知栏处向下一拉,就展开了Notification 面板,可以集中一览各种各样通知消息。
2、几种常见的解决方案实现原理:
  1)轮询(Pull)方式:应用程序阶段性的与服务器进行连接,并查询是否有新的消息到达。必须自己实现与服务器之间的通信,例如消息排队等。而且还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。
  2)SMS(Push)方式:在Android平台上,可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,并获取其中的内容进行处理。这是一个不错的想法,这个方案的好处是,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,需要向移动公司缴纳相应的费用。目前很难找到免费的短消息发送网关来实现这种方案。
  3)持久连接(Push)方式:这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。
  Android操作系统允许在低内存情况下杀死系统服务,所以我们的推送通知服务很有可能就被操作系统Kill掉了。 轮询(Pull)方式和SMS(Push)方式这两个方案也存在明显的不足。至于持久连接(Push)方案也有不足,不过我们可以通过良好的设计来弥补,以便于让该方案可以有效的工作。

3、 推荐解决方案:XMPP协议实现Android推送功能。

   XMPP:  Extensible Messageing and Presence Protocol
    XMPP是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。

  因为目前它是开源的,对于其简单的推送功能它还是能够实现的。
  事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。

  androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。经过源代码研究发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的。
4、主流解决方案:使用第三方平台:极光推送。
极光推送,英文简称 JPush,是一个面向普通开发者开放的,免费的第三方消息推送服务。 开发者只需在客户端集成极光推送 SDK,即可轻松地添加 Push功能到他的 App中。

二、极光推送服务具有如下的优势:
1)完全开放注册,免费向所有的开发者开放使用
2)SDK流量电量消耗很少
3)集成简单,很快就能够集成跑起来
4)服务器端推送并发量支持大、延迟小

三、操作步骤:
•第一步:创建极光推送开发者帐号
•第二步:Portal上创建应用
•第三步:下载应用Example
•第四步:把Example(Android项目)导入 Eclipse 里
•第五步:运行 Example 这个应用
•第六步:Portal上推送通知
•第七步:手机上收到通知
•第八步:Portal上推送消息
•第九步:在LogCat中查看收到的消息

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    极光推送demo

    在ThinkPHP框架中,极光推送的集成主要涉及到以下几个关键知识点: 1. **安装JPush SDK**:首先,你需要在项目中引入JPush的PHP SDK。通常,这可以通过Composer来完成,添加极光推送的依赖到composer.json文件中,...

    极光推送demo修改

    极光推送(JPush)是阿里巴巴旗下的一款高效、稳定、易用的移动消息推送服务,广泛应用于Android和iOS平台,帮助开发者实现一对多、实时的消息推送,提升用户活跃度和应用黏性。在本项目中,"极光推送demo修改"指的...

    jpush-client-3.2.3.rar

    极光推送(JPush)是一款在移动应用开发中广泛使用的第三方推送服务,它为开发者提供了高效、稳定、精准的消息推送功能,大大增强了应用与用户之间的互动性。本文将深入解析JPush客户端3.2.3版本的相关知识点,包括...

    百度推送源码(Android客户端+java服务器端)

    百度推送的Android SDK允许开发者轻松集成到自己的应用程序中,实现消息的接收和处理。`Baidu-Push-SDK-Android-L2-4.4.0.zip`包含了所有必要的库文件和文档。主要知识点包括: - **注册与认证**:客户端需要在...

    图片推送app demo

    综上所述,"图片推送app demo"的开发涵盖了网络编程、数据解析、图片处理、UI设计和智能穿戴设备适配等多个知识点。开发者需要熟练掌握Android SDK,理解HTTP请求和响应机制,懂得如何优化图片显示,同时具备一定的...

    Android SDK-26

    **Android SDK-26详解** Android SDK(Software Development Kit)是开发者进行Android应用程序开发不可或缺的工具集,它包含了编译、调试、模拟等所需的各种组件。SDK 26对应的是Android 8.0(代号Oreo),这是一...

    安卓Android源码——消息推送最新demo +服务器.zip

    3. **服务器端集成**:服务器端需要设置发送推送消息的能力,这可能涉及到使用FCM API或者第三方推送服务的SDK。通常需要处理设备Token管理、消息构建、错误处理等。 4. **消息格式**:FCM消息可以包含标题、内容、...

    Android应用开发详解

    通过"Android应用开发详解"的源代码,读者能够深入了解每个章节涉及的技术点,通过实际动手操作,进一步巩固理论知识,提升开发技能。这些代码实例涵盖了Android应用开发的多个方面,对任何希望在这一领域深入的人来...

    android 开发详解

    以上只是Android开发部分关键知识点,实际的学习过程中,你还需要不断实践、探索,结合提供的"android 开发学习资料"深入研究,逐步成为一名熟练的Android程序员。祝你在学习旅程中取得丰硕的成果!

    Android开发应用实战详解

    10. **第三方库集成**:许多第三方库如Retrofit、Dagger、RxJava、Room等,极大地简化了Android开发。学习如何引入和使用这些库,提升开发效率。 11. **Android测试**:单元测试、集成测试和UI测试是保证代码质量的...

    百度云手机消息推送

    ### 百度云手机消息推送知识点详解 #### 一、百度云推送Android_SDK概述 百度云推送Android_SDK是由百度提供的一套完整的开发工具包,旨在帮助开发者轻松集成云推送服务到自己的应用程序中。该SDK通过提供`.jar`包...

    最详细的Android开发教程实例

    13. **第三方库集成**:介绍如何引入和使用流行的开源库,如Glide进行图片加载,Retrofit进行网络请求,以及ButterKnife进行视图绑定。 14. **测试和调试**:涵盖单元测试、UI测试和 Espresso 测试框架的使用,以及...

    Android应用开发详解+源码

    6. **网络编程**:使用HttpURLConnection或第三方库如OkHttp进行网络请求,还有Android的Volley或Retrofit库用于更高级的网络操作。 7. **异步处理**:Android的AsyncTask或者现代的Coroutine用于后台任务执行,...

    Android开发应用实战详解+源代码

    在Android开发领域,实战经验与源...通过"Android开发应用实战详解+源代码"的学习,你将有机会实际操作以上知识点,通过阅读源代码加深理解,并且能够解决实际开发中的问题。这是一个很好的提升Android开发技能的机会。

    Android应用开发详解 11-18.rar 光盘内容

    - **第12章**可能讲解如何集成第三方库,如地图API(Google Maps SDK)、支付SDK(如Alipay、WeChat Pay)等。 - **第14章**可能深入到自定义视图和动画的创建,提升用户体验。 - **第15章**可能介绍Android通知...

    Android移动开发案例详解

    "Android移动开发案例详解"这本书,通过15个章节深入浅出地介绍了这个过程,旨在帮助新手和有经验的开发者提升技能。以下是对每个章节可能涉及的知识点的详细概述: 1. **Android开发环境搭建**:讲解如何安装和...

    Android移动开发案例详解代码

    本资源"Android移动开发案例详解代码"提供了一套详细的实践教程,涵盖了多个关键的Android开发知识点。以下是根据标题和描述,以及可能包含的文件内容,提炼出的相关技术点和学习重点: 1. **Android SDK**:作为...

Global site tag (gtag.js) - Google Analytics