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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx

1、基于andriod的语音即时通讯软件设计与实现大学毕设论文摘 要 即时通讯是一种基于互联网的即时交流消息的业务,其利用互联网线路,通过文字、语音、视频、文件的信息进行交流与互动,有效的节省了沟通双方的时间与经济成本,自其诞生之日起就获得用户的青睐。传统的即时通讯应用大多基于PC端实现,随着无线技术(3G网络的普及)和以iphone、android为代表的智能手机的流行,越来越多的用户更青睐在移动终端上使用即时通讯业务,尤其是语音IM业务。本文分析了当前即时通讯的发展前景及其主流技术研究状况,并设计实现了一款基于android平台的语音即时通讯软件。本文采用软件工程的管理方法和思想,对项目进行了

2、严格的需求分析及各种用例分析,并提出了合适系统构架(包括服务器和客户端),采用瀑布模型的思想逐步实现软件的各种功能。本系统涉及客户端和服务器两个部分,但出于时间方面的考虑,仅实现了客户端的相关功能,服务器的搭建实现不在本论文的研究范围之内。客户端的设计与实现主要分为客户端界面、网络连接模块及语音控制处理模块三大部分进行分析介绍。其中涉及到的主要技术包括XMPP协议、Android语音录制播放、Speex语音压缩及Android NDK开发的相关知识。本系统基本完成了预期的各种功能,用户可以进行通畅的语音对话,语音质量满意,此外对语音的压缩也达到了预期的要求。整个界面的设计也很人性化,达到了很好

3、的用户体验度。关键词:Android;即时通讯;Speex压缩;语音聊天;XMPP协议AbstractInstant Messaging is kind of Internet-based Instant chatting business, which make use of text,voice,vedio and file to comunicate with each other via Internet. This kind of Service is greatly cost-effective to both chatters and from the day it was bo

4、rn, it has become popular. Traditional instant messaging applications are mostly based on the PC side. Along with the development of wireless technology (especially the popularity of 3G network) and the popularity of smart phones such as iphone, and android, more and more users prefer to use instant

5、 messaging services on mobile terminals , especially the voice IM services. This paper analyzes the current prospects for the development of instant messaging and mainstream technology, and designed and implemented a voice instant messaging software based on the android platform.I take advantage of

6、software engineering methods and thoughts, conducted a rigorous needs analysis and a variety of use case analysis, designed the entire architecture of the system (both server and client), tand make use of waterfall model to develop this software. This system involves two parts : the client and serve

7、r, but for the time considerations, the design and employ of server is not included in this paper. Design and Implementation of the client is divided into the client interface, network connectivity modules, and voice control processing module three parts to be introduced. Involved techniques include

8、s the XMPP protocol, the Android voice record and play,Speex and Android NDK knowledge. The system basically completed the excepted functions, the user can clearly make voice chatting, the voice quality is also satisfied, In addition ,The design of UI is also very human, and have a good user experie

9、nce. Key words: Android;IM;Speex;Voice Chat;XMPP第1章 绪 论1.1 课题研究的背景与意义近几年,随着iphone以及android phone等智能手机的流行普及,移动互联网发生了爆炸性的增长。据尼尔森相关数据统计,目前移动互联网流量占总流量的比例已有由4年前不到0.2%到目前的10%还要多,并且每年正以百分之几百的增长速度高速发展。在传统互联网发展臻于成熟以后,移动互联网所蕴含的巨大潜力与商机正吸引着无数的创业者并引爆了又一轮的投资潮。2010年10月,一款名为Kik的语音即时通讯软件登在上线的15日内,就吸引了百万的使用者,一举获得了巨大成

10、功。这款软件的成功也让国内许多企图复制企鹅帝国移动终端的人看到了希望。一时之间,模仿者众多米聊、口信、微信以及盛大的KIKI。甚至作为通道的电信运营商自身都加入到这场混战当中。就在刚刚结束的2012MWC巴塞罗那大会上,欧洲的五大电信巨头联合推出了名为“Joyn”的即时手机短信系统。而早在几个月前,中国电信巨头中移动、联通及电信就已经推出了各自的语音IM飞聊、沃友和翼聊。移动互联网的迅速发展给运营商带来巨大机遇的同时,语音类的即时通讯产品却对运营商构成了潜在威胁,做与不做,对运营商而言都是一个尴尬的局面。从Ovum的最新预测报告来看,越来越多的消费者使用基于IP的通信服务,这一现状使电信运营商

11、受到巨大损失。随着基于IP的通信应用程序继续发展,短信收入的损失将会继续加剧。在社交网站Facebook大行其道的当下,社交成为互联网的又一大特性,而这种又特别适合在移动终端使用,或者说,社交自其诞生之日便拥有了移动互联网的基因。智能手机较小的体积(便携性)及强大的信息处理能力在很好的满足了消费者的同时,却又留给了人们一个较大的难题:输入问题较小的屏幕限制了人们手指的灵活性。此时人们或许想到,语音便是解决此类问题的最好方法如果智能手机能够很好的解析我们的语言的话。不过本文并不是探讨如何开发出另一个Siri的。我们要做的事情仅仅就是将你的声音传递给另一个人,你们将在手机上进行间断性的“对话”。我

12、们会发现,这甚至比我们在PC上即时聊天更加方便,因为我们脱离了键盘的束缚;同时,由于我们仅需支付并不昂贵且正在不断下调的流量费,我们比语音通话更加省钱。由于此类产品是跨平台的,所以你可以给任何一个好友发消息,而不管他是哪家运营商(集语音、文本、图片于一体,此时我们不难理解这为什么叫“短信(彩信)杀手”了。虽然这类解决方案看上去并不复杂,但在智能终端即时通讯领域,此种类型的通讯方式正在产生革命性的效果我们再也不需要手动去编织一条条文字的短信,而是将我们的声音活灵活现的展示在朋友的面前。这是科技领域的一小步,但对万千大众的生活而言,这将是一大步,因为这将从根本上改变我们的即时通讯方式和习惯。1.2

13、 Android平台发展概况1.2.1 Android系统构架和其它操作系统一样,Android1的系统架构采用了分层的架构。android分为四个层,从高到低分别是应用程序、应用程序框架、系统运行库和linux核心层。其构架图如图1-1所示:图1-1 Android构架图(1)应用程序:Android 同一系列核心应用程序包一起发布,该应用程序包包括 email客户端,短消息程序,联系人管理程序等。全部的应用程序都使用JAVA 设计语言编写。 (2)应用程序框架:开发人员也可访问核心应用程序使用的API框架。这一应用程序的架构设计可以简化组件的重用,任何应用程序都可以使用其他应用程序所发布的

14、功能块。同时,该应用程序的重用机制也使用户可快捷的调用及更替组件。 每个应用后面都隐藏着很多的服务和系统,包括: 本系统的视图有很好的扩展性,能够用来架构相应程序,它包括lists、grids、text boxes,以及可嵌入的web 浏览器。 内容供应设置使得应用程序可以访问其他应用程序的所有数据,如好友信息库。 或者共享该应用程序的数据。 非代码资源的访问需要特殊管理器的支持,如布局文件等。通知管理器使得应用程序在可以在消息提示栏显示其自主设置的提示信息。 活动管理器用来管理应用程序生命周期并提供常用的导航回退功能。 (3)程序库:安卓包含一些C/C+库,这些库能被 安卓 系统中不同的组件

15、所使用。它们通过应用程序框架为开发者提供开放性服务。 (4)Android 运行库:Android 含有核心库,JAVA 编程语言核心库的大部分功能都由这个核心库提供。各个安卓应用程序在其各自的进程中运行,且各自拥有一个独立的虚拟机实例-Dalvik。 (5)Linux 内核:Linux 2.6 内核是Android 所依赖的核心系统服务。同时,软硬件之间的抽象层也由Linux 内核充当。1.2.2 Android组件Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)以及Content Provider(内容提供商)分别是安卓软件开发的四大组件。

16、其中Activity用来表现系统总体功能,Service为后台正常运行提供服务,但是它不能呈现系统的界面,BroadcastReceiver可以接收广播,Content Provider的功能类似于数据库,能够存储和读取数据。应用程序构建模块如下表:表1-1 应用程序构建模块活动用户界面部件通常对应一个屏幕意向转移设置并回应提示或改变状态并激活应用程序服务没有前端界面的后台任务内容提供应用程序可以共享的数据1.3 XMPP协议1.3.1 XMPP协议简介XMPP是一种分散式的网络协议,它是一种基于服务器的互联网标准。XMPP采用C/S结构,主要用于通过GPRS连接的即时信息。客户端,服务器端和

17、协议网关是XMPP的三大重要组成部分。1.3.2 XMPP会话模型 XMPP实体之间相互传送数据使用XML流。当XMPP的客户端连接到服务器时,这个XMPP的客户端会和服务器端都会发起XML流,连接到对方,以实现信息交流的目的。XMPP是基于异步的会话模式,在通信过程中,发送者可以不等接收者回复而继续执行,接收者无需对发来的消息立即进行处理,而是可以自行选择合适的时间处理此消息。这使得基于XMPP的会话更加方便。1.4 语音即时通讯系统的应用前景及发展趋势以语音聊天为特色即时通讯软件在传统的PC端已经成为即时通讯的一个重要应用,但随着无线技术的发展,特别是3G网络的普及,特别是以IPhone、

18、Android为代表的智能手机以其智能、便携等特性,迅速成为人们的新宠。在移动智能终端大行其道的背景下,PC端语音即时聊天功能受到极大限制,其弊端日益显现。与此同时,基于移动智能终端的语音即时通讯类软件却迅速蹿红,以此类应用软件的鼻祖KIK为例,在其上线的15天内便吸引了超过100万的用户。更是由于,基于移动网络智能终端的该类软件,很有可能给运营商带来丰厚利润的短信和彩信业务造成致命威胁,语音即时通讯软件甚至被冠以“短信杀手”的称号。在这之后,移动互联巨头,甚至网络运营商都纷纷推出类似的产品,其背后巨大的商业潜力可见一斑。在社交文化越来越浓厚的当下,单纯以语音通话为特色的该类软件已经很难打动消

19、费者,越来越多的语音即时通讯软件加入了更多的社交元素:状态更新、图片应用、以及基于LBS的地理位置服务甚至电子商务等信息的融合以满足日益庞大的用户。总而言之,将来语音类即时通讯软件将以语音通讯为主打特色,同时将更多的融合轻量级的社交元素、社会化媒体元素、电子商务、LBS服务等,并呈现出易用性、社交化、多极发展等特点。毋庸置疑,语音即时通讯软件已经逐步成为移动智能终端一大不可替代的应用并在将来会取得更大发展,成为杀手级应用之一。1.5 本文的主要研究内容 本文在内容安排上采取先介绍系统构架设计然后再分别介绍每一个部分的方法来组织安排,并在每一个部分穿插介绍其中所需用到的关键技术及其实现。由于本系

20、统涉及服务器和客户端两个方面(其中服务器的部署实现不在本文的研究范围之内),本论文为突出重点,在章节安排上如下:第一章介绍了论文撰写的背景、目的和意义及其所用到的基础性知识。第二章介绍了系统的可行性分析,确定系统后续的开发任务能否完成。第三章提出了整个系统的需求分析,重点分析了系统的功能性需求和非功能性需求,以突出进行本系统开发的重点内容。第四章介绍了系统的整体设计。重点讲解了SQLite数据库设计,提出了客户端网络层的设计,并重点介绍了XMPP协议,设计会话模型并给出了相关实现。第五章介绍了系统的详细设计与具体实施,主要介绍了系统的UI界面设计和语音的录制、播放以及压缩技术,在过程中,由于需

21、要使用C进行实现,顺便介绍了基于Android NDK编程的相关知识。以上就是本论文的组织结构,本论文基于软件工程的管理思想进行设计实现。重点对关键模块和关键技术进行介绍并给出了相关实现方法步骤。第2章 系统可行性分析如何在最短时间内用最小代价解决问题,是可行性研究的根本目的。这就要求我们需要对现有的系统进行全面的了解和分析,确定系统后续的开发任务能否完成,以避免时间、资源、人力的浪费。2.1 系统调查描述(1)调查发现,随着无线技术(3G网络的普及)和智能手机的流行,越来越多的用户更青睐在移动终端上使用即时通讯业务,尤其是语音IM业务。本软件就是一款基于android的集文本、语音、图片于一

22、体的即时通讯软件。它可以在拥有无线网络访问的前提下,使用户与好友之间可以进行方便即时的聊天沟通,可以有效实现快捷方便低成本的沟通。(2)本系统在实现基本的功能基础上,将留出一些其他功能的接口,以便今后可继续升级完善。2.2 可行性分析本节从以下三个方面对系统进行了可行性分析,具体内容如下:(1)在经济方面的可行性分析,首要是分析成本大小,估算系统的开发费用和今后的运行、维护费用,同时估算可获得利益和系统成本的比值以及需要达到的社会效益等问题。由于本系统的特殊性,所以应着重分析其社会效益。对于本系统来说,随着智能手机的发展以即时代对信息传递的迅速便捷要求,即时通讯软件将会有很大的发展前景。(2)

23、在技术方面的可行性分析,主要是依据对智能手机即时通讯系统使用者的调研中所提出的环境约束条件,来研究系统运行的可行性。根据系统的功能来判断开发所需的技术是否具备,一般需要从多个方面去考虑和分析,如系统正常运行的软硬件条件、工作人员的开发水平和外部环境等方面。目前,国内对基于安卓系统的即时通讯软件的开发已经日臻成熟,对本系统的开发能够起到一个很好的导向作用。风险分析:主要分析在给定的制约条件和限定的期限内,是否能够设计出满足需求的系统,并实现必要的系统功能。资源分析:主要分析系统开发的外部资源,如开发工作人员数量是否合适,是否存在问题、系统开发的软硬件条件以及其他系统建立需要用到的资源。 技术分析

24、:主要分析系统开发所需的相关技术的发展现状是否支持该系统运行,以及应采用什么语言和框架来对系统进行设计等。(3)可行性分析在法律方面主要是研究系统的开发及实现是否合法、开发过程中签订的一些合同是否涉及到法律责任以及系统是否存在其他与法律相抵触的地方等。在考虑多种系统实现方案后,应选择最优秀、最适合的方案进行开发。本章主要对于系统的可行性研究进行了简要的分析,通过以上对本系统经济上、技术上、运行上、法律上的可行性,以及对于系统的主客观条件可行性的分析,认为该系统可以执行。第3章 系统的需求分析3.1 系统功能用例分析针对用户的需求分析,设计系统主要功能如下:(1)用户注册:新用户需要注册后方能使

25、用。注册使用电子邮箱和密码。(2)用户登录:用户需输入相应用户名、密码来登录系统。(3)系统设置:用户可对系统一些基本选项进行设置,如提醒铃声、震动等。(4)查找、搜寻好友:用户可根据关键字搜索好友。 (5)添加好友:用户可添加陌生好友。 (6)向好友发送信息:用户可向好友发送信息,其中包括文本、语音及图片信息。离线信息寄存于服务器,用户登录后可接收。(7)接受好友信息:用户可接收好友发送的信息,包括文本、语音及图片,离线信息寄存于服务器。当用户登录后可接收。(8)查看历史记录:用户可以查看历史聊天记录。(9)注销退出:用户注销后,下次使用该软件时需要重新登录;退出后,下次登陆无需再次输入账号

26、和密码。 下图为系统的功能用例图2: 图3-1 系统功能用例图 3.2 系统非功能性分析3.2.1 系统界面设计及整体风格 在系统整体风格及几面设计方面应尽量做到界面简洁明了、功能清晰实用、用户易学易用。主要表现在以下几个方面:(1)系统界面整体上风格协调,给用户提供良好体验。(2)在保证网络访问畅通的条件下,提高网络响应速度,尽量防止出现假死情况。(3)注重突出功能,尽量使用户易懂易用。(4)错误提醒,在数据访问出错的情况下,应给出相应的提示。3.2.2 系统可扩展性及安全性系统要有很好的扩展性,以方便以后程序的维护和升级。系统尽量采用弹性构架设计,通过代码复用及继承来增加程序的健壮性及可扩

27、展性。在安全性方面,要注重对用户隐私的保护。用户密码等敏感信息不要使用明文进行传送,要进行相关的加密封装后再行传送。对于数据库操作,如果发生事务故障,进行数据回滚以保证数据完整性。3.2.3 错误日志和系统国际化系统应该提供易于查检阅的日志,为日后程序的升级。维护以及检修提供方便。系统的错误日志的保存需要致力于日志时间,错误原因以及解决办法方面。同时,由全球Android 用户都能够自由下载手机软件,所以,应当完成相应的国际化的工作,使其能够支持英语等主流外语。第4章 系统的总体设计4.1 系统总体结构设计4.1.1 系统总体结构与其他一些即时聊天软件不同,本系统采用客户端服务器端的系统构架而

28、非客户端客户端的系统构架,所以两个客户端之间所有的交流都必须通过服务器。在通讯过程中,采用XMPP协议,它是目前一种比较成熟的IM通讯协议,它可以实现Android IM客户端与PC Jabber客户端进行通信。系统总体系统构架3如图所示:图4-1 系统总体构架图如上图所示,整个构架以服务器为中心,服务器连接着众多的移动客户端(Android IM)与PC Jabber 客户端以及数据库服务器。服务器在此中间扮演了一个十分重要的角色,它要实现用户注册、会话管理、用户与服务器端通信、服务器之间信息交互、用户信息存储、身份权限验证、离线信息存储及用户是否在线查询等等任务。不过服务器端的实现部署并不

29、在本论文的研究范围之内。我们只需要根据服务器端提供的相关接口来进行通信即可。客户端主要实现用户与系统的交互以及与服务器端进行通信,主要是为数据提供进行接收。发送、包装、解析等服务。系统的功能模块结构图如图4-2所示:图4-2 系统功能模块结构图由以上的功能结构模块图可知,本系统主要实现了发送图片、文本消息、语音、表情,搜索好友,好友列表,LED灯选择,声音提示,振动提示,铃声选择等模块。4.1.2 客户端设计4.1.2.1 客户端构架本客户端系统采用通过HTTP协议的方式与服务器进行交互。其中HTTP传输模块主要负责HTTP协议中转,提供数据传输工作,XML解析模块负责解析协议字流。MVC模式

30、多被软件程序内部结构所采用,而SQLite数据库则被用来保存系统中的重要数据。其构架设计图如图4-3所示:图4-3 客户端整体构架 如图4-3所示,在Android平台的客户端中Http传输模块负责网络通信层的服务器与客户端之间的连接。数据解析模块负责协议的解析操作,将从服务器端解析的协议转换为对应的模型对象,控制器、VO以及Android组件三项都由控制器进行统一的调动。作为一种嵌入式数据库,SQLite主要用于保存用户账户的的相关信息。4.1.2.2 客户端结构模型设计 MVC4模式是上世纪八十年代发明的一种设计模式,这种模式主要在交互式系统设计中所使用。本系统采用MVC模式进行构建。MV

31、C在应用中被分为Model(模型)、View(视图)和Controller(控制器)。Model负责业务数据和信息处理模块,主要实现封装数据的功能。View主要负责与用户进行交互,具体就是向用户展示模型的状态及控制信息,并根据用户的输入做出反馈。Controller作为逻辑模块,主要负责信息流的控制,完成具体的业务逻辑功能。它是双向的,即控制器既要将View上的操作数据反馈到Model上,以完成逻辑操作,又要讲Model上的数据映射到view上来完成与用户的交互。 MVC模式分离了业务层和视图层,这为Andriod软件系统设计带来了很多好处。首先,程序工作者可以只改变View层代码却不需要改写

32、Model和Controller层的代码。其次,业务流程和规则的改变仅需要改变Controller层代码就可以了。低耦合性以及高度的重用性保证了程序的健壮性和扩展性。业务层和视图层的隔离,使得程序更容易维护和修改,降低了运维的难度。4.1.3 服务器端设计XMPP开源社区为了解、使用XMPP协议提供了一个交流的渠道。这个交流平台使用XMPP路由器作为内核,以完成数据包在各个基本组件间的交换。其主要功能为: (1)会话管理器:负责客户端会话认证,在线状态,用户联系表等 (2)数据存储器(XDB)连接数据库系统,保持用户信息、通信日志等 (3)连接器管理器:管理与客户端之间的连接 (4)服务器连接器:管理XMPP服务器之间的连接 (5)传输器:建立XMPP服务器与非XMPP服务器通信 (6)DNS工具:负责域名的解析,查找相应的XMPP服务。 (7)日志信息管理器:

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

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