基于Android平台的即时通信系统设计与实现

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:feijian06
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]目前主流的IM协议有四种,包括:可扩展消息与存在协议(XMPP)、空间和即时信息协议(PRIM)、即时信息和空间协议(IMPP)、针对即时信息和出席扩展的会话发起协议SIP(SIMPLE)。在这四种主流协议中,XMPP协议具有很好的灵活性和扩展性。由于XMPP协议是高度自由、高度开放的协议,易于掌握和理解,而且在服务器、客户端、插件、源代码厍等方面,有多种实现。任何遵循XMPP协议的软件,可以实现相互通讯。加之Google公司开发的Gtalk软件也是基于XMPP协议的及时通讯软件,同时很多软件巨头也对XMPP协议进行支持,促进了XMPP协议的推广和普及。因此,研究XMPP协议及基于此的即时通讯软件的设计与实现,有深远的意义。
  [关键词]XMPP协议;即时通信系统
  中图分类号:TN914 文献标识码:A 文章编号:1009-914X(2015)05-0322-01
  1系统相关技术背景介绍
  1.1 XMPP协议分析
  目前主流的IM协议有四种,包括:可扩展消息与存在协议(XMPP)、空间和即时信息协议(PRIM)、即时信息和空间协议(IMPP)、针对即时信息和出席扩展的会话发起协议SIP(SIMPLE)。在这四种主流协议中,XMPP协议具有很好的灵活性和扩展性。由于XMPP协议是高度自由、高度开放的协议,易于掌握和理解,而且在服务器、客户端、插件、源代码库等方面,有多种实现。任何遵循XMPP协议的软件,可以实现相互通讯。加之Google公司开发的Gtalk软件也是基于XMPP协议的及时通讯软件,同时很多软件巨头也对XMPP协议进行支持,促进了XMPP协议的推广和普及。因此,研究XMPP协议及基于此的即时通讯软件的设计与实现,有深远的意义。
  1.2 XMPP协议簇
  XMPP协议簇一共分为四层,最底层的是TCP协议,向上依次分别是TLS协议(即传输层安全协议)、SASL协议(简单认证和安全层协议)、XMPP协议。TLS由操作系统提供,用于在两个通信应用程序之间提供保密性和数据完整性。SASL是由应用层提供,而XMPP则是应用层本身。XMPP协议采用SASL协议作为身份认证协议。基于XMPP协议的SASL协议需提供如下三个方面信息:服务名(XMPP)、初始序列、交换序列和安全层协商。
  1.3 openfire服务器
  openfire(原名Wildfire或者JiveMessenger)是由Java语言编写的、基于XMPP协议的服务器,具有跨平台能力,获得了Apache2.0许可证。openfire是基于XMPP协议的IM的服务器端的一个实现,两个用户想要进行通讯,首先要连接到Openfire。服务器获取一些连接信息,然后两个用户之间才能建立连接。当两个用户之间建立连接后,用户可以采用点对点的方式来发送接收消息。
  2 IM技术原理和工作方式
  典型的IM工作方式如下:登陆IM通讯中心(IM通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流。
  3即时通讯系统的设计
  3.1服务器端处理流程
  首先,ConneetionHandler接收Socket数据,然后StandzaHancller对socket数据进行解析,解析为Element对象,最后,根据Element对象的不同,分别分配给相应的路由(router)去处理。IQRouter、MessageRouter和PresenceRouter分别处理IQ、Message、和Presence。
  3.2系统客户端的设计
  系统客户端采用了MVC的设计模式,将视图层、控制逻辑层以及数据模型层进行分离,实现客户端程序的高内聚,低耦合,提高代码的重用性,降低系统的维护成本。Google设计的Android手机操作系统,本身也采用MVC的设计模式,这样一来,为设计和开发Android应用程序提供了良好的基础。在Android程序中,视图层的布局和规划,可以通过XML文件进行配置编码,当然也可以通过Java硬编码的方式进行布局,但这不是Android推荐的布局方式。
  3.3用户界面布局设计
  系统客户端的界面设计包括用户注册,用户登录,配置设置,联系人列表,个人信息及状态设置等。
  用户运行客户端时,首先在内部控制模块判断,是否存在用户配置好了的信息,如果存在,则直接调用配置过得信息进行网络连接;如果没有,则会进入向导模式,这个时候供用户选择,如果用户已经有账号了,则可以直接到登录界面填写登录信息进行登录,如果用户没有账号,则选择注册,到注册界面进行注册;登录成功后,就会显示联系人列表,不成功时,可以点击手动设置来配置一些登录信息和网络设置信息等;由联系人列表视图可以进行好友管理,分组管理,个人信息管理,状态信息管理等等。
  4即时通讯系统的实现
  本系统采用C/S(客户端一服务器端)的系统架构,客户端是基于Android手机操作系统开发的即时通讯软件,采用Java编程语言开发和MVC的设计模式。服务器端采用当今流行的开源服务器Openfire和开源数据库MySQL构建。Openfire服务器负责处理客户端软件发送的身份验证请求、连接请求、数据交换等,配合MySOL的数据存储功能,实现XMPP协议客户端软件的即时通讯。
  4.1用户界面布局实现
  本系统客户端的用户界面布局文件存放在/res/layout中,Android系统据系统可以根据系统自身的重力感应,进行相应的屏幕适配。当然,如果手机横屏和竖屏的布局存在明显差异,则可以通过在ms目录下创建layout-land与layout-port两个文件夹,当手机横屏时,系统会加载res/layout-land目录下的文件,当手机竖屏时竖屏时,系统会自动加载res/layout-port目录下的文件。本系统由于横屏和竖屏的显示差异不大,所以无论手机是横屏还是竖屏,系统都会加载res/layout下的界面布局文件
  4.2数据存储模块实现
  本系统客户端需要存储用户登录的基本信息和用户好友的基本信息,以及用户和好友的聊天记录。
  4.3即时通讯模块实现
  在开发Android应用程序过程中,开发人员必须遵守单线程模型的原则,Android的UI操作并不是线程安全的,而且这些操作必须在UI主线程中执行。系统客户端的登录请求、发送数据请求、接收数据的操作,都采用异步任务的方式进行。Android提供了AsyncTask类,实现异步数据请求,不会阻塞UI界面,这样会产生良好的用户体验。
  5系统总结与展望
  本系统是在使用开源Opentire作为即时通讯服务器的基础上,使用Eclipse开发环境和Java软件开发语言,开发即时通信手机客户端软件。在系统设计和开发过程中,需要学习掌握几个阶段的技能:
  (1)对系统相关基础知识的學习,有java语言程序设计的学习,面向对象的设计模式的学习,linux系统相关知识的学习,最后是Android系统内核,Android应用框架以及即时通讯XMPP协议的学习等等。
  (2)对系统进行试探性的分析与整体架构的设计,画出整体框架图,用Eclipse进行相关页面的UI设计。
  (3)在已有系统框架的基础上,细化系统相关的服务程序,进行分层设计与实现;并在UI界面的基础上将服务程序,多线程处理程序等等加入到系统中。
其他文献
[摘要]越来越多的上网用户选择使用无线路由器来联通互联网,无线网络的安全隐患越来越引人关注。本文先介绍无线路由器的加密方式有WEP、WPA、WPA2以及WPA+WPA2等几种并作相关介绍,后介绍破解方法主要有抓包破解和Pin码破解2种,并详细列举了利用WinAirCrack和BackTrack进行破解的实例。  [关键词]无线路由器 破解 WinAirCrack BackTrack  中图分类号:
期刊
[摘要]物联网概念提出至今,物联网已经完成了从技术到产业的转变,随着物联网技术的发展,物联网技术对人们生活方式和社会关系的改变必将引起公安工作在新环境新形势下的重大变革。文章介绍了物联网的概念,当前发展阶段的一些典型应用,以及在公安领域的应用和物联网时代下的公安工作展望。  [关键词]物联网技术RFID公安工作  中图分类号:TP391.44 文献标识码:A 文章编号:1009-914X(2015
期刊
[摘要]随着计算机和网络技术的迅猛发展和广泛普及,校园网络作为高校信息化、数字化建设的重要设施得到了快速的发展。如今校园网已经是校园日常学习、工作不可缺少的一部分。对安全也提出了更高的要求。如何使校园网络免受黑客和病毒的侵害,使校园网络正常、高效的为高校信息化、数字化的发展而服务,是各个高校普遍存在的和面临的问题。  本文首先说明了校园安全的特点以及校园网络安全的现状,分析了校园网络面临的安全威胁
期刊
[摘要]二十一世纪,是网络信息化高度集中的时代。互联网技术在中国呈现爆炸式的发展,网络在社会中的重要性日益凸显,在社会建设宏伟蓝图中所占的比重将越来越重。同时,犯罪分子通过互联网技术在虚拟社会中进行犯罪的情况愈发普遍和严重,高智能化、专业化的犯罪特点使得我国网民正在经受着日益严峻的网络生存挑战。本文简要介绍互联网技术发展的特点及趋势,其对网络犯罪产生的影响与如何应对进行阐述。  [关键词]互联网技
期刊
中图分类号:A81 文献标识码:A 文章编号:1009-914X(2015)05-0347-01  以改造自然、改造社会为己任的中国共产党,自创建之日起,就把马克思主义的辩证唯物论和历史唯物论作为自己的世界观和方法论,同形形色色的唯心主义和形而上学进行了不懈的斗争,推动着革命和建设事业不断前进。当前,我国正处在推挤改革的“深水区”,面临着比以往任何时候都更加错综复杂的矛盾和问题。在这样的历史条件下
期刊
[摘要]法律援助的服务主体是弱势群体,他们缺少相应的法律知识,且没有能力负担得起请律师的费用,针对这种情况,法律援助可以帮助他们维护自身的合法权益。然而,长期以来我国对于法律援助工作的重视不足,缺少相应的扶持政策与扶持资金,这使得一些地区法律援助事业发展较慢,且律师数量不足、水平参差不齐,而且申请法律援助的难度很高,给群众维权带来了很大的麻烦,本文对此给予了详细的分析。  [关键词]法律援助 律师
期刊
[摘要]随着目前科学技术水平的逐步提高,社会中的信息化程度不断加深,网络已经步入了千家万户,发挥了极为重要的作用,通信传输网络是当前社会中人们进行各种沟通的一个重要部分,是人们进行沟通的桥梁。随着通信传输网络的不断发展,人们已经走进了一个快捷、方便的信息化时代。随着网络发展速率的加快,民众的通信形式已经变成了网络通讯,而信纸、电话等都作为辅助。本文简要分析了当前通信传递网络发展的情况,探讨了其发展
期刊
[摘要]作为国有科研生产单位,新闻宣传工作在提高单位知名度、提振职工士气、凝聚队伍合力,保障单位和谐稳定发展等方面发挥了重要的作用,而随着中石化及油田改革的不断深入,油田基层单位的新闻宣传工作也面临着新的挑战,这就要求新闻宣传从业者要在观念、方式上积极转变,尤其是对于科研单位而言,更是如此,如何把广大职工的科研生产成果宣传出去,对于扩大单位知名度,提高广大职工工作积极性具有重要意义,本文结合作者多
期刊
[摘要]创新 DCS 实施  [关键词]国电建投内蒙古能源有限公司布连电厂一期工程计划于2012年底投产,是国内首个660MW超超临界燃煤空冷机组,为实现国优工程建设目标,全过程实行精细化管理。  中图分类号:D905.2 文献标识码:A 文章编号:1009-914X(2015)05-0349-01  一、背景  国电建投内蒙古能源有限公司布连电厂地处内蒙古鄂尔多斯市,目前开工建设的项目包括年产能
期刊
中图分类号:D267 文献标识码:A 文章编号:1009-914X(2015)05-0348-01  从我中队的实际情况来看,主要是三类人,干部、班长、队员,个人认为,可以从做好以下几个工作方面入手:  一是做好中队领导班子的团结。做好班子的团结的关键首先是指导员、队长的个人素质和工作能力,两名正职在副职面前有一个良好的形象,讲奉献、处事公允、奉公守法、清正廉洁是一名干部应该具有的最基本要求,既然
期刊