Android聊天系统设计文献综述
2020-05-11 23:42:41
1. 引言
随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Phone,Palm等手机平台,过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台。经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此于2007年推出了一个专为移动设备设计的软件平台Android。
Android是一套真正意义上的开放性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由 Linux 和Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网络信息中心(CNNIC)发布的《第25次中国互联网络发展状况统计报告》显示,报告数据显示,截至2009年12月,我国网民规模达3.84亿,增长率为28.9%。我国手机网民比去年增加1.2亿,手机上网已成为我国互联网用户的新增长点。十大互联网应用中,即时通信、搜索引擎和电子邮件三大互联网基础应用均榜上有名,受3G业务开展的影响,我国手机网民数量迅速增长,规模已达2.33亿人,占整体网民的60.8%。说明即时通讯在网络应用中占据了十分重要的地位。 聊天系统(Instant Messenger,简称IM)是指能够即时发送和接收互联网消息等的业务。它可以让用户在网上看到特定的通信对象(如好友)是否在线;如果对方在线,双方就可以通过文字、语音,视频、白板等方式进行交流,还能传递文件,共享计算机桌面和其它应用程序,有些系统还能支持多方参加的网络会议。自1996年以色列Mimbilis公司推出世界上第一个聊天系统ICQ以来,聊天系统技术获得了迅速的发展,功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能,发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台,而不再是一个单纯的聊天工具。目前国际上最著名的IM系统有AOL公司的AIM,微软公司的MSN与Yahoo公司的Yahoo Messenger; 国内流行的有腾讯公司的QQ,网易公司的网易泡泡等。可以说这是继电子邮件之后又一互联网应用的成功典范。
聊天系统的迅速发展最主要的原因在于它本身的强大优点。和电子邮件不同,即时消息传递允许用户之间通过网络自然交互,具有方便、高效、廉价、即时等优点,具有很大的潜能,可以广泛应用于各种交流和远程监控,在商业界、自动化等各个领域都有广泛的应用前景。并且在信息时代的今天,相对与手机号频繁更改,人们的网络软件账号相对固定。因此使用移动聊天程序进行沟通交流更有助于人们之间保持长久固定的联系。
聊天系统是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信,随着手机的不断普及以及性能的不断提升,为聊天系统从传统的PC机到手机的移植提供了很好的条件。而且在中国庞大的手机用户中,通过手机使用聊天系统软件的用户越来越多。当前的手机操作系统都过于封闭,各大聊天系统软件采用的通讯协议也不统一,而Android是基于Linux的开源的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android平台和XMPP协议开发聊天系统具有很好的应用前景。
碰巧我对移动端的开发比较感兴趣,借此机会正好试着开发一款聊天App,不仅是为了锻炼自己,也是为了在项目中摸索Android系统的原理和手机App的设计思路,而且通过不断完善这个项目,来深入学习Java语言,毕竟Android是基于Java开发的,它是一门涉及面广的编程语言,所以需要不断的实践,让自己的经验更加富足!
2. 设计方案
目前国内的聊天App主要有QQ,微信,陌陌等社交软件,国外的主要是Facebook,Twitter,这些主流的App在通讯原理方面,主要采用了UDP和TCP协议,使用UDP的原因,是因为要对付成百万的用户量,而TCP协议主要是由于它的”管道效应”,它能够让消息有序的传递给用户,数据库方面主要是用的Oracle大型数据库,来存储大批量的数据。针对这些已有的应用,我设计了一套自己的方案,因为我的聊天系统不需要处理大量的数据和通讯流,所以我采用了Socket通信,而不采用Http,因为我的服务器不需要太复杂,所以只要双方建立连接后即可实现数据的传输,而不需要每次都向服务器发送请求,相当于请求#8212;响应方式,而且Socket通信数据丢失率低,操作简单,其实他也是采用了UDP,TCP协议,我的程序因为初衷就是一个局域网的聊天App,所以我使用TCP/IP协议就已经足够处理数据流,数据库我采用的小型的MySQL数据库,因为数据量较小,无需浪费太多的资源。
2.1 设计任务