基于安卓的聊天App的设计与实现毕业论文文档格式.docx
- 文档编号:18582158
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:47
- 大小:830.21KB
基于安卓的聊天App的设计与实现毕业论文文档格式.docx
《基于安卓的聊天App的设计与实现毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于安卓的聊天App的设计与实现毕业论文文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
图标清单
引言
可能谁也不会想到,在多年前被许多人视为浪费时间的即时通讯软件如今已成为了人们生活中不可或缺的东西。
互联网络的迅速开展,4G时代的降临,网络竞争的新一轮焦点当属移动即时通讯市场。
自04年起,许多网络巨头公司就发现了这一商机,微软、雅虎、网易、UC等一批又一批即时通讯软件都潮涌而出,与原本牢牢控制着国内即时通讯市场的QQ争锋相对,开启了一场没有硝烟的战争。
随着时代的开展,QQ靠着庞大的用户群,依然占据了大局部的市场,07年Android发布以后,移动即时通讯成为即时通讯市场的新宠,方便快捷的用户体验使得即时通讯市场又掀起一波浪潮。
据中国互联网信息中心〔CNNIC〕发布的?
第37次中国互联网络开展状况统计报告?
说明,移动即时通讯在互联网使用中几乎由这不可动摇的地位。
个人认为,虽然国内即时通讯市场已几乎被QQ等软件垄断,但是在一些针对性的即时通讯软件开发还存在可观的潜在利益。
所以本文所研究的方向是如何快速的为自己企业的App集成一个即时通讯系统。
第1章绪论
课题背景
根据中国互联网信息中心〔CNNIC〕发布的?
显示,截至2021年12月底,我国网民数量到达了6.88亿,其中手机网民到达90.1%,手机上网已成为网络接入的一个重要组成局部。
在十大互联网应用中,即时通信、搜索引擎和网络新闻三大互联网根底应用占据三甲,使用率均超过80%。
其中,即时通信使用率为90.7%,用户规模到达了62408万人,相比于2021年全年增长了3632万,全年增长率6.2%。
其中手机即时通讯用户规模到达了55719万,由此可见,移动即时通讯在互联网使用中所占据的重要地位。
Android是Google公司在2007年11月推出的一个专为移动设备设计的软件平台,它是一套真正意义上的开放性的移动设备综合平台。
Android由Linux和Java构成的开源软件,不限制任何用户在其根底上进展开发。
它满足了手机市场对于开放性平台的迫切要求,从而如雨后春笋一般迅速崛起。
2021年12月4日下午,工业和信息化部正式发放4G牌照,宣告我国通信行业进入4G时代,如果说3G使得移动即时通讯成为现实,那么,第四代通讯技术2000倍于拨号网络的速度几乎能够满足所有用户的所有通信方式,包括视频和文件,都能在极短的时间内传输完成,这可以说是移动即时通讯一个重要的里程碑。
即时通讯市场开展现状
1.2.1即时通讯市场状况
目前即时通讯市场已经由百家争鸣状态走向了大统一。
原来形形色色的各种即时通讯软件兴起一时,但随着用户群体的减少渐渐走向末路。
这些现象是即时通讯市场逐渐走向成熟的标识。
时至当下,要论国内现有相对流行的几款即时通讯软件,应该属腾讯的QQ以及微信〔WeChat〕为首了,这两款在国内市场占据了主导地位。
其它小局部市场被更具针对性的阿里的钉钉,移动的飞信等等软件所瓜分。
他们的共同点是有强大的效劳器作为技术支持,当然还有大量的第三方客户端的推广作为用户群体根底。
还有些老牌的即时通讯软件,也同样有着强大的效劳端支持,如MSN、IRC、ICQ、UC等等,但是因为跟不上市场需求,用户群没有持续的增长,到现在已经逐渐走向消亡,用户群体逐渐被压缩或者被其他软件所取代。
在与新软件的竞争过程中,缺乏变化,或者被模仿,从而失去新颖性而逐渐走出用户群的视野,新生代的用户多数甚至还没有听说过。
当然,还有更多的小规模团队开发的软件,由于缺乏有力的市场宣传,资金链支持,客户效劳,最重要的是缺乏创新也无法吸引足够的使用者,也无法坚持生存下去,销声匿迹是它必然的归宿。
1.2.2即时通讯市场细分
每一个用户都会根据自己的需求和期待选择使用不同的即时通讯软件。
即时通讯,顾名思义,指在最短的时间内在用户之间进展信息的交互,从而获得庞大的用户群,一般来说,商家不靠这个赚钱,这是一个免费提供的业务。
当然在这个用户群的根底上,可以推出一些增值业务,如QQ的靓号,黄钻,会员等等,但这不在我们现在的探讨范围内。
我们现在所讨论的是按用户对于通讯软件根本功能需求来进展细分。
第一、按用户的性质可以分为企业用户、群体用户、个人用户:
这三者之间的不同之处在于他们所处的环境不同,使用即时通讯软件的目的不同,虽然都是信息的交换,但是企业用户多数谈的是工作上的事,和企业相关的信息,而群体之间交换的是更多的是一些公众信息,作为一个维系群体的存在的平台,个人之间交换的更多的是私生活,个人交际。
第二、按所发的信息类型可分为:
文字信息、文件信息、音频信息、视频信息:
这种分法就很容易理解了,主要按照用户所发信息属性来区分,当然用户之间并不局限于单独的一种或者几种。
从当下主流的通讯软件来看,根本都涵盖了大多数情景,不管是QQ、微信,还是钉钉。
第三、按信息对人的意义可以分为人机信息、机器信息:
1、人机信息:
可以被人类所直观理解的信息,如语言,图像,文字等。
2、机器信息:
简单来说,指人类无法直接理解的机器语言,是机器与机器之间直接交互的信息。
1.2.3即时通讯的前景
对于一些小型企业来说,即时通讯市场已经不适宜他们生存了。
他们能够做的,都已经被QQ、微信等主流软件所实现,想从他们手中夺取用户资源,无异于水中捞月。
而且,研究说明,人类很容易对一个长期使用的事物产生依赖,通讯软件同样如此,他们将被依赖所绑定。
自从QQ在国内崛起后,许多企业都想从这个大蛋糕中分得一块,但多年过去,却没有什么结果,反而腾讯QQ利用庞大的用户群优势,吞噬了其它企业的市场,如联众的在线游戏。
据2021年10月22日腾讯全球合作伙伴大会上PPT所演示内容,当时的QQ最新月活泼用户量到达8.23亿,而微信也到达了6亿之多。
如此巨大的用户资源堪称恐惧。
即时通讯软件的重要根底就是拥有庞大的用户群,从而垄断整个市场,在这种情景下,已经形成气候的QQ、微信等很容易扼杀新兴的软件的,除非拥有更为雄厚的经济实力和更加强大、新颖的技术实力。
不过,这几乎是难以实现的,所以,从另一个突破口来寻找机遇是必然的。
面向个人用户,是当下即时通讯市场的重要特点,这种模式一般都不直接产生直观利润。
但是对于一个企业来说,他们也存在巨大的需求,这将带来很可观的收益。
对于即时通讯的后来者来说,这无异于一个切入点。
拨开眼前的迷雾,前途是光明的,闯过曲折的道路,迎接你的是康庄大道,想要踏入即时通讯市场,这是必然的经历。
无论是通讯市场的垄断持续,还是新兴技术软件的争锋,对用户来说,更为强大,方便,切合用户利益的软件产品才能在这个市场中生存地更久。
本文主要工作
Android作为一个开放性平台,自出现依赖深受广阔用户的青睐。
本文从实际应用出发,提出了开发基于Android系统的手机端即时通讯软件系统。
本文的主要工作包括:
根据环信2.0开发文档,以环信的云效劳器为根底,对该系统进展了具体的设计和实现。
本系统拥有即时文本信息传输,管理好友列表,新消息通知,登录注册等功能模块。
该系统可在Android模拟器上运行,并且取得了良好的运行效果。
论文的组织构造
本文首章分析了系统的研究背景,从即时通讯市场现状、即时通讯市场细分,即时通讯开展前景等方面介绍了即时通讯市场的开展现状。
第二章,对Android的架构作了系统的分析,从Android的特征,工作机制,并把它与其它手机操作系统比照,来表达Android的优势。
第三章,比照当前网络流行的即时IM,对环信即时通讯云进展深入的剖析,对系统的即时通讯机制进展分析,提出解决方案。
第四章,对系统的界面,即时通讯模块,本地数据库模块和扩展功能几个方面进展了详细的设计及实现。
第五章,通过注册登录,获取好友列表,获取会话列表,消息的发送和承受,添加、删除好友几个方面对系统进展测试。
第六章,总结本文的研究内容以及研究成果,通过对过程及结果的分析,整理,归纳,得出自己的观点及存在的问题,并对今后开展的展望。
第2章Android的架构分析
Android是一个以Linux为根底的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟主导。
Android
系统最初由安迪·
鲁宾〔Andy
Rubin〕制作,最初主要支持手机。
2005年8月17日被Google收购。
2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟〔OpenHandsetAlliance〕来共同研发改进Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。
随后,Google以Apache免费开元许可证授权方式,发布了Android的源代码。
2.1Android特征
系统内核:
Android是运行于Linuxkernel之上,但并不是GNU/Linux。
Android为了到达商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开,以bionic取代Glibc、以Ski-a取代Cairo、再以opencore取代FFmpeg等等。
硬件抽象层:
Android的HAL〔硬件抽像层〕是能以封闭源码形式提供硬件驱动模块,为了把Androidframework与Linuxkernel隔开。
中介软件:
操作系统与应用程序的沟通桥梁。
Android使用skia为核心图形引擎,搭配OpenGL/ES。
skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是雏形的。
2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,目前Skia也是GoogleChrome的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。
数据库又分为共用数据库及私用数据库。
用户可通过ContentResolver类〔Column〕取得共用数据库。
Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机〔DalvikVirtualMachine〕。
Dalvik虚拟机是一种“暂存器型态〞〔RegisterBased〕的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例〔instance〕,每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可到达优化。
Dalvik虚拟机并非运行Java字节码〔Bytecode〕,而是运行一种称为.dex格式的文件。
平安权限机制:
Android本身是一个权限分立的操作系统。
系统更多的平安功能通过权限机制提供。
Android平安架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进展较大影响的操作。
安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。
2.2Android的架构
Android的系统架构采用了分层架构的思想,如图1所示。
从上层到底层共包括四层,分别是应用程序层,应用程序框架层,系统库和运行时,Linux内核。
图2-1分层架构图
应用程序层:
在这层中,系统提供了一些根底的核心应用包,如短信、联系人管理、电子邮件、日历、系统设置、浏览器等。
同事,开发者可以利用Java语言编写属于自己的应用程序,这些程序与核心应用程序是平等的。
应用程序框架层:
该层作为应用程序开发的根底,在绝大多数情况下,开发人员都在与她打交道。
应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、管理器、资源管理器、位置管理器、通知管理器和XMPP效劳十个局部。
在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。
并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序那么可以使用这些已发布的功能模块。
基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
系统库和Android运行时:
系统库包括九个子系统,分别是图层管理、媒体库、SQ-Lite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。
Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Andr-oid的核心库,比方android.os、、android.media等等。
后者是一种基于存放器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、平安和异常的管理以及垃圾回收等重要功能。
Linux内核:
目前市场上广泛流行的Android版本中,以Linux3.8为效劳核心的Andr-oid5.0系统大幅度提高了RAM的读取速度和多任务处理能力,拥有良好的用户体验。
2.3Android的工作机制
一个Android程序由四大组件组成,它们分别是“Activity〞,“Service〞,“ContentP-rovider〞和“BroadCastReceiver〞。
但并不是每一个应用程序都包含这四个组件,在应用程序中使用这些组件时,必须先在AndroidMainfest.xml中进展配置。
Android的应用构成和工作流程图如下:
图2-2工作流程图
2.3.1Activity
Activity是用户接口程序,几乎所有的Activity都要和用户打交道,原那么上它会提供给用户一个交互式的接口功能。
Activity自身是没有界面的,所以它会创立一个窗口,通过setContentView〔View〕接口来加载UI界面。
Activity可以全屏显示,也可以通过更改主题使得其窗口化。
Activity一共有七大生命周期:
图2-3Activity的生命周期
〔1〕Activity生命周期
由图2-3可知,一个Activity正常启动过程中,调用的方法为onCreate()->
onStart()->
onResum();
在Activity被Kill的时候调用的方法为onPause()->
onStop()->
onDesto-ry();
这是一个完整的生命周期。
onCreate():
在此方法中创立界面,做一些初始化操作。
onStart():
变成“用户可见不可交互〞状态。
onResume():
变成“和用户可交互〞状态。
onPause():
onStop():
不可见,被下一个Activity所覆盖。
onDestory():
Activity被Kill前调用的最后一个方法。
〔2〕Activity之间的通信
在Android中一个进程中可能会运行多个不同的Activity实例,也可能在不同的进程中运行不同的Activity实例,所以,我们需要一些特别的机制来实现多个Activity之间传递消息,为此引入了Intent机制。
Intent负责对操作的动作、动作涉及数据、附加数据进展描述,Android那么根据此Int-ent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
在应用中,我们可以以两种形式来使用它:
直接Intent:
指定了component属性的Intent〔调用setComponent(ComponentName)或者setClass(Context,Class)来指定〕。
通过指定具体的组件类,通知应用启动对应的组件。
间接Intent:
没有指定comonent属性的Intent。
这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。
2.3.2Service
android中Service是运行在后台的东西,级别与activity差不多。
既然说service是运行在后台的效劳,那么它就是不可见的,没有界面的东西。
你可以启动一个效劳Ser-vice来播放音乐,或者记录你地理信息位置的改变,或者启动一个效劳来运行并一直监听某种动作。
Service和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的请求或者动作。
你可以在效劳中开一个线程,在线程中做耗时动作。
效劳一般分为两种:
本地效劳:
LocalService用于应用程序内部。
在Service可以调用Context.startSer-vice()启动,调用Context.stopService()完毕。
在内部可以调用Service.stopSelf()或Servi-ce.stopSelfResult()来自己停顿。
无论调用了多少次startService(),都只需调用一次stop-Service()来停顿。
远程效劳:
RemoteService用于android系统内部的应用程序之间。
可以定义接口并把接口暴露出来,以便其他应用进展操作。
客户端建立到效劳对象的连接,并通过那个连接来调用效劳。
调用Context.bindService()方法建立连接,并启动,以调用Context.unbindService()关闭连接。
多个客户端可以绑定至同一个效劳。
如果效劳此时还没有加载,bindService()会先加载它。
2.3.3ContentProvider
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。
虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:
采用文件方式对外共享数据,需要进展文件操作读写数据;
采用sharedpreferences共享数据,需要使用sharedpreferences
API读写数据。
而使用C-ontentProvider共享数据的好处是统一了数据访问方式。
2.3.4BroadcastReceiver
播送接收器是一个专注于接收播送通知信息,并做出对应处理的组件。
很多播送是源自于系统代码的──比方,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。
应用程序也可以进展播送──比方说,通知其它应用程序一些数据下载完成并处于可用状态。
一般流程可分为一下三步:
注册播送事件:
注册方式有两种,一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的播送接收器必须要继承BroadcastReceiver;
另一种是动态注册,是在程序中使用Context.registerReceiver注册,注册的播送接收器相当于一个匿名类。
两种方式都需要IntentFIlter。
发送播送事件:
通过Context.sendBroadcast来发送,由Intent来传递注册时用到的Ac-tion。
接收播送事件:
当发送的播送被接收器监听到后,会调用它的onReceive()方法,并将包含消息的Intent对象传给它。
onReceive中代码的执行时间不要超过5s,否那么An-droid会弹出超时dialog。
2.4Android和其它手机操作系统的比拟
图2-4Android系统在市场的占有率〔2021—2021〕
由图2-4不难看出,Android系统的全球市场战友率已占据榜首,并且仍在逐年递增。
至于原因,我想大家来看一下各系统的对照表就明白了。
表2-1手机操作系统对照表
从表中,我们可以发现Android在各项指标中都有良好的表现,特别是开放性和对第三方的支持性上尤为优异,这是它占领大多数市场的必要条件。
就目前来说,Androi-d在用户体验性上可能还不如ios,但随着的发布,Android系统的流畅性大大提高,而且的应用图标更趋向于ios的扁平化应用,随着Android的开展,用户体验性就不再成为Android的弱势所在。
2.5本章小结
本章对Android的构造、特征、工作机制做了详细的介绍,通过对各个手机操作系统的比拟分析,确立Android操作系统的优势,说明本问研究的必要性。
第3章即时通讯系统
本章介绍了即时通讯系统的总体框架和相关解决方案。
以环信即时通讯云为根底,实现客户端与客户端之间的即时通信。
3.1系统概述
本文中所实现的是在Android平台上开发的即时通讯系统,它能够在用户之间快捷的传递消息。
现今很多流行的通讯软件,在聊天根底上开发了很多增值业务,这在很大程度上满足了个人用户的需求。
但是,这对企业用户来说过于繁琐。
本系统可以直接运用于各个App,使得App拥有即时通讯功能。
如果在企业App中参加聊天功能,就可使得工作和生活完美别离。
3.2即时通讯简介
即时通讯软件是通过即时通讯技术来实现在线聊天、交流的软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 聊天 App 设计 实现 毕业论文