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

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:wlszmf
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]本文在开源服务器软件 Openfire 及和 Android 平台上设计了基于XMPP 协议的即时通信系统;实现了即时通讯、好友添加、图片浏览、音乐播放、好友浏览等基本功能。所实现的系统功能完善,可为个人或企业搭建自己的即时通信系统,用于解决内部数据传输安全,实现了与其他通信系统互通等问题提出了可行性高的解决方案。
  [关键词]Android平台,XMPP 通信协议,Openfire服务器,即时通信系统
  中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2016)02-0179-03
  引言
  21世纪,即时通信系统作为一种新兴的技术获得了突飞猛进的发展。即时通信(IM,Instant Messaging)是一种基于现代计算机网络通信技术的能够即时发送和接收互联网消息的交互方式。用户可以通过 Android 平台支撑的即时通信系统软件实现不同手机用户之间以及手机与电脑网络之间的视频、音频和文字等各种信息的即时交互通讯,以及移动终端之间点对点的信息交流与各种数据交换。
  这些IM 系统丰富了我们的生活,给普通用户之间的低费用通讯带来了极大方便,但同时带来了新的技术和保密问题。XMPP 协议是开源协议,具有超强的扩展性和灵活性,也有成本低、研究和实现方便等优势,因而,对 XMPP 协议在该领域的研究有利于降低移动平台IM 实现的难度,为有类似需求的中小型企业提供一个低成本的解决方案。为此,本文中采用XMPP协议实现移动平台系统,以满足产品自身的需要。
  1 系统开发关键技术分析
  1. Android平台架构分析
  Android一词的本义指“机器人”,是一个移动设备的软件平台。它提供包括:SDK、Key Apps、Middleware、Linux Kernel四个部分在内的开源手机操作系统。它开放了基于内核以上的开发工具,从而保证了内容的可移植性和多样性,为系统开发者开发应用程序提供了一套很好的框架,用户可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。
  1.1 Android 系统层次结构
  如图1所示,Android的架构是由:Linux内核、/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,通过编译基于框架的应用程序可以降低开发负荷应用软件原则上是在Dalvik VM上运行的。
  1).关键应用程序
  Android平台内包含一些关键应用程序,如:邮件收发客户端程序、短信收发程序、日历和网页浏览器等。
  2)应用程序框架
  Android应用程序的开发基于框架和组件。Android本身己在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。
  3)C/C++函数库
  Android应用程序框架之下是一套C/C++函数库,它们服务于Andrei应用程序组件,其功能通过组件间接提供给开发者。
  4)Java程序运行环境
  Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。
  5)Linux内核
  Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。
  1.2 Android应用的构成和工作机制
  对于一个Android应用程序来说,是由Activity、IntentReceiver、Serviee、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xd中进行配置,这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等,其中:
  1) Activity组件,主要负责创建与用户进行交互的显示窗口,用户可以在这些窗口里通过调用SetContentView(View)方法来显示其用户界面;
  2) IntentReceive组件,用于对外部事件的响应,当外部事件发生时,会使用NotifieationManager通知用户。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。
  3) Service组件是不带UI提供连续信息的应用程序。本系统客户端扩展功能的音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天边听音乐。
  4) ContentProvider应用程序组件能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。使用ContentProvider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据迁移性。
  2 XMPP 协议基础
  XMPP协议(Extensible Messaging and Presence Protocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的。它继承了在XML环境中灵活的发展性,因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。   XMPP中定义了三个角色:客户端、服务器、网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
  XMPP的基本网络结构如下:
  C1----S1---S2---C3
  C2----+--G1===FN1===FC1
  符号表示:C1,C2,C3=XMPP客户端;S1,S2=XMPP;服务端G1=在XMPP和使用外部消息网络(非XMPP)的协议之间转换的网;FN1=外部消息网络;FC1=外部消息网络的客户端。
  1)服务器
  服务系统是XMPP通信的智能提取层,它主要负责:管理来自其他个体的会话连接或者XML流(streams)和来自客户端、服务器、其他个体的认证发送在XML流实体之中的适当的XML地址节点。
  2)客户端
  大多数客户端是通过TCP直接连接,并且使用XMPP获得服务器提供全部Jabber协议原理及其应用功能和其他服务。
  3)网关
  它的主要功能是将XMPP协议转换成外部消息(non-XMPP)系统使用的协议,也将返回的数据转换成XMPP。这些通信是基于网关和服务器,基于网关和外部消息系统之间的。
  3 基于Android平台的即时通讯系统
  本系统采用C/S体系结构〕,采用开源的XMPP作为即时通讯协议,通过GPRS无线网络采用TCP协议连接到服务器,通过架设开源的Openfire服务器作为即时通讯平台,实现客户端与客户端之间的即时通讯。
  3.1 系统概述
  本文是在Android平台上开发即时手机通讯系,它能够使用户在手机上方便的、迅捷的收发及时消息、传输图片。此外,根据现今用户对于即时通讯软件的特殊要求,比如:在聊天的基础之上还要有一些增值服务功能,以满足不同用户的需求。根据这些特点,本系统除了即时文本消息和图片的传输外,还实现了音乐播放和图片浏览的功能,让用户可以边聊天边听音乐,可以对好友传送过来的图片随时进行浏览,从而实现即时通讯系统的功能多样化。
  3.2 系统架构
  如图3所示,本系统采用客户端(C)/ 服务端(S)架构的体系结构,具有服务器端和客户端。
  服务器端:采用基于XMPP协议的实时协作IM跨平台服务器---开源的Openfire服务器,为提供客户端进行会话连接、消息转发、认证及后台管理功能。
  客户端:用户间的通讯是通过服务器的转发来实现的,将信息打包成XML文件发送给服务器,然后服务器将其转发给相应的用户。在Asmack库的支持下,XMPP的客户端的登录,认证,消息收发等基本功能需要重写相应函数,并调用相应接口来实现。
  客户端采用MVC的软件结构。采用Android的XML文件对界面进行描述,作为视图层,负责前台界面的显示;Android的Activity活动类承载了控制层的任务,通过Activity进行逻辑业务处理;而对于数据库和与服务器连接的操作则属于Model层,该层在具体设计上则依赖于自定义的服务类。
  4 本即时通讯系统的具体设计与实现
  4.1 本系统主要界面
  本系统为客户端/服务器端的系统架构,服务器端由基于Jabber技术的开源服务器Openfire和MySQL数据库共同构成。其中,Openfire服务器负责处理所有用户的请求、访问数据库和消息的传递;而客户端是基于Andrnid平台开发的,负责连接并登录服务器,通过服务器来实现客户端与客户端或PC机客户端之间的即时通讯。
  1.Openfire服务器管理界面
  如图4所示,通过该管理界面,管理员可以方面的管理用户的会话连接,服务器安全设置,以及用户信息等。
  2)用户注册登录界面。
  输入用户名密码后点击登录,客户端向服务器端发起login请求,登录成功后,客户端会将自己的Presence的状态置为available并发送给服务器,表示当前用户在线。不当对于登录成功的用户具有:浏览好友、图片浏览、音乐播放及添加好友等功能模块。
  3)图片浏览功能:在本模块中,合法用户不仅可以实现本地图片的浏览功能,而且对于选中的图片还可以实现图片的自动缩放功能,以便于用户更好地阅读图片。
  4)音乐播放界面:音频主界面主要是通过一个XML布局文件实现的,我们把它命名为music.xml,这里采用相对布局和线性布局相结合的方法。
  5)即时通讯模块
  如图5所示,本系统即时通讯模块集成了与好友之间的各种通讯方式,有普通的文本通讯、文件传输、留言录音通讯、语音通话功能。
  4.2 文件传输模块的具体实现
  在本系统功能实现过程中涉及到的文件传输分为:发送端和接收端。发送端主要通过sendFile()进行文件的发送,两个参数分别为path和msg,path代表文件路径,而msg代表伴随文件传输的普通文本信息。Msg中包含着文件名、文件路径等信息。然后创建FileTransferManager,并创建一个输出文件TransFer,调用其sendFile方法将文件发送出去,同时启动新线程用来对文件发送状态进行更新。
  文件接收端也是需要创建FileTransferManager,然后通过addFileTransferListener方法设置文件监听,当有文件传输时,而且同意接收后,则通过IncomingFileTransfer来接收文件,并存入默认的目录中去。
  5 结论
  本即时通讯系统主要来用C/S的软件架构,并釆用XMPP协议作为即时通讯基本功能的通信协议,服务器端采用开源的Openfire服务器,客户端釆用了基于Android的开发平台。除了即时文本信息的传输外,还可以进行图片的传输,将IDEA数据加密算法引入系统中,对系统的通讯信息进行加密处理,保证通讯数据的安全,并对系统客户端的功能进行了扩展,增加了音乐的播放和图片浏览的功能。
  参考文献
  [1] 李新路.XMPP协议在Android即时通讯系统中的应用[J].电脑知识与技术,2013,(28)
  [2] 罗伟.基于Android平台的即时通讯系统的研究与实现[D].湖南师范大学,2009
  [3] 黄伟敏.基于XMPP协议的Android即时通信系统设计[J]电子设计工@,2011,19(8)
  [4] 陈航,赵方.基于服务器推送技术和XMPP的Web IM系统实现[J].计算机工程与设,2010,31(5)
  [5] Matos V, Grasser R. Building applications for the Android OS mobile platform: a primer and course materials[J]. Journal of Computing Sciences in Colleges, 2010, 26(1): 23-29.
  [6] 罗伟. 基于 Android 平台的即时通讯系统的研究与实现 [D][D]. 长沙: 湖南师范大学, 2009.
  [7] 孟贺. 基于 Android 的即时通讯系统的设计与实现[D]. 山东大学, 2014.
其他文献
[摘 要]为了跟上21世纪信息化的步伐,高校档案信息建设面临着新的挑战。传统的档案的管理模式已经不能适应当前形势的变化,如何优化高校档案信息资源成为亟待解决的问题。本文从阐述优化高校信息资源建设的意义出发,指出其重要性;又通过分析当前高校档案信息资源建设工作的现状,有针对性地提出相应的解决对策。  [关键词]高校档案 资源建设 现状分析 解决对策  中图分类号:G647.24 文献标识码:A 文章
期刊
[摘 要]随着手机等高科技产品的普及,青少年进行纸质阅读的人数越来越少,而图书馆是进行终身学习的场所,在倡导青少年加强阅读中具有重要的作用。本研究从青少年的阅读现状及其存在的问题、图书馆应当完善服务工作从而引导青少年更多的进入图书馆进行阅读对论题展开了论述和研究,以期为图书馆服务工作的提升提供有效的理论依据。  [关键词]青少年阅读实情;图书馆服务工作;方向;策略  中图分类号:G252 文献标识
期刊
[摘 要]水利工程作为一项利国利民的民生大业,对于整个经济社会的稳定发展有着很大的促进作用。渠道管理工作的好坏。不但直接影响到灌溉效益的高低.而且影响到工程安全运行,关系到沿渠人民生命财产的安全和维修养护费用的大小。本文主要分析了当前水利渠道管理中存在的问题,并针对问题提出一些有效维护管理方法.以供参考。  [关键词]水利工程;渠道管理;维护  中图分类号:TD327.3 文献标识码:A 文章编号
期刊
[摘 要]随着社会经济的不断发展,电气工程等相关技术得到了越来越广泛的应用,因此,电气工程的节能减排技术也得到了越来越广泛的重视。本文即针对配电变压器的经济运行与相应的节能技术做出简要探讨,从而对变压器在电力传输方面的能源损耗问题做出进一步研究,希望能给予相关行业工作人员一定的参考。  [关键词]配电变压器;节能技术  中图分类号:TM73 文献标识码:A 文章编号:1009-914X(2016)
期刊
[摘 要]随着科技的快速发展,我国现代通信网络发展也尤为迅速,而通讯网络的快速发展主要依托于现代科技。网络光纤传输技术是现代通信技术的一种,它在通信网络中发挥了较为重要的作用。网络光纤传输技术有一些典型的特点,并且在通讯网络中得到了广泛的应用,并取得了理想的效果。  [关键词]通信网络;光纤传输技术;特点;应用;趋势  中图分类号:TF046.6 文献标识码:A 文章编号:1009-914X(20
期刊
[摘 要]我们在资源开发利用的过程中强化环境保护意识,既要重视当代人的发展需求,也要考虑后代人的发展利益,强调人与自然的和谐发展,这是科学发展观的应有之义。近几年来,油田各级企业认真宣传贯彻落实《环保法》及上级环保精神,紧紧围绕上级提出的环保达标目标开展了积极的工作,建立健全了各项管理制度,明确管理职责,严格落实责任,把责、权、利明确分解到人,做到谁污染谁负责,取得了较为显著的成绩。油田企业的环境
期刊
[摘 要]电机是我国运输业中极为重要的组成部分,电机在工业生产过程中的地位尤为重要,它是整个生产运输系统的命脉,为了更好的服务生产,为了保持运输系统畅通,为了更好的提高工作效率,电机安全使用必须保证完好,因此电机日常检查和维修尤其重要。  [关键词]电机;运行;管理;维护  中图分类号:TM73 文献标识码:A 文章编号:1009-914X(2016)02-0194-01  在日常的电器机器的管理
期刊
[摘 要]分析仪器种类繁多,有光分析仪器、电化学分析仪器、色谱分析仪器、质谱分析仪器、磁分析仪器、热分析仪器、物性分析仪器、核分析仪器等,并且每年都不断有新的分析仪器问世。化学分析仪器和其他传统工业一样,正在信息技术的改造下,向微型化、智能化、自动化和网络化方向发展。本文从仪器分析的发展,分析仪器的重要性、化学分析仪器的特点,金属材料分析时化学分析仪器的选择及应用,分析仪器的应用和发展过程中需要注
期刊
[摘 要]近年来,县级供电企业基础管理工作虽然取得了较好的成绩,但实际工作中存在的弊端也日益暴露出来。随着“三集五大”运行机制改革及SG186营销系统上线运行,供电企业“必须扎扎实实做好基础管理和基层建设,把各项供电管理工作落到实处”。如何审时度势,提高认识,明确目标和要求,促进整个企业管理工作再上台阶。为此,本文就县级供电企业管理提升工程实践做些粗浅的探讨。  [关键词]供电企业;三集五大;管理
期刊
[摘 要]飞机的诞生之初,航空维修也孕育而生,航空维修是航空业的基础,航空维修决定了飞机的准时性、可靠性和安全性。随着经济全球化,航空业得到了迅猛发展,航班量呈几何级数增长,航空事故也日益增多,根据统计,70%~80%的事故是人为因素造成的。因此航空维修中的人为因素研究对航空业来说有着重要的意义。本文首先介绍了航空维修中人为因素研究的重要性,阐述了什么是人为因素以及由于人为因素分析的SHEL模型,
期刊