《毕业设计(论文)基于安卓的聊天App的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于安卓的聊天App的设计与实现.doc(54页珍藏版)》请在三一办公上搜索。
1、安卓聊天室App的设计与实现摘要07年Google发布Android后,方便快捷的用户体验使得移动即时通讯成为即时通讯市场的新宠。作为互联网时代的新兴产业,即时通讯在整个互联网市场中占据着越来越重要的地位。本系统是基于Android平台开发的一款手机聊天客户端应用程序。系统基于环信IM服务器,实现了注册登录,会话列表的获取,好友列表的获取,文本信息的即时通讯等功能。本系统主要使用轻量型嵌入式数据库SQLite来存储数据,运用x-utils框架实现对数据库的操作。本文在分析了当前环境下聊天App的发展前景后,进行了系统的设计和实现,并对系统进行了完整的测试。系统具有界面友好,操作简单,方便实用的
2、特点。关键词: Android;即时通讯;环信;聊天App;Design and Implementation of Android Chat roomAbstractAfter 2007 Google released Android,because the convenient user experience,mobile IM become the new darling of the instant messaging marketAs an emerging industry in the age of the Internet,instant messaging occupy an
3、 increasingly important position in the Internet marketThis system is based ring letter IM server,implements registration and login,session to obtain the list,get a list of friends,chat text messages and other functionsThe system main use of lightweight embedded database SQLite to store data,the use
4、 of x-utils framework to achieve operation of the databaseAfter analyzing the prospects for development in the current environment to chat App,we carried out the design and implementation of the system,and the system has been fully testedKeywords:Android;instant messaging;ring letter;引 言1第1章 绪论21.1课
5、题背景21.2即时通讯市场发展现状21.2.1 即时通讯市场状况21.2.2 即时通讯市场细分31.2.3 即时通讯的前景31.3本文主要工作41.4论文的组织结构4第2章 ANDROID的架构分析52.1 Android特征52.2 Android的架构62.3 Android的工作机制72.3.1 Activity72.3.2 Service82.3.3 Content Provider92.3.4 Broadcast Receiver92.4 Android和其它手机操作系统的比较92.5 本章小结10第3章 即时通讯系统113.1 系统概述113.2 即时通讯简介113.2 环信简介1
6、23.3 系统架构133.4 网络通信132.3.4 网络协议132.3.4 GPRS和Intenet的连接163.5 Android SDK 介绍163.6 本章小结18第4章 系统的设计与实现194.1 系统项目结构设计204.2 系统客户端的设计与实现214.2.1 用户界面214.2.2 数据存储224.3 即时通讯流程描述244.3.1 判断网络是否连接244.3.2 用户的登录和登出244.3.3 会话列表的读取264.3.4 好友列表的读取274.3.5 发送和接收消息274.4 本章小结29第5章 系统的部署及测试305.1系统部署305.2系统测试305.3本章小结32结论与
7、展望33致 谢34参考文献35附 录36附录A 外文文献及其翻译36附录B 主要参考文献的题录及摘要45图标清单表4- 1 user表结构22表4- 2 name表结构23图2- 1 分层架构图6图2-2 工作流程图7图2-3 Activity的生命周期7图2-4 Android系统在市场的占有率(20142016)9图3- 1 环信SDK 开发框架16图3- 2 SDK模块化17图4- 1 系统整体流程图19图4- 2 代码结构图120图4- 3 代码结构图221图4- 4 用户实体-联系图23图4- 5 登录模块24图4- 6 登录界面效果图25图5-1注册界面30图5-2 服务器用户列表
8、30图5-3 会话列表界面31图5-4 好友列表界面31图5- 5 jack聊天页面32图5- 6 tom聊天页面32引 言可能谁也不会想到,在多年前被许多人视为浪费时间的即时通讯软件如今已成为了人们生活中不可或缺的东西。互联网络的迅速发展,4G时代的来临,网络竞争的新一轮焦点当属移动即时通讯市场。自04年起,许多网络巨头公司就发现了这一商机,微软、雅虎、网易、UC等一批又一批即时通讯软件都潮涌而出,与原本牢牢控制着国内即时通讯市场的QQ争锋相对,开启了一场没有硝烟的战争。随着时代的发展,QQ靠着庞大的用户群,依然占据了大部分的市场,07年Android发布以后,移动即时通讯成为即时通讯市场的
9、新宠,方便快捷的用户体验使得即时通讯市场又掀起一波浪潮。据中国互联网信息中心(CNNIC)发布的第37次中国互联网络发展状况统计报告表明,移动即时通讯在互联网使用中几乎由这不可动摇的地位。个人认为,虽然国内即时通讯市场已几乎被QQ等软件垄断,但是在一些针对性的即时通讯软件开发还存在可观的潜在利益。所以本文所研究的方向是如何快速的为自己企业的App集成一个即时通讯系统。第1章 绪论1.1课题背景根据中国互联网信息中心(CNNIC)发布的第37次中国互联网络发展状况统计报告显示,截至2015年12月底,我国网民数量达到了6.88亿,其中手机网民达到90.1%,手机上网已成为网络接入的一个重要组成部
10、分。在十大互联网应用中,即时通信、搜索引擎和网络新闻三大互联网基础应用占据三甲,使用率均超过80%。其中,即时通信使用率为90.7%,用户规模达到了62408万人,相比于2014年全年增长了3632万,全年增长率6.2。其中手机即时通讯用户规模达到了55719万,由此可见,移动即时通讯在互联网使用中所占据的重要地位。Android是Google公司在2007年11月推出的一个专为移动设备设计的软件平台,它是一套真正意义上的开放性的移动设备综合平台。Android由Linux和Java构成的开源软件,不限制任何用户在其基础上进行开发。它满足了手机市场对于开放性平台的迫切要求,从而如雨后春笋一般迅
11、速崛起。2013年12月4日下午,工业和信息化部正式发放4G牌照,宣告我国通信行业进入4G时代,如果说3G使得移动即时通讯成为现实,那么,第四代通讯技术2000倍于拨号网络的速度几乎能够满足所有用户的所有通信方式,包括视频和文件,都能在极短的时间内传输完成,这可以说是移动即时通讯一个重要的里程碑。1.2即时通讯市场发展现状1.2.1 即时通讯市场状况目前即时通讯市场已经由百家争鸣状态走向了大统一。原来形形色色的各种即时通讯软件兴起一时,但随着用户群体的减少渐渐走向末路。这些现象是即时通讯市场逐渐走向成熟的标识。时至当下,要论国内现有相对流行的几款即时通讯软件,应该属腾讯的QQ以及微信(WeCh
12、at)为首了,这两款在国内市场占据了主导地位。其它小部分市场被更具针对性的阿里的钉钉,移动的飞信等等软件所瓜分。他们的共同点是有强大的服务器作为技术支持,当然还有大量的第三方客户端的推广作为用户群体基础。还有些老牌的即时通讯软件,也同样有着强大的服务端支持,如MSN、IRC、ICQ、UC等等,但是因为跟不上市场需求,用户群没有持续的增长,到现在已经逐渐走向消亡,用户群体逐渐被压缩或者被其他软件所取代。在与新软件的竞争过程中,缺乏变化,或者被模仿,从而失去新颖性而逐渐走出用户群的视野,新生代的用户多数甚至还没有听说过。当然,还有更多的小规模团队开发的软件,由于缺乏有力的市场宣传,资金链支持,客户
13、服务,最重要的是缺乏创新也无法吸引足够的使用者,也无法坚持生存下去,销声匿迹是它必然的归宿。1.2.2 即时通讯市场细分每一个用户都会根据自己的需求和期待选择使用不同的即时通讯软件。即时通讯,顾名思义,指在最短的时间内在用户之间进行信息的交互,从而获得庞大的用户群,一般来说,商家不靠这个赚钱,这是一个免费提供的业务。当然在这个用户群的基础上,可以推出一些增值业务,如QQ的靓号,黄钻,会员等等,但这不在我们现在的探讨范围内。我们现在所讨论的是按用户对于通讯软件基本功能需求来进行细分。第一、按用户的性质可以分为企业用户、群体用户、个人用户:这三者之间的不同之处在于他们所处的环境不同,使用即时通讯软
14、件的目的不同,虽然都是信息的交换,但是企业用户多数谈的是工作上的事,和企业相关的信息,而群体之间交换的是更多的是一些公众信息,作为一个维系群体的存在的平台,个人之间交换的更多的是私生活,个人交际。第二、按所发的信息类型可分为:文字信息、文件信息、音频信息、视频信息:这种分法就很容易理解了,主要按照用户所发信息属性来区分,当然用户之间并不局限于单独的一种或者几种。从当下主流的通讯软件来看,基本都涵盖了大多数情景,不论是QQ、微信,还是钉钉。第三、按信息对人的意义可以分为人机信息、机器信息:1、人机信息:可以被人类所直观理解的信息,如语言,图像,文字等。2、机器信息:简单来说,指人类无法直接理解的
15、机器语言,是机器与机器之间直接交互的信息。1.2.3 即时通讯的前景对于一些小型企业来说,即时通讯市场已经不适宜他们生存了。他们能够做的,都已经被QQ、微信等主流软件所实现,想从他们手中夺取用户资源,无异于水中捞月。而且,研究表明,人类很容易对一个长期使用的事物产生依赖,通讯软件同样如此,他们将被依赖所绑定。自从QQ在国内崛起后,许多企业都想从这个大蛋糕中分得一块, 但多年过去,却没有什么结果,反而腾讯QQ利用庞大的用户群优势,吞噬了其它企业的市场,如联众的在线游戏。据2015年10月22日腾讯全球合作伙伴大会上PPT所演示内容,当时的QQ最新月活跃用户量达到8.23亿,而微信也达到了6亿之多
16、。如此巨大的用户资源堪称恐怖。即时通讯软件的重要基础就是拥有庞大的用户群,从而垄断整个市场,在这种情景下,已经形成气候的QQ、微信等很容易扼杀新兴的软件的,除非拥有更为雄厚的经济实力和更加强大、新颖的技术实力。不过,这几乎是难以实现的,所以,从另一个突破口来寻找机遇是必然的。面向个人用户,是当下即时通讯市场的重要特点,这种模式一般都不直接产生直观利润。但是对于一个企业来说,他们也存在巨大的需求,这将带来很可观的收益。对于即时通讯的后来者来说,这无异于一个切入点。拨开眼前的迷雾,前途是光明的,闯过曲折的道路,迎接你的是康庄大道,想要踏入即时通讯市场,这是必然的经历。无论是通讯市场的垄断持续,还是
17、新兴技术软件的争锋,对用户来说,更为强大,方便,切合用户利益的软件产品才能在这个市场中生存地更久。1.3本文主要工作Android作为一个开放性平台,自出现依赖深受广大用户的青睐。本文从实际应用出发,提出了开发基于Android系统的手机端即时通讯软件系统。本文的主要工作包括:根据环信2.0开发文档,以环信的云服务器为基础,对该系统进行了具体的设计和实现。本系统拥有即时文本信息传输,管理好友列表,新消息通知,登录注册等功能模块。该系统可在Android模拟器上运行,并且取得了良好的运行效果。1.4论文的组织结构本文首章分析了系统的研究背景,从即时通讯市场现状、即时通讯市场细分,即时通讯发展前景
18、等方面介绍了即时通讯市场的发展现状。第二章,对Android的架构作了系统的分析,从Android的特征,工作机制,并把它与其它手机操作系统对比,来体现Android的优势。第三章,对比当前网络流行的即时IM,对环信即时通讯云进行深入的剖析,对系统的即时通讯机制进行分析,提出解决方案。第四章,对系统的界面,即时通讯模块,本地数据库模块和扩展功能几个方面进行了详细的设计及实现。第五章,通过注册登录,获取好友列表,获取会话列表,消息的发送和接受,添加、删除好友几个方面对系统进行测试。第六章,总结本文的研究内容以及研究成果,通过对过程及结果的分析,整理,归纳,得出自己的观点及存在的问题,并对今后发展
19、的展望。第2章 Android的架构分析Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟主导。Android系统最初由安迪鲁宾(AndyRubin)制作,最初主要支持手机。2005年8月17日被Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,Google以Apache免费开元许可证授权方式,发布了Android的源代码
20、。2.1 Android特征系统内核:Android 是运行于 Linux kernel之上,但并不是GNU/Linux。Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver与 Linux kernel彻底分开,以bionic取代Glibc、以Ski-a取代Cairo、再以opencore取代FFmpeg等等。硬件抽象层:Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块,为了把 Android framework 与 Linux kernel 隔开。中介软件:操作
21、系统与应用程序的沟通桥梁。Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik V
22、irtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。安全权限机制:Android本身是一个权限分立的操作系统。系统更多的安全功能通过权限机制提供。Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或
23、用户进行较大影响的操作。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。2.2 Android的架构Android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序层,应用程序框架层,系统库和运行时,Linux内核。图2- 1 分层架构图应用程序层:在这层中,系统提供了一些基础的核心应用包,如短信、联系人管理、电子邮件、日历、系统设置、浏览器等。同事,开发者可以利用Java语言编写属于自己的应用程序,这些程序与核心应用程序是平等的。应用程序框架层:该层作为应用程序开发的基础,在绝大多数情况下,开发人员都在与她打交道。应用程序框
24、架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。系统库和Android运行时:系统库包括九个子系统,分别是图层管理、媒体库、SQ-Lite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,
25、前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Andr-oid的核心库,比如android.os、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。Linux内核:目前市场上广泛流行的Android版本中,以Linux3.8为服务核心的Andr-oid 5.0系统大幅度提高了RAM的读取速度和多任务处理能力,拥有良好的用户体验。2.3 Android的工作机制一个Android程序由四大组件组成,它们分别是“Activity”,“Service”,“C
26、ontent P-rovider”和“BroadCast Receiver”。但并不是每一个应用程序都包含这四个组件,在应用程序中使用这些组件时,必须先在AndroidMainfest.xml中进行配置。Android的应用构成和工作流程图如下:图2-2 工作流程图2.3.1 ActivityActivity是用户接口程序,几乎所有的Activity都要和用户打交道,原则上它会提供给用户一个交互式的接口功能。Activity自身是没有界面的,所以它会创建一个窗口,通过setContentView(View)接口来加载UI界面。Activity可以全屏显示,也可以通过更改主题使得其窗口化。Act
27、ivity一共有七大生命周期:图2-3 Activity的生命周期(1)Activity生命周期由图2-3可知,一个Activity正常启动过程中,调用的方法为onCreate() - onStart() - onResum();在Activity被Kill的时候调用的方法为onPause() - onStop() - onDesto-ry();这是一个完整的生命周期。onCreate():在此方法中创建界面,做一些初始化操作。onStart():变成“用户可见不可交互”状态。onResume():变成“和用户可交互”状态。onPause():变成“用户可见不可交互”状态。onStop():不
28、可见,被下一个Activity所覆盖。onDestory():Activity被Kill前调用的最后一个方法。(2)Activity之间的通信在Android中一个进程中可能会运行多个不同的Activity实例,也可能在不同的进程中运行不同的Activity实例,所以,我们需要一些特别的机制来实现多个Activity之间传递消息,为此引入了Intent机制。Intent负责对操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Int-ent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互
29、相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用它:直接Intent:指定了component属性的Intent(调用setComponent(ComponentName)或者setClass(Context, Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。间接Intent:没有指定comonent属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。2.3.2 Serviceandroid中Service是运行在后台的东西,级别与activity差不多。既
30、然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。你可以启动一个服务Ser-vice来播放音乐,或者记录你地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作。Service和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的请求或者动作。你可以在服务中开一个线程,在线程中做耗时动作。服务一般分为两种:本地服务:Local Service 用于应用程序内部。在Service可以调用Context.startSer-vice()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Servi-ce.
31、stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stop-Service()来停止。远程服务: Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。2.3.3 Content Provider
32、当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferencesAPI读写数据。而使用C-ontentProvider共享数据的好处是统一了数据访问方式。2.3.4 Broadcast Receiver广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的比如,通知时区改变、电池电量低、拍摄了一
33、张照片或者用户改变了语言选项。应用程序也可以进行广播比如说,通知其它应用程序一些数据下载完成并处于可用状态。一般流程可分为一下三步:注册广播事件:注册方式有两种,一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接收器必须要继承BroadcastReceiver;另一种是动态注册,是在程序中使用Context.registerReceiver注册,注册的广播接收器相当于一个匿名类。两种方式都需要IntentFIlter。发送广播事件:通过Context.sendBroadcast来发送,由Intent来传递注册时用到的Ac-tion。接收广播事件:当发送的广播被
34、接收器监听到后,会调用它的onReceive()方法,并将包含消息的Intent对象传给它。onReceive中代码的执行时间不要超过5s,否则An-droid会弹出超时dialog。2.4 Android和其它手机操作系统的比较图2-4 Android系统在市场的占有率(20142016)由图2-4不难看出,Android系统的全球市场战友率已占据榜首,并且仍在逐年递增。至于原因,我想大家来看一下各系统的对照表就明白了。表2- 1 手机操作系统对照表从表中,我们可以发现Android在各项指标中都有良好的表现,特别是开放性和对第三方的支持性上尤为优异,这是它占领大多数市场的必要条件。就目前来
35、说,Androi-d在用户体验性上可能还不如ios,但随着Android 5.0的发布,Android系统的流畅性大大提高,而且5.0的应用图标更趋向于ios的扁平化应用,随着Android的发展,用户体验性就不再成为Android的弱势所在。2.5 本章小结本章对Android的构造、特征、工作机制做了详细的介绍,通过对各个手机操作系统的比较分析,确立Android操作系统的优势,说明本问研究的必要性。第3章 即时通讯系统本章介绍了即时通讯系统的总体框架和相关解决方案。以环信即时通讯云为基础,实现客户端与客户端之间的即时通信。3.1 系统概述本文中所实现的是在Android平台上开发的即时通
36、讯系统,它能够在用户之间快捷的传递消息。现今很多流行的通讯软件,在聊天基础上开发了很多增值业务,这在很大程度上满足了个人用户的需求。但是,这对企业用户来说过于繁琐。本系统可以直接运用于各个App,使得App拥有即时通讯功能。如果在企业App中加入聊天功能,就可使得工作和生活完美分离。3.2 即时通讯简介即时通讯软件是通过即时通讯技术来实现在线聊天、交流的软件。目前有2种架构形式,1、一种是C/S架构,采用客户端/服务器形式,用户使用过程中需要下载安装客户端软件,典型的代表有:QQ、百度HI 、Skype 、Gtalk、新浪UC、MSN等;2、采用B/S架构,即浏览器/服务端形式,这种形式的即时
37、通讯软件,直接借助互联网为媒介、客户端无需安装任何软件,既可以体验服务器端进行沟通对话,一般运用在电子商务网站的服务商,典型的代表有Websitelive 、53KF、live800等。即时通讯(Instant Messaging):透过即时通讯功能,你可以知道你的亲友是否正在线上,及与他们即时通讯。即时通讯比传送电子邮件所需时间更短,而且比拨电话更方便,无疑是网络年代最方便的通讯方式。 即时通讯(Instant messaging,简称IM)是一个终端服务,允许两人或多人使用网路即时的传递文字讯息、档案、语音与视频交流。多任务作业 异步性 长短沟通 媒介转换迅速 交互性 不受时空限制即时通讯
38、是一个终端连往一个即时通讯网路的服务。即时通讯不同於e-mail在于它的交谈是即时的。大部分的即时通讯服务提供了presence awareness的特性显示联络人名单,联络人是否在线上与能否与联络人交谈。在早期的即时通讯程式中,使用者输入的每一个字元都会即时显示在双方的萤幕,且每一个字元的删除与修改都会即时的反应在萤幕上。这种模式比起使用e-mail更像是电话交谈。在现在的即时通讯程式中,交谈中的另一方通常只会在本地端按下送出键(Enter或是Ctrl+Enter)后才会看到讯息。在网际网路上受欢迎的即时通讯服务包含了MSN Messenger、AOL Instant Messenger、Y
39、ahoo! Messenger、NET Messenger Service、Jabber、UcSTAR、ICQ与QQ、GoCom。 这些服务有赖於许多想法更久的(与普遍)的线上聊天媒介,如Internet Relay Chat一样知名。1970年代早期,一种更早的即时通讯形式是柏拉图系统(PLATO system)。之后在1980年代,UNIX/Linux的交谈即时讯息被广泛的使用于工程师与学术界,1990年代即时通讯更跨越了网际网路交流。1996年11月,ICQ是首个广泛被非UNIX/Linux使用者用於网际网路的即时通讯软体。在ICQ的介绍之后,同时在许多地方有一定数量的即时通讯方式发展,
40、且各式的即时通讯程式有独立的协定,无法彼此互通。这引导使用者同时执行两个以上的即时通讯软体,或者他们可以使用支援多协定的终端软体,如Gaim、Trillian或Jabber。近年来,许多即时通讯服务开始提供视讯会议的功能,网络电话(VoIP),与网路会议服务开始整合为兼有影像会议与即时讯息的功能。于是,这些媒体的分别变的越来越模糊。最早的即时通讯软体是ICQ,ICQ是英文中I seek you的谐音,意思是我找你。四名以色列青年于1996年7月成立Mirabilis公司,并在11月份发布了最初的ICQ版本,在六个月内有85万用户注册使用。早期的ICQ很不稳定,尽管如此,还是受到大众的欢迎,雅虎
41、也推出Yahoo! pager,美国在线也将具有即时通讯功能的AOL包装在Netscape Communicator,而后微软更将Windows messenger内建於Microsoft Windows XP作业系统中。腾讯公司推出的腾讯QQ也迅速成为中国最大的即时消息软件。 即时消息软件也面临着互联互通、免费或收费问题的困扰。InstantMessaging(即时通讯、实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chatroom)的实时通讯服务。大部分的即时通讯服务提供了状态信息的特性显示联络人名单,联络人是否在线及能否与联络人交谈。目前在互联网上受欢迎的即时通
42、讯软件包括百度hi、UcSTAR、QQ、MSN Messenger、AOL Instant Messenger、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ等。通常IM服务会在使用者通话清单(类似电话簿)上的某人连上IM时发出讯息通知使用者,使用者便可据此与此人透过互联网开始进行实时的通讯。除了文字外,在频宽充足的前提下,大部分IM服务事实上也提供视讯通讯的能力。实时传讯与电子邮件最大的不同在于不用等候,不需要每隔两分钟就按一次“传送与接收”,只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方,只要有网络,无论对方
43、在天涯海角,或是双方隔得多远都没有距离。互联网的历史总显得具有不可思议的戏剧性:1996年,4位以色列人发明了IM的鼻祖ICQ“坏小子”,那时它只是一个主要搞网上寻呼的“小玩意”;1998年,腾讯研发团队为QQ用户突破100人而“兴奋不已”;2000年前后,业内传马化腾打算把QQ作价100万卖给深圳电信,但深圳电信却不要。到2005年腾讯却成为中国收入前三名的互联网公司,而与腾讯一样做即时通讯的朗玛UC,依靠市场份额和用户数排名第二的优势,被新浪收购后换来了3600万美元的现金和股票。3.2 环信简介环信是移动即时通讯能力的云计算PaaS(Platform as a Service, 平台即服
44、务) 平台服务商(简称环信)。环信将基于移动互联网的即时通讯能力,通过云端开放的 Rest API 和客户端 SDK 包的方式提供给开发者和企业。全面支持Android、ios、Web等多种平台,在流量、电量、长连接、语音、位置、安全等能力做了极致的优化,让移动开发者摆脱繁重的移动IM通讯底层开发,最大限度地缩短产品开发周期,最短的时间内让App拥有移动IM能力。3.3 系统架构本系统采用c/s架构, 拥有服务器端和客户端。客户端:在Android品台上开发,通过GPRS或无线网络与Internet网络建立连接,通过环信服务器实现与Android客户端或pc机客户端之间的即时通讯。客户端负责初
45、始化通信过程,由客户端发起创建连接请求。客户端可分为五个模块进行设计开发:1. 登陆、注册模块:实现用户注册账号,登陆功能。拓展:实现自动登陆,掉线自动重连。2. 会话界面:显示当前会话列表,管理会话列表,实现会话的创建,删除。3. 好友管理界面:显示当前好友,管理好友列表,实现好友的添加,删除。查看好友信息,修改备注。4. 设置界面:根据个人的喜好对于系统设置进行修改,包括新消息提醒,聊天设置及退出登陆按钮。5. 通讯模块:负责用户之间的数据交互,实现即时通讯。服务器端:采用环信云作为服务器,允许多个客户端同时登录并且连接到一个服务器上。服务器对每个客户端进行验证,为通过验证的客户端创建会话
46、,客户端与服务器之间的通讯就在该会话下进行。3.4 网络通信2.3.4 网络协议TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信
47、封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。大致可分为四层,每一层负责不同的功能:1链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(internet互联网控制报文协议),以及IGMP协议(internet组治理协议)。3传输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面
链接地址:https://www.31ppt.com/p-3981317.html