作者:程序员小冰,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 ProtocolXMPP是目前主流的四种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中查看收到的消息

转载于:https://www.cnblogs.com/mcxiaobing/p/5907360.html

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

  1. Android开发中dip,dpi,density,px等详解

    Android开发中的各种单位的解释 Px (Pixel像素) 也称为图像元素,是作为图像构成的基本单元,单个像素的大小并不固定,跟随屏幕大小和像素数量的关系变化(屏幕越大,像素越低,单个像素越大,反 ...

  2. Android开发之如何在App间安全地共享文件(FileProvider详解)?

    [版权申明]非商业目的可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/103125707 出自:shusheng007 相关 ...

  3. iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录无需密码)

    1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享: http://www.cnblogs.com/qingche/p/3727559.html 可以 ...

  4. iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)

    链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...

  5. 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!

     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigame.com/android-game/327.html 很多童鞋说 ...

  6. android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)

    前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...

  7. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(一)

    文章大纲 引言 一.Android Storage Access Framework 二.Storage Access Framework 的主要角色成员 1.Document Provider 文件 ...

  8. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)

    文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...

  9. python是否高送转预测股票_详解:如何深度挖掘高送转板块(附:2018年高送转个股预测)...

    原标题:详解:如何深度挖掘高送转板块(附:2018年高送转个股预测) 不知不觉又到了11月份,又到了高送转板块表现的时候.今天上午小编主要为大家详解高送转板块:什么是高送转.炒作的几个阶段.如何选择有 ...

最新文章

  1. 百度云android隐藏空间,一招教你使手机端百度网盘中的隐藏空间在文件列表中显示出来...
  2. 第10章:项目沟通管理和干系人管理-章节重点
  3. boost::mpl模块实现if相关的测试程序
  4. 太惨了,今年没年终奖了!
  5. BZOJ 1673 [Usaco2005 Dec]Scales 天平:dfs 启发式搜索 A*搜索
  6. 绿色版Tomcat的配置
  7. 蓝桥杯真题 Python A组 路径
  8. 计算机房英语谐音,机房英语
  9. 《计算机操作系统》(第四版)大全总结
  10. 【English】语法之句子种类(陈述句、疑问句、祈使句、感叹句)
  11. “collect2: error: ld returned 1 exit status“解决方法
  12. python调用so库
  13. 哪款蓝牙耳机适合运动的时候戴?佩戴舒适的蓝牙耳机推荐
  14. 一日精通python编程_爱上Python:一日精通Python编程
  15. android制作3d打印机,基于Rayland主板的3D打印机指令控制Android(部分)实现
  16. 全媒体运营师胡耀文教你:2021年活动运营5大核心要素
  17. 自己眼中的程序员VS别人眼中的程序员
  18. Gym - 101291I Mismatched Socks(贪心)
  19. 去IOE运动-正在路上
  20. uboot中利用TFTP和NFS加载镜像到ram运行

热门文章

  1. PHP关于进程池的优化
  2. 对RTMP视频流进行BitmapData.draw()出错的解决办法
  3. [转]程序员生涯总结
  4. ASP.NET 购物车
  5. 互联网工作原理(17.网络电视是如何工作的)
  6. 一条python语句实现BGR图像转RGB图像
  7. dao加service加mysql实例_SpringBoot项目整合mybatis的方法步骤与实例
  8. MyBatis的foreach语句详解
  9. httpclient3.1的多线程处理
  10. linux内核网络协议栈--2层报文处理(十七)