你的位置:论文发表 >> 论文下载 >> 计算机论文 >> 计算机应用 >> 详细内容 在线投稿

Android 平台消息推送技术的应用研究

浏览176次 时间:2015年3月23日 16:35

静 赵朝辉 南宁职业技术学院 530008

【文章摘要】

消息推送技术在当前移动互联网领域智能终端的应用非常广泛,如手机上的新闻客户端通过推送新的消息,使用户方便获知最新的新闻信息。本文介绍Android 实现推送方式和基于XMPP 协议的开源信息推送框架AndroidPn 的相关知识,并结合一个Android 校园应用消息推送案例讨论相关的技术实现。

【关键词】

Android XMPP 协议;推送技术; AndroidPn

随着信息技术和移动互联网络的高速发展,智能手机、平板电脑等各种智能移动终端已在人们的生活中普及开来,面向手机、平板等移动平台开发的应用也在相互竞争中呈现爆炸式的增长,越来越多的应用服务提供商使用消息推送这种技术,实现服务器主动向客户端发送数据,以提高应用的留存率。例如手机上的新闻客户端通过推送新的消息,向用户提供最新的新闻信息。

本文介绍Android 实现推送方式和基于XMPP 协议的开源信息推送框架AndroidPn 的相关知识,并结合一个Android 校园应用消息推送案例讨论相关的技术实现。

1 Android 平台的推送机制1575932840

推送技术的实现主要有以下三种方式:

1.1 轮询(Pull) 方式

当客户端以一定的频率主动与服务器端连接并查询有无最新消息到达时,可以实现推送效果。如果频率过快就会消耗大量的电量和流量,如果频率过慢就会导致更新不够及时。假设终端所有应用都采用该方式显然是无法忍受的。

1.2 SMS(Push) 方式

更新消息可以以短信指令的方式推送,Android 系统拦截分析指令后再有客户端发起请求拉取最新数据。这种方案非常稳定可靠但是成本较高必须向电信运营商缴费才能获得短信发送接口,当用户卸载应用程序后,服务器端并不能及时知道很可能会导致用户收到指令短信引起反感。

1.3 持久连接(Push) 方式

这个方案实现移动推送性价比较高的一种方式,具有综合性能稳定、价格低廉、消耗终端电量流量较低的优点,可以有效的解决以上两种方案存在的问题,因此吸引了大量软件开发人员。现在主要有基于 MQTT 协议和 XMPPExtensible Messaging and Presence Protocol)协议的两种实现方式。

2 基于XMPP 协议的AndroidPn 开源框架

AndroidPn 是一个基于 XMPP 协议的 java 开源 Android push notification 实现,它包含了完整的客户端和服务器端。

该服务器端主要是在另外一个开源工程openfire 基础上修改实现的,Web 部分采用springhibernate 框架。Androidpn 服务器包含两个部分,一个是侦听在 5222 端口上的 XMPP 服务,负责与客户端的XMPPConnection 类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是 Web 服务器,采用一个轻量级的 HTTP 服务器, 负责接收用户的Web 请求。

3 Android 平台消息推送的设计与实现

3.1 消息推送的设计

Android 校园应用消息推送案例由服务器与客户端组成(如图1 所示)。推送服务器由一个经过二次开发的AndroidPn 服务器组成,负责提供推送消息的录入(如图2 所示)、向终端设备即使推送消息并将消息存入数据库。应用服务器向终端设备提供任何时间的消息查询与加载。

3.2 推送服务器端实现

首先到官网或相关网站下载AndroidPn,下载的文件为androidpn- 0.5.zip,解压得到客户端androidpn-client-0.5.0 与服务器端androidpn-server-0.5.0androidpn-server-0.5.0 部署需要部署到Tomcat 上,数据库是MySql。直接启动Tomcat 服务后,androidpn 服务器端能直接运行。但为了能适应实际项

2 推送消息的录入界面

1 推送案例实现设计

4 从数据库中读取到的推送信息效果图

3 Android 客户端接收即时推送信息效果图

软件开发

Software Development

045

电子制作


目的需要,可以将androidpn-server-0.5.0 集成到项目的应用服务器上,或者在androidpn-server-0.5.0 基础上进行二次开发,由于本案例只需要将发布的推送信息保存到数据库中,采用第二种方法。

实现的方法比较简单,根据springhibernate 框架结构,在org.androidpn. server.model 包中添加实体类Notice ;在org.androidpn.server.dao 包中添加dao 接口与实现类;在org.androidpn.server.service 包中添加业务接口NoticeService 与实现类NoticeServiceImpl org.androidpn.server. console.controller. NotificationController 类中添加调用业务接口的代码:

Notice notice =new Notice();

notice.setTitle(title);

notice.setContent(message);

S i m p l e D a t e F o r m a t d f = n e w S i m p l e D a t e F o r m a t ( " y y y y - M M - d d HH:mm:ss");

n o t i c e . se t D a t e t i me ( d f . f o r m a t ( n e w Date()));

noticeService.saveNotice(notice);

最后,在配置文件spring-config.xmlhibernate.cfg.xml 添加相应的配置信息。

3.3 Android 客户端实现

接收推送的Android 客户端,要能即时接收到服务器推送的消息,需要导入AndroidPn 官网提供的androidpn-client-0.5.0 到开发的Android 项目中。首先将androidpn-client-0.5.0 加载到Java 开发平台Eclipse,修改项目资源文件夹中的androidpn.properties 文件,将xmppHost IP 值改为实际服务器的IP。然后导出androidpn-client-0.5.0.jar 文件,导出时不包含AndroidManifest.xml 文件。最后将jar 文件加载到所开发的开发的Android 项目中。实现的效果如图3、图4 所示。

4 结束语

使用AndroidPn 可以简单地做到:把消息推送到客户端。但是,单点容量有限, 集群方案复杂、不成熟,不稳定,容易出现各种问题。要使其适合开发者需要,并在生产环境上运行,则可能需要做很多定制开发工作。

【参考文献】

[1] 沈洪洲,宗乾进,袁勤俭. 应用Google 云消息框架C2DM 实现商务信息推送服务[J. 现代图书情报技术,201228(6) :78-83

[2]SHEN Hong-zhouZONG Qian-jin Y U A N Q i n - j i a n I m p l e m e n t a t i o n o f Commerce Information Push Service Using Google C2DMJ].NewTechnology of Library and Information Service2012 28(6) :78-83

[3] 陈武. 基于XMPP 的企业级即时通信系统的研究与实现[D]. 武汉:武汉理工大学,2009.

TAG: Android 技术
上一篇 下一篇

论文发表与咨询

论文发表 写作指导 职称论文 毕业论文 客服联系方式:
投稿信箱:lunww@126.com
在线咨询客服QQ:站点合作85782530
在线咨询客服QQ:站点合作82534308
联系电话:18262951856
点击进入支付宝支付(支付宝认可网络诚信商家)
点击进入财付通支付(财付通认可网络诚信商家)
点击进入支付方式---->>>>

论文发表 诚信说明

论文发表 论文投稿 热点图片