ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:860.91KB ,
资源ID:5835356      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5835356.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于安卓的聊天App的设计与实现毕业论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于安卓的聊天App的设计与实现毕业论文.docx

1、基于安卓的聊天App的设计与实现毕业论文安卓聊天室Ap的设计与实现摘要年oge发布Android后,方便快捷的用户体验使得移动即时通讯成为即时通讯市场的新宠。作为互联网时代的新兴产业,即时通讯在整个互联网市场中占据着越来越重要的地位。本系统是基于Adroi平台开发的一款手机聊天客户端应用程序。系统基于环信M服务器,实现了注册登录,会话列表的获取,好友列表的获取,文本信息的即时通讯等功能。本系统主要使用轻量型嵌入式数据库SQLt来存储数据,运用util框架实现对数据库的操作。本文在分析了当前环境下聊天App的发展前景后,进行了系统的设计和实现,并对系统进行了完整的测试。系统具有界面友好,操作简单

2、,方便实用的特点。关键词: Android;即时通讯;环信;聊天p;si andIplemenation of AndroidCatroomAbsrtAter 200 Goole relead Andro,ecause h ovenie se xeice,moie becom h newdarlg of the intant messagingmarke. an emegngndustr n e g f the Irnet,insant essi ccupy an incresgl impt osin the Itee maket.hs system i bad ring etr M serv

3、er,iplements gstrtion n loi,sssin oobtnth lst,ge a lis o rens,cha tex messageand oth functnsTesystemmin us igtwiht mbe datse Qietstore ta,the use ofxutils famworkto cieveperation f the daabse.Afer nazig te prostsfr dvelopmn thecurrent environmentto ha p,earried ut thedgn animplemnato the sem,adthe s

4、tm has ee fly etedywors:drod;nstat messagng;rigetr;引 言 1第1章 绪论 .1课题背景 2。2即时通讯市场发展现状。3本文主要工作4。论文的组织结构 4第2章 Android的架构分析52。1 Adrod特征52。 Android的架构62.3 Andoid的工作机制 72.3。 Acvity 2 Serice 8.5 本章小结 10第3章 即时通讯系统11。 系统概述113.3系统架构 13。4 网络通信13。3.4网络协议132.3。4 PRS和Inteet的连接 13.5Adroid SDK 介绍16。 本章小结 18第4章 系统的设计

5、与实现14。1 系统项目结构设计204。 系统客户端的设计与实现 2.2.1 用户界面 214。3 即时通讯流程描述 4。3。1 判断网络是否连接44。3。 用户的登录和登出 44。4 好友列表的读取274.3.5 发送和接收消息27第5章 系统的部署及测试 305.1系统部署305。2系统测试 3结论与展望3致 谢 34参考文献35附 录36附录A 外文文献及其翻译3附录B主要参考文献的题录及摘要 5图标清单表4 1 usr表结构22图22 工作流程图 图 Androd系统在市场的占有率(21016) 图- 系统整体流程图19图 2 代码结构图10图 代码结构图2 21图4- 用户实体-联系

6、图图4 5 登录模块 24图4 6 登录界面效果图 2图-服务器用户列表30图5 会话列表界面 3图5- 好友列表界面3图5- ja聊天页面 32图 o聊天页面 32引 言可能谁也不会想到,在多年前被许多人视为浪费时间的即时通讯软件如今已成为了人们生活中不可或缺的东西。互联网络的迅速发展,4时代的来临,网络竞争的新一轮焦点当属移动即时通讯市场。自04年起,许多网络巨头公司就发现了这一商机,微软、雅虎、网易、UC等一批又一批即时通讯软件都潮涌而出,与原本牢牢控制着国内即时通讯市场的Q争锋相对,开启了一场没有硝烟的战争。随着时代的发展,Q靠着庞大的用户群,依然占据了大部分的市场,07年Androi

7、d发布以后,移动即时通讯成为即时通讯市场的新宠,方便快捷的用户体验使得即时通讯市场又掀起一波浪潮.据中国互联网信息中心(NNIC)发布的第37次中国互联网络发展状况统计报告表明,移动即时通讯在互联网使用中几乎由这不可动摇的地位。个人认为,虽然国内即时通讯市场已几乎被Q等软件垄断,但是在一些针对性的即时通讯软件开发还存在可观的潜在利益。所以本文所研究的方向是如何快速的为自己企业的App集成一个即时通讯系统。第1章 绪论1.1课题背景根据中国互联网信息中心(CNNIC)发布的第3次中国互联网络发展状况统计报告显示,截至21年12月底,我国网民数量达到了6。88亿,其中手机网民达到01,手机上网已成

8、为网络接入的一个重要组成部分.在十大互联网应用中,即时通信、搜索引擎和网络新闻三大互联网基础应用占据三甲,使用率均超过80%。其中,即时通信使用率为90.7%,用户规模达到了620万人,相比于2014年全年增长了3632万,全年增长率6。2%。其中手机即时通讯用户规模达到了571万,由此可见,移动即时通讯在互联网使用中所占据的重要地位。ndroid是ooe公司在27年11月推出的一个专为移动设备设计的软件平台,它是一套真正意义上的开放性的移动设备综合平台。oid由iu和ava构成的开源软件,不限制任何用户在其基础上进行开发。它满足了手机市场对于开放性平台的迫切要求,从而如雨后春笋一般迅速崛起。

9、21年12月4日下午,工业和信息化部正式发放4G牌照,宣告我国通信行业进入4G时代,如果说3G使得移动即时通讯成为现实,那么,第四代通讯技术0倍于拨号网络的速度几乎能够满足所有用户的所有通信方式,包括视频和文件,都能在极短的时间内传输完成,这可以说是移动即时通讯一个重要的里程碑。.2即时通讯市场发展现状1。1 即时通讯市场状况目前即时通讯市场已经由百家争鸣状态走向了大统一。原来形形色色的各种即时通讯软件兴起一时,但随着用户群体的减少渐渐走向末路.这些现象是即时通讯市场逐渐走向成熟的标识。时至当下,要论国内现有相对流行的几款即时通讯软件,应该属腾讯的QQ以及微信(eCat)为首了,这两款在国内市

10、场占据了主导地位。其它小部分市场被更具针对性的阿里的钉钉,移动的飞信等等软件所瓜分。他们的共同点是有强大的服务器作为技术支持,当然还有大量的第三方客户端的推广作为用户群体基础。还有些老牌的即时通讯软件,也同样有着强大的服务端支持,如MSN、IC、ICQ、C等等,但是因为跟不上市场需求,用户群没有持续的增长,到现在已经逐渐走向消亡,用户群体逐渐被压缩或者被其他软件所取代。在与新软件的竞争过程中,缺乏变化,或者被模仿,从而失去新颖性而逐渐走出用户群的视野,新生代的用户多数甚至还没有听说过。当然,还有更多的小规模团队开发的软件,由于缺乏有力的市场宣传,资金链支持,客户服务,最重要的是缺乏创新也无法吸

11、引足够的使用者,也无法坚持生存下去,销声匿迹是它必然的归宿.1.2.2即时通讯市场细分每一个用户都会根据自己的需求和期待选择使用不同的即时通讯软件即时通讯,顾名思义,指在最短的时间内在用户之间进行信息的交互,从而获得庞大的用户群,一般来说,商家不靠这个赚钱,这是一个免费提供的业务当然在这个用户群的基础上,可以推出一些增值业务,如Q的靓号,黄钻,会员等等,但这不在我们现在的探讨范围内。我们现在所讨论的是按用户对于通讯软件基本功能需求来进行细分。第一、按用户的性质可以分为企业用户、群体用户、个人用户:这三者之间的不同之处在于他们所处的环境不同,使用即时通讯软件的目的不同,虽然都是信息的交换,但是企

12、业用户多数谈的是工作上的事,和企业相关的信息,而群体之间交换的是更多的是一些公众信息,作为一个维系群体的存在的平台,个人之间交换的更多的是私生活,个人交际。第二、按所发的信息类型可分为:文字信息、文件信息、音频信息、视频信息:这种分法就很容易理解了,主要按照用户所发信息属性来区分,当然用户之间并不局限于单独的一种或者几种。从当下主流的通讯软件来看,基本都涵盖了大多数情景,不论是QQ、微信,还是钉钉。第三、按信息对人的意义可以分为人机信息、机器信息:1、人机信息:可以被人类所直观理解的信息,如语言,图像,文字等.2、机器信息:简单来说,指人类无法直接理解的机器语言,是机器与机器之间直接交互的信息

13、。1。2.即时通讯的前景对于一些小型企业来说,即时通讯市场已经不适宜他们生存了。他们能够做的,都已经被QQ、微信等主流软件所实现,想从他们手中夺取用户资源,无异于水中捞月。而且,研究表明,人类很容易对一个长期使用的事物产生依赖,通讯软件同样如此,他们将被依赖所绑定。自从QQ在国内崛起后,许多企业都想从这个大蛋糕中分得一块, 但多年过去,却没有什么结果,反而腾讯QQ利用庞大的用户群优势,吞噬了其它企业的市场,如联众的在线游戏。据21年0月22日腾讯全球合作伙伴大会上PPT所演示内容,当时的Q最新月活跃用户量达到8.2亿,而微信也达到了6亿之多。如此巨大的用户资源堪称恐怖。即时通讯软件的重要基础就

14、是拥有庞大的用户群,从而垄断整个市场,在这种情景下,已经形成气候的QQ、微信等很容易扼杀新兴的软件的,除非拥有更为雄厚的经济实力和更加强大、新颖的技术实力。不过,这几乎是难以实现的,所以,从另一个突破口来寻找机遇是必然的.面向个人用户,是当下即时通讯市场的重要特点,这种模式一般都不直接产生直观利润。但是对于一个企业来说,他们也存在巨大的需求,这将带来很可观的收益。对于即时通讯的后来者来说,这无异于一个切入点。拨开眼前的迷雾,前途是光明的,闯过曲折的道路,迎接你的是康庄大道,想要踏入即时通讯市场,这是必然的经历。无论是通讯市场的垄断持续,还是新兴技术软件的争锋,对用户来说,更为强大,方便,切合用

15、户利益的软件产品才能在这个市场中生存地更久.1.3本文主要工作Android作为一个开放性平台,自出现依赖深受广大用户的青睐.本文从实际应用出发,提出了开发基于Android系统的手机端即时通讯软件系统.本文的主要工作包括:根据环信2。0开发文档,以环信的云服务器为基础,对该系统进行了具体的设计和实现。本系统拥有即时文本信息传输,管理好友列表,新消息通知,登录注册等功能模块。该系统可在drid模拟器上运行,并且取得了良好的运行效果。4论文的组织结构本文首章分析了系统的研究背景,从即时通讯市场现状、即时通讯市场细分,即时通讯发展前景等方面介绍了即时通讯市场的发展现状.第二章,对Andoid的架构

16、作了系统的分析,从Anroid的特征,工作机制,并把它与其它手机操作系统对比,来体现Anroid的优势。第三章,对比当前网络流行的即时M,对环信即时通讯云进行深入的剖析,对系统的即时通讯机制进行分析,提出解决方案。第四章,对系统的界面,即时通讯模块,本地数据库模块和扩展功能几个方面进行了详细的设计及实现。第五章,通过注册登录,获取好友列表,获取会话列表,消息的发送和接受,添加、删除好友几个方面对系统进行测试。第六章,总结本文的研究内容以及研究成果,通过对过程及结果的分析,整理,归纳,得出自己的观点及存在的问题,并对今后发展的展望。第2章 Anroid的架构分析Andrid是一个以Lin为基础的

17、半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟主导。Adrod系统最初由安迪鲁宾(ndu)制作,最初主要支持手机。00年8月17日被Google收购。07年11月日,Gogl与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Oen Handst Alliac)来共同研发改良ndi系统并生产搭载Andrid的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,oge以pace免费开元许可证授权方式,发布了nroid的源代码.2。1 ndroid特征系统内核:Adoid 是运行于 ux kene之上,但并不是NULinux.Adod为了达到商业应用,必须移除被GN

18、UGP授权证所约束的部份,例如Android将驱动程序移到 ussace,使得inu dier与 Liuxkerel彻底分开,以bionic取代libc、以Ski取代Cio、再以oenore取代mpeg等等。硬件抽象层:drod 的 A(硬件抽像层)是能以封闭源码形式提供硬件驱动模块,为了把Adroid framor与 ux kernel 隔开。中介软件:操作系统与应用程序的沟通桥梁。Ard 使用sk 为核心图形引擎,搭配OpnGL/ES。sk与ux C功能相当,但相较于Linu Cao,kia 功能还只是雏形的。200年Sia公司被Google收购,207年初,Skia GL源码被公开,目前

19、Skia 也是Ggle Chrome 的图形引擎.Andoi的多媒体数据库采用QLte数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ntentRsover类(Cln)取得共用数据库。Android的中间层多以Java实现,并且采用特殊的Dlik虚拟机(DaliVitul Mahie)。Dai虚拟机是一种“暂存器型态”(Rgise ased)的Jaa虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少.Dalvk虚拟机可以有多个实例(instanc),每个Anroid应用程序都用一个自属的avik虚拟机来运行,让系统在运行程序时可达到优化。Dalvi虚拟机并非运行Jav字节码(Byto

20、de),而是运行一种称为。格式的文件。安全权限机制:ndrod本身是一个权限分立的操作系统。系统更多的安全功能通过权限机制提供。Andrd安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。2 Andro的架构Androi的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序层,应用程序框架层,系统库和运行时,inux内核。图2 1 分层架构图应用程序层:在这层中,系统提供了一些基础的核心应用包,如短信、联系人管理、电子邮件、日历、系统

21、设置、浏览器等.同事,开发者可以利用Java语言编写属于自己的应用程序,这些程序与核心应用程序是平等的。应用程序框架层:该层作为应用程序开发的基础,在绝大多数情况下,开发人员都在与她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Aroid平台上,开发人员可以完全访问核心应用程序所使用的AP框架并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。系统库和Anrid运行时:系统库包括

22、九个子系统,分别是图层管理、媒体库、SQ-ie、OpenGSt、Feee、ebKi、G、SS和libc。Android运行时包括核心库和lvi虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Androi的核心库,比如adoid。os、anrdnet、android.eia等等。后者是一种基于寄存器的jaa虚拟机,Dalvi虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。Linux内核:目前市场上广泛流行的Anroid版本中,以Lix.8为服务核心的Adoid 5.0系统大幅度提高了RM的读取速度和多任务处理能力,拥有良好的用

23、户体验。2。3 Android的工作机制一个nroi程序由四大组件组成,它们分别是“Ativity”,“Srice”,“Conet P-roder”和“BroadCastecive。但并不是每一个应用程序都包含这四个组件,在应用程序中使用这些组件时,必须先在Androidainesml中进行配置Anroid的应用构成和工作流程图如下:图2-工作流程图31AtvityActivt是用户接口程序,几乎所有的civity都要和用户打交道,原则上它会提供给用户一个交互式的接口功能。Acivity自身是没有界面的,所以它会创建一个窗口,通过setoteViw(View)接口来加载UI界面。Ativity

24、可以全屏显示,也可以通过更改主题使得其窗口化。Ativity一共有七大生命周期:图2 Actiit的生命周期(1)Actvity生命周期由图23可知,一个Acivity正常启动过程中,调用的方法为onCreate() trt() - oResum();在Activy被Kll的时候调用的方法为oPuse()ontop() onDestory();这是一个完整的生命周期。Ceate():在此方法中创建界面,做一些初始化操作.onStart():变成“用户可见不可交互状态.oResum():变成“和用户可交互”状态。onPaus():变成“用户可见不可交互”状态.Stp():不可见,被下一个Acti

25、vity所覆盖。nDesor():tiity被Kll前调用的最后一个方法.()civity之间的通信在Anri中一个进程中可能会运行多个不同的Activity实例,也可能在不同的进程中运行不同的tiit实例,所以,我们需要一些特别的机制来实现多个tvity之间传递消息,为此引入了Itent机制.nten负责对操作的动作、动作涉及数据、附加数据进行描述,Anroid则根据此Int-ent的描述,负责找到对应的组件,将 Inen传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种

26、形式来使用它:直接tet:指定了cmpnent属性的Intent(调用setComponen(ComponetNa)或者tClass(Contxt, Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。间接Inent:没有指定monet属性的ten。这些Itnt需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此tet的组件。3。 Servceandrid中Serice是运行在后台的东西,级别与ctiviy差不多。既然说ervice是运行在后台的服务,那么它就是不可见的,没有界面的东西。你可以启动一个服务Sevc来播放音乐,或者记录你地理信息位置的改变

27、,或者启动一个服务来运行并一直监听某种动作。Sevic和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的请求或者动作。你可以在服务中开一个线程,在线程中做耗时动作.服务一般分为两种:本地服务:Loca Servic用于应用程序内部。在Srice可以调用ontxt。tatervce()启动,调用Cnxt。stoervie()结束.在内部可以调用Srvice.sopSe() 或 erice。topSlesult()来自己停止.无论调用了多少次satSrvic(),都只需调用一次oervic()来停止。远程服务:emoteervice用于androi系统内部的应用程序之间.可以定义接口并把接

28、口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务.调用Cotx。bindServic()方法建立连接,并启动,以调用 Contt。unbindServce()关闭连接多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindServie()会先加载它。2.3。3Cntt Provider当应用继承CtntPrider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用shaererencs共享数据

29、,需要使用sharedprefeenesAP读写数据。而使用C-ontentrovider共享数据的好处是统一了数据访问方式。.3。4 Brodcast Recev广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播比如说,通知其它应用程序一些数据下载完成并处于可用状态。一般流程可分为一下三步:注册广播事件:注册方式有两种,一种是静态注册,就是在AndroidMaift.xl文件中定义,注册的广播接收器必须要继承BodcastReceivr;另一种是动态注册,是在程序中使用Ctxt.regiseRecever注册,注册的广播接收器相当于一个匿名类。两种方式都需要ntentFIltr发送广播

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1