基于android系统的即时通信系统研究.doc

上传人:文****钱 文档编号:36326 上传时间:2018-05-06 格式:DOC 页数:56 大小:8.12MB
下载 相关 举报
基于android系统的即时通信系统研究.doc_第1页
第1页 / 共56页
基于android系统的即时通信系统研究.doc_第2页
第2页 / 共56页
基于android系统的即时通信系统研究.doc_第3页
第3页 / 共56页
基于android系统的即时通信系统研究.doc_第4页
第4页 / 共56页
基于android系统的即时通信系统研究.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、I理工大学学士学位论文摘要即时通信IM(INSTANTMESSAGING)是目前INTERNET上最为流行的通讯方式,而各种各样的即时通信软件也层出不穷,服务上也提供了越来越丰富的通信服务功能。随着互联网的发展,即时通信的运用日益广泛,即时通信软件业方兴未艾。本设计构建了一个基于ANDROID平台的即时通信系统,包括即时通信系统的客户端和服务器。其中服务器采用JAVA语言开发的,客户端是基于ANDROID平台采用JAVA语言,利用了TCP/IP协议,SOCKET套接字进行研究开发。设计实现了客户端之间的文本、图片与语音信息的实时数据通信等功能。本设计采用了常见的MVC设计模式,对系统进行了分层

2、建模,对客户端的各个模块部分都进行分析设计,提出了系统的体系结构和整体构架设计方案,阐述了系统实现应用的关键技术,建立了可扩展的会话模型,采用松散耦合的方式设计,实现了ANDROID平台上的移动即时通信系统。关键字即时通信;ANDROID;TCP/IP;JAVA;MVCII理工大学学士学位论文ABSTRACTIMINSTANTMESSAGINGARETHEMOSTPOPULARWAYOFCOMMUNICATION,THEINTERNETANDALLKINDSOFINSTANTMESSAGINGSOFTWAREALSOEMERGEINENDLESSLY,SERVICEALSOPROVIDESMO

3、REANDMORERICHCOMMUNICATIONSERVICEFUNCTIONSALONGWITHTHEDEVELOPMENTOFTHEINTERNET,THEUSEOFINSTANTCOMMUNICATIONISBECOMINGMOREANDMOREWIDELY,ININSTANTMESSAGINGSOFTWARETHISDESIGNTOBUILDAREALTIMECOMMUNICATIONSYSTEMBASEDONANDROIDPLATFORM,INCLUDINGINSTANTCOMMUNICATIONSYSTEMOFTHECLIENTANDTHESERVERTHESERVERUSIN

4、GJAVALANGUAGEDEVELOPMENT,THECLIENTISBASEDONTHEANDROIDPLATFORMUSINGTHEJAVALANGUAGE,USINGTHETCP/IP,SOCKETFORRESEARCHANDDEVELOPMENTDESIGNANDIMPLEMENTATIONOFTEXT,IMAGES,ANDBETWEENTHECLIENTVOICEINFORMATIONOFREALTIMEDATACOMMUNICATIONFUNCTIONSTHISDESIGNADOPTSCOMMONMVCDESIGNPATTERN,SYSTEMFORTHEHIERARCHICALM

5、ODELING,ANALYZESEVERYMODULEPARTCLIENTDESIGN,PROPOSESTHEARCHITECTUREOFSYSTEMANDTHEOVERALLARCHITECTUREDESIGN,EXPOUNDSTHEKEYTECHNOLOGYOFSYSTEMIMPLEMENTATION,EXTENSIBLESESSIONMODELISESTABLISHED,THEDESIGNUSESTHELOOSECOUPLINGWAY,REALIZEDTHEANDROIDPLATFORMOFMOBILEINSTANTMESSAGINGSYSTEMKEYWORDSIMSYSTEMANDRO

6、IDTCP/IPJAVATHEMVCIII理工大学学士学位论文目录1绪论111课题背景112研究的目的和意义113论文的主要内容和组织结构22开发环境及相关技术的介绍421开发环境422开发软件介绍4221关于ECLIPSE4222JAVAJDK与ANDROIDSDK4223ADT介绍5224MYSQL简介523相关开发技术介绍6231JAVA基础介绍6232ANDROID平台8233TCP/IP协议123系统需求分析1631可行性分析1632系统功能需求1633数据流图17331顶层数据流图17332一层数据流图184系统设计1941系统总体架构设计1942移动客户端设计19421客户端基本

7、通信流程设计20422客户端功能模块设计2143服务器端设计235系统测试24IV理工大学学士学位论文51服务器测试2452客户端测试27521登陆模块测试27522注册模块测试29523找朋友与设置模块测试30524即时聊天模块测试3453数据库测试37531数据库的建立37532数据库显示39结论41致谢42参考文献43附录A英文原文44附录B汉语翻译491理工大学学士学位论文1绪论11课题背景即时通信INSTANTMESSAGING,IM是指能够即时发送和接收互联网消息等的业务。随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前,微软、腾讯、淘宝等重要即时通信提供商都提供通过手机

8、接入互联网即时通信的业务,用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。本课题来自于以下当前最受关注相关应用的结合点1开放性移动设备ANDROID平台目前已受到了很多人的关注,使用该平台的手机也已经十分普遍,并获得广泛的好评,基于此平台应用程序的开发也逐渐成为一个热门的方向;2固定网络的即时通信系统在网络中的广泛应用,用户已经将即时通信系统作为生活中不可或缺的通信工具;3移动网络中的无线终端设备应用日益广泛。在中国手机的普及率已经很高,通过便携的、无线的移动设备访问INTERNET已经成为人们需求的方向,用户迫切希望在手机、PAD等便捷的无线终端设备上与桌面即时通信系统进

9、行交互。移动终端平台中实现即时通信系统作为移动通信业务的扩展,将对移动业务产生重要影响,也必将获得更为广大的市场价值12研究的目的和意义即时通信软件作为一种便捷的网络通信技术已经越来越深入人心,应用范围从单纯的网络聊天工具变成工作生活所不可缺的信息交流平台。在互联网日益普及的今天,即时通信的用户规模也呈现出快速增长的态势。现阶段,用手机等移动设备和即时通信软件挂钩,把以往的只能应用在PC机上的即时通信软件移植到移动设备中,让用户能够更方便地应用即时通信产品,是即时通信的发展趋势,也是IM系统软件市场发展的一个重要方向。移动即时通信系统实现主要来自最近通信界最成功的两个应用的结合点固定网络中的桌

10、面即时通信和移动网络中的短消息系统。移动通信的即时通信服务就是在传统的基于WEB通信系统的概念上,2理工大学学士学位论文把手机的短信和手机移动互联网完美地结合起来,使用户通过移动设备终端,也能够方便地与他人以短信、移动互联网来进行实时的信息交流,它突破了传统WEB界限,把即时信息转移到移动互联网上面,同时用户通过短消息或移动互联网,实现即时的交流。可以想象,如果用户在移动终端上能够像桌面即时通信一样方便地使用并且可以访问已有的朋友列表,无线即时通信系统就能够不费力地获得极大的市场份额。本课题的研究目的就是设计和实现一个在ANDROID手机平台上的IM系统。本文介绍了在ANDROID平台上的即时

11、通信系统的开发,作为GOOGLE推出的移动设备平台,ANDROID平台与其它SYMBIAN、WINDOWSMOBILE手机操作系统相比,其源代码完全开放,任何人和机构都可以免费使用,ANDROID研发已经逐渐成为了一个热门的方向,而其他操作系统的吸引力在下降。随着计算机和通信技术的发展,计算机的网络化已经渗透到各个应用领域,尤其是以TCP/IP协议之间的网络互连发展很快,计算机应用系统的开发由传统的单机方式转向到了网络环境的开发。网络之间进行数据通信时,使用地址来标识网络中的计算机,有了地址以后,数据才会准确地发送到地址所指向的计算机。TCP/IP协议使用IP地址为网络中计算机的标识,而且每台

12、计算机的IP地址是唯一的,一般情况下,每台计算机运行的程序不止一个,因此要在应用程序中建立连接的话,还需要一个地址标识。在TCP/IP协议书中使用端口(PORT)作为计算机上运行的应用程序的标识,因此TCP/IP协议中一个有效的网络地址包括IP地址和端口地址两个部分。TCP/IP协议提供了两种计算机之间的通信方式TCP方式和UDP方式。TCP是一种面向连接的服务,在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、以及流量控制、差错检测和纠错等服务,从而确保文件传输的正确性。UDP则是一种无连接的服务,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以当使用

13、UDP时,通常要自己作接收确认的工作。13论文的主要内容和组织结构本课题的研究工作是设计和实现一个ANDROID平台的即时通信系统,实现ANDROID客户端之间的即时通信,使用户能通过手机等移动设备的即时通信系统客户端随时随地与他人进行即时消息通信。3理工大学学士学位论文本课题的研究内容主要有下面几方面1ANDROID开发平台平台的搭建,硬件与软件的需求;2ANDROID开发平台介绍ANDROID平台的相关知识及基本开发语言JAVA,深入阐述如何在ANDROID平台下进行程序开发;3TCP/IP协议介绍TCP/IP协议的内容并对协议进行解析;4移动即时通信系统的实现提出系统需求,阐述本移动即时

14、通信系统的设计和具体实现,最终对系统进行测试工作。本文在第二章介绍项目所用到的基本知识对ANDROID平台搭建的软硬件要求,ANDROID的基础知识,JAVA语言的介绍以及对TCP/IP协议进行介绍。然后在第三章根据要求来明确本系统的可行性,提出系统的需求,对系统进行总体分析。确定系统需求后,如何建立一个相对合理的系统架构和对系统进行实现,这部分在第四章。第五章详细介绍系统实现中,对整个系统的服务器测试、客户端测试以及会话模型进行详细测试,对客户端结构中的各个模块实现进行阐述。最后是本课题的结论、致谢及参考文献。4理工大学学士学位论文2开发环境及相关技术的介绍21开发环境操作系统WINDOWS

15、XPJAVA开发包JDK70ANDROID开发工具包SDK211数据库MYSQL开发环境,整合JDKECLIPSEADTMYSQL,可以这么说,JDK提供了虚拟机来运行应用程序,而ECLIPSE及ANDROIDADT插件提供了开发测试程序代码的IDE集成开发环境。22开发软件介绍221关于ECLIPSEECLIPSE是一个开发源代码的、基于JAVA的可扩展开发平台。作为当今最流行的JAVA开发IDE之一,JAVA社群使用ECLIPSE以及基于ECLIPSE技术而来的IBMWEBSPHERE的开发者已经超过了半数。ECLIPSE本身只是一个框架和一组响应的服务,并不能够开发什么程序。在ECLIP

16、SE中几乎每样东西都是插件,实际上正是运行在ECLIPSE平台上的种种插件提供我们开发程序的各种功能。同时各个领域的开发人员通过开发插件,可以构建与ECLIPSE环境无缝集成的工具。ECLIPSE的发行版本都已经带有最基本的插件,方便了开发人员。222JAVAJDK与ANDROIDSDKJDKJAVADEVELOPMENTKIT是SUN公司开发的用于JAVA平台上发的应用程序、APPLET以及组件提供的开发环境。它由SUN公司提供,其中包括JAVA程序运行所必须的环境以及开发过程中常用的库文件。在使用JSP开发动态网站之前,首先必须安装的就是JDK组件。JDK提供JAVA运行环境JRE(只有安

17、装了JRE,才能运行JAVA开发的应用程序)以及常用的开发工具包(例如TOOLSJAR)。其实只需要安装JRE就可以运行JAVA程序了。5理工大学学士学位论文这里之所以安装JDK,是因为JDK已经包含有JAVA的源代码,从而可以随时查看这些源代码。这样在调试程序的时候可以提供很大的帮助。ANDROIDSDK(ANDROIDSOFTWAREDEVELOPMENTKIT)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,ANDROIDSDK指的是ANDROID专属的软件开发工具包。223ADT介绍ADTANDROIDDEVELOP

18、MENTTOOLS,安卓开发工具。在ECLIPSE编译IDE环境中,需安装ADTANDROIDDEVELOPMENTTOOLSPLUGIN,这是ANDROID在ECLIPSE上的开发工具,它在ECLIPSE中以一个插件形式存在。在ECLIPSE编译IDE环境中,安装ADT,为ANDROID开发提供开发工具的升级或者变更,简单理解为在ECLIPSE下开发工具的升级下载工具。ADT至少有以下几方面作用LAYOUTEDITOR界面布局编辑器,支持鼠标拖放;CODEEDITORS代码编辑器;SDKTOOLSINTEGRATIONSDK工具集成;ANDROIDVIRTUALDEVICES(AVD)安卓虚

19、拟设备。224MYSQL简介MYSQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MYSQLAB公司。目前MYSQL被广泛地应用在INTERNET上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。与其他的大型数据库例如ORACLE、DB2、SQLSERVER等相比,MYSQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MYSQL提供的功能已经绰绰有余,而且由于MYSQL是开放源码软件,因此可以大大降低总体拥有成本。目前INTERNET上

20、流行的网站构架方式是LAMP和LNMP,即使用LINUX作为操作系统,APACHE和NGINX作为WEB服务器,MYSQL作为数据库,PHP/PERL/PYTHON作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件6理工大学学士学位论文(FLOSS,因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。23相关开发技术介绍231JAVA基础介绍ANDROID上的应用程序大多是通过JAVA语言实现的,因此熟悉JAVA基础知识十分有必要,可以说系统设计能够进行下去的最基础的条件,这里我将简要介绍JAVA基础的整体知识框架。1对象的初始化(1)非静态对象的初始化

21、是在在创建对象时,对象所在类的所有数据成员会首先进行初始化,在所有类成员初始化完成之后,才调用本类的构造方法创建对象,构造方法的作用就是初始化;(2)静态对象的初始化是在程序中主类的静态变量会在MAIN方法执行前初始化。不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。2继承时,对象的初始化过程(1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为PRIVATE;(2)主类静态成员的初始化;(3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行

22、对此超类进行非静态对象的初始化;(4)主类非静态成员的初始化;(5)调用主类的构造方法。3关于构造方法(1)类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了;(2)在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。4有关PUBLIC、PRIVATE和PROTECTED7理工大学学士学位论文(1)无PUBLIC修饰的类,可以被其他类访问的条件是A、两个类在同一文件中,B、两个类在同一文件夹中,C、两个类在同一软件包中;(2)PROTECTED继承类和同一软件包的类可访问;(

23、3)如果构造方法为PRIVATE,那么在其他类中不能创建该类的对象。5抽象类(1)抽象类不能创建对象;(2)如果一个类中一个方法为抽象方法,则这个类必须为ABSTRACT抽象类;(3)继承抽象类的类在类中必须实现抽象类中的抽象方法;(4)抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为PRIVATE;(5)间接继承抽象类的类可以不给出抽象方法的定义。6FINAL关键字(1)一个对象是常量,不代表不能转变对象的成员,仍可以对其成员进行操作;(2)常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化;(3)FINAL修饰的方法不能被重置(在子类中不能出现同名方法);(

24、4)如果声明一个类为FINAL,则所有的方法均为FINAL,无论其是否被FINAL修饰,但数据成员可为FINAL也可不是。7接口INTERFACE(用IMPLEMENTS来实现接口)(1)接口中的所有数据均为STATIC和FINAL即静态常量。尽管可以不用这两个关键字修饰,但必须给常量赋初值;(2)接口中的方法均为PUBLIC,在实现接口类中,实现方法必须用PUBLIC关键字;(3)如果使用PUBLIC来修饰接口,则接口必须与文件名相同。8多重继承(1)一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗号分隔;(2)接口之间可多重继承,注意使用关键字EXTENDS;(3

25、)一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口继承的接口的方法,接口中的所有方法均须在类中实现。9JAVA语言的特点8理工大学学士学位论文(1)平台无关性JAVA引进虚拟机原理,并运行于虚拟机,实现不同平台之间的JAVA接口。使用JAVA编写的程序能在世界范围内共享。JAVA的数据类型与机器无关。(2)安全性JAVA的编程类似C,但舍弃了C的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。(3)面向对象JAVA吸收了C面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护

26、性,使程序代码可以只需一次编译就可反复利用。(4)分布式JAVA建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。(5)健壮性JAVA致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。JAVA取消了C语言的结构、指针、DEFINE语句、多重继承、GOTO语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。232ANDROID平台ANDROID平台是GOOGLE于2007年11月推出的一种智能手机平台,它是由一个由操作系统、中间件、用户友好界面和应用软件组成,全面整合

27、的软件栈。ANDROIDSDK提供了在ANDROID平台上使用JAVA语言进行ANDROID应用开发必须的工具和API接口。ANDROID平台的组成ANDROID不仅是一种操作系统,它更是一个开源的体系架构。ANDROID平台大量应用了开源社区的成果,并将其针对移动设备进行了一系列地优化。ANDROID平台包含的主要构成部分及其特性有经过GOOGLE改进和调优的LINUXKERNEL;经过GOOGLE修改的JAVA虚拟机DALVIKVM;大量可用的类库和应用软件,例如浏览器WEBKIT,数据库SQLITE;GOOGLE已经开发好的大量现成的应用软件,并可以直接使用很多GOOE在线服务;基于EC

28、LIPSE的完整开发环境;优化过的2D和3D图形处理系统;9理工大学学士学位论文多媒体方面对常见的音频、视频和图片格式提供支持;支持GSM,蓝牙,EDGE,3G,WIFI,摄像头,GPS。ANDROID应用程序框架ANDROID平台的架构从上至下包含了五个部分应用程序APPLICATIONS、应用框架APPLICATIONFRAMEWORK、开发库LIBRARIES、运行时环境ANDROIDRUNTIME以及LINUX内核LINUXKERNEL,如图21所示图21ANDROID应用程序框架图应用程序APPLICATION10理工大学学士学位论文ANDROID会同一系列核心应用程序包一起发布,该

29、应用程序包括EMAIL客户端,SMS短消息程序。日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用程序框架APPLICATIONFRAMEWORK开发人员也可以访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块不过得遵循框架的安全性限制。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统其中包括丰富而又可扩展的视图VIEWS,可以用来构建应用程序,它包括列表1ISTS,网格GRIDS,文本框TEXTBOXES

30、,按钮BUTTONS,甚至可嵌入的WEB洲览器。内容提供器CONTENTPROVIDE使得应用程序可以访问另一个应用程序的数据如联系人数据库,或者共享它们自己的数据。资源管理器RESOURCEMANAGER提供非代码资源的访问,如本地字符串,图形,和布局文件LAYOUTFILES。通知管理器NOTIFICATIONMANAGER使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器ACTIVITYMANAGER用来管理应用程序生命周期并提供常用的导航回退功能。开发库LIBRARIESANDROID包含一套CC开发库,主要包括LIBC、MEDIAFRAMEWORK、WEBKIT、SGL、OP

31、ENGLES、FREETYPE、SQLITE等。它们被应用于ANDROID系统的各种组件中。这些功能通过ANDROID应用框架展现给开发人员。运行时环境ANDROIDRUNTIMEANDROID包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个ANDROID应用程序都在它自己的进程中运行,都拥有一个独立的DALVIK虚拟机实例。DALVIK被设计成一个设备可以同时高效地运行多个虚拟系统。DALVIK虚拟机执行DEX的DALVIK可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“DX”工具转化11

32、理工大学学士学位论文成DEX格式由虚拟机执行。DALVIK虚拟机依赖于LINUX内核的一些功能,比如线程机制和底层内存管理机制。LINUX内核LINUXKERNELANDROID的核心系统服务依赖于LINUX26内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。LINUX内核也同时作为硬件和软件栈之间的抽象层。整体架构上来看,ANDROID相比其它平台显示出了自身的特点,如集成了WEBKIT浏览器、DALVIK虚拟机等模块。ANDROID应用程序类型分析ANDROID的API主要包含几个部分VIEWS、INTENTS、ACTIVITY、PERMISSIONS、RESOURCETYPE、

33、SERVICES、NOTIFICATIONS、CONTENTPROVIDERS以及XML支持。比较重要且常用的如VIEWS用于提供界面设计的接口;SERVICES提供运行在后台的服务;CONTENTPROVIDER定义了一组系统级的数据库;NOTIFICATION为用户提供提醒的API等。这些都可以通过SDK附带的文档查询到。ANDROID上的应用程序可以分成四种主要类型活动、服务、接收器和CONTENTPROVIDER。活动ACTIVITY活动是最常用的ANDROID应用程序形式。活动在一个称为视图类的帮助下,为应用程序提供UI。视图类实现各种UI元素,如文本框、标签、按钮等。一个应用程序可

34、以包含一个或多个活动。这些活动通常与应用程序中的屏幕形成一对一的关系。应用程序通过STARTACTIVITY或STARTSUBACTIVITY方法从一个活动转到另一个活动。如果应用程序只需切换到新的活动,使用前一个方法;如果需要异步的调用响应模式,就使用后一个方法。但均需要通过方法参数传递一个INTENT,由操作系统负责决定哪个活动最适合满足指定的INTENT。INTENT是GOOGLE在ANDROID体系结构中引入的一种新颖的设计元素,INTENT是一种构造,应用程序可以通过它发出相应的请求。应用程序可以按照相似或互补的方式进行注册INTENTFILTER,表明他们有能力或有兴趣执行各种请求

35、或INTENT。视图VIEWANDROID活动通过视图显示UI元素。视图采用以下布局设计之一LINEARVERTICAL,LINEARHORIZONTAL,RELATIVE,TABLE。选择一种布局之后就可以用各个视图显示UI。视12理工大学学士学位论文图元素由一些UI元素组成,包括BUTTON,EDITTEXT,CHECKBOX,RADIOBUTTON,LIST,GRID,DATEPICKER,TIMEPICKER等。视图是在一个XML文件中定义的。每个元素有一个或多个属于ANDROID命名空间的属性。服务SERVICE和接收器RECEIVER与其他多任务计算环境一样,ANDROID可以在后

36、台运行着一些应用程序。ANDROID把这种应用程序称为服务。服务是没有UI的ANDROID应用程序。接收器是一个应用程序组件,它接收请求并处理INTENT。与服务一样。接收器在一般情况下也没有UI元素。服务和接收器通常都在ANDROIDMAINFESTXML文件中注册。通过CONTENTPROVIDER进行数据管理CONTENTPROVIDER是ANDROID的数据存储抽象机制。CONTENTPROVIDER对数据存储的访问方法进行抽象,在许多方面起到数据库服务器的作用。对数据存储中数据的读写操作应该通过适当的CONTENTPROVIDER传递而不是直接访问文件或数据库。233TCP/IP协议

37、TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的七层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这七层是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通信协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这四层分别为应用层应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(TELNET)等。传输层在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传

38、输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层(主机网络层)接收IP数据包并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如ETHERNET、SERIALLINE等)来传送数据。13理工大学学士学位论文TCP/IP协议的功能及工作方式IP层接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包

39、,并把该数据包发送到更高层TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向“上”传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如TELNET的服务程序和客户程序。应用程序轮流将信息送回TCP层

40、,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如TELNET、FTP、RLOGIN、XWINDOWS和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询应答的服务,例如NFS。相对于FTP或TELNET,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺

41、骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。协议的优势在长期的发展过程中,IP逐渐取代其他网络。这里是一个简单的解释,IP传输通用数据。数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。下面是一个普通的过程一个专有的网络开发出来用于特定目的。如果它工作很好,用户将接受它。14理工大学学士学位论文为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。通过一点点的投资IP基础设施逐

42、渐在专有数据网络周边出现。用IP取代专有服务的需求出现,经常是一个用户要求。IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。专有网络受到压制。许多用户开始维护使用IP替代品的复制品。IP包的间接开销很小,少于1,这样在成本上非常有竞争性。人们开发了一种能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。大多数用户为了削减开销,专有网络被取消。TCP的运输连接管理TCP是面向连接的协议。运输连接时用来传送TCP报文的。TCP的运输连接的建立和释放是每一次面向连接的同种必不可少的过程。因此,运输连接就有三个阶段,即连接建立、数据传送和连接释放。运输连接的

43、管理就是使运输连接的建立和释放都能正常地进行。在连接建立过程中要解决以下三个问题(1)要使每一方都能够确知对方的存在。(2)要允许双方协商上一些参数(如最大报文段、最大窗口大小、服务质量等)。(3)能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。TCP的连接和建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(CLIENT),而被动等待连接建立的应用进程叫做服务器(SERVER)。TCP/IP三次握手建立一个连接。第一次握手建立连接时,客户端发送SYN包SYNJ到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手服务器收到SYN包,必须确认客户的SYN(AC

44、KJ1),同时自己也发送一个SYN包(SYNK),即SYNACK包,此时服务器进入SYN_RECV状态;15理工大学学士学位论文第三次握手客户端收到服务器的SYNACK包,向服务器发送确认包ACKACKK1,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念未连接队列在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(SYNJ)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_RECV状态,当服务器收

45、到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。BACKLOG参数表示未连接队列的最大容纳数目。SYNACK重传次数服务器发送完SYNACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。半连接存活时间是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为TIMEOUT时间、SYN_RECV存活时间。16理工大学学

46、士学位论文3系统需求分析31可行性分析经济可行性由于本系统的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平的提高,对自身的经济要求也不高,只要有一台能运行ECLIPSE软件以及ANDROID虚拟机的电脑即可以进行本课题的开发,所以不用考虑经济问题。技术可行性本系统是在ANDROID平台下利用JAVA作为基本开发语言,开发一个能运行在ANDROID系统下的客户端以及纯JAVA服务器,并且利用MYSQL作为本系统的数据库,它是一个支持多用户的数据库,适用范围比较广。JAVA语言提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能的系统提供了保障,保证

47、了代码的模块化要求。用ADT模拟ANDROID系统手机运行环境,给代码的调试提供了很好的开发环境。将ECLIPSE软件作为基本的开发工具,ANDROIDSDK以插件形式存在于ECLIPSE中。运行可行性本系统为一个小型的ANDROID即时通信系统,所以耗费的资源小,一般的PC都能满足系统需求。因此,本系统在运行上是可行的。综上所述,本系统的设计与实现与开发在技术上和硬件设备上的条件都是满足的,所以,它的技术是可行的。32系统功能需求本系统主要通过客户端,服务器端来实现即时通信的基本功能。(1)客户端A用户登录界面及结果;B用户注册界面及结果;C用户聊天界面及结果;D用户查找好友界面及结果;E用

48、户设置界面及结果;F用户退出界面及结果;17理工大学学士学位论文(2)服务器端A处理用户登录;B处理用户注册;C处理用户发送消息;D处理用户接收消息;E处理用户增删改请求;F处理用户退出;33数据流图331顶层数据流图图31顶层数据流图显示聊天用户之间进行信息交流,是通过即时通信系统进行双向的数据交换。图31顶层数据流图聊天用户聊天用户即时通信系统18理工大学学士学位论文332一层数据流图图32是一层数据流图是对顶层数据流图的进一步理解,更详细的描述了数据的传输。图32一层数据流图聊天用户聊天用户即时通信系统服务器端数据流19理工大学学士学位论文4系统设计本章主要介绍了系统的总体架构以及服务器

49、端和客户端的设计方案。系统采用C/S结构,客户端是基于ANDROID手机操作系统开发的即时通信软件,该即时通信软件采用JAVA编程语言开发和MVC的设计模式,并采用自主设计的服务器和MYSQL数据库构建。服务器主要是负责客户端发送的身份验证请求、连接请求、数据交换请求等,并且配合MYSQL的数据储存功能,最后实现客户端之间的即时通信。41系统总体架构设计本系统采用客户端C/服务器S架构的体系结构,具有客户端和服务器两部分。而不是一些即时通信系统使用的客户端C/客户端C的体系结构,所以一个客户端发给另一个客户端的消息都必须经过服务器端。客户端基于ANDROID平台进行开发的,通过服务器实现ANDROID客户端之间的即时通信,进行即时通信时由客户端负责向服务器发起创建连接请求。服务器端服务器负责处理客户端软件发送的身份验证请求、连接请求、数据交换等,配合MYSQL的数据存储功能实现ANDROID手机之间的即时通信。当客户端发出连接请求到服务器,服务器对每个客户端的连接进行认证,认证通过的客户端能进行彼此通信。系统总体架构设计图中有包括服务器端、客户端两个部分。其中客户端提供了常用的即时通信系统服务包括用户注册、用户登录、好友列表显示、文本信息收发、语音图片收发、查找好友,设置等等。服务器端与数据库连接,对客户端的请求给

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。