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

上传人:b****3 文档编号:27418534 上传时间:2023-06-30 格式:DOCX 页数:38 大小:520.95KB
下载 相关 举报
基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx_第1页
第1页 / 共38页
基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx_第2页
第2页 / 共38页
基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx_第3页
第3页 / 共38页
基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx_第4页
第4页 / 共38页
基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

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

《基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx》由会员分享,可在线阅读,更多相关《基于andriod的语音即时通讯软件设计与实现大学毕设论文.docx(38页珍藏版)》请在冰豆网上搜索。

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

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

摘要

即时通讯是一种基于互联网的即时交流消息的业务,其利用互联网线路,通过文字、语音、视频、文件的信息进行交流与互动,有效的节省了沟通双方的时间与经济成本,自其诞生之日起就获得用户的青睐。

传统的即时通讯应用大多基于PC端实现,随着无线技术(3G网络的普及)和以iphone、android为代表的智能手机的流行,越来越多的用户更青睐在移动终端上使用即时通讯业务,尤其是语音IM业务。

本文分析了当前即时通讯的发展前景及其主流技术研究状况,并设计实现了一款基于android平台的语音即时通讯软件。

本文采用软件工程的管理方法和思想,对项目进行了严格的需求分析及各种用例分析,并提出了合适系统构架(包括服务器和客户端),采用瀑布模型的思想逐步实现软件的各种功能。

本系统涉及客户端和服务器两个部分,但出于时间方面的考虑,仅实现了客户端的相关功能,服务器的搭建实现不在本论文的研究范围之内。

客户端的设计与实现主要分为客户端界面、网络连接模块及语音控制处理模块三大部分进行分析介绍。

其中涉及到的主要技术包括XMPP协议、Android语音录制播放、Speex语音压缩及AndroidNDK开发的相关知识。

本系统基本完成了预期的各种功能,用户可以进行通畅的语音对话,语音质量满意,此外对语音的压缩也达到了预期的要求。

整个界面的设计也很人性化,达到了很好的用户体验度。

关键词:

Android;即时通讯;Speex压缩;语音聊天;XMPP协议

Abstract

InstantMessagingiskindofInternet-basedInstantchattingbusiness,whichmakeuseoftext,voice,vedioandfiletocomunicatewitheachotherviaInternet.ThiskindofServiceisgreatlycost-effectivetobothchattersandfromthedayitwasborn,ithasbecomepopular.TraditionalinstantmessagingapplicationsaremostlybasedonthePCside.Alongwiththedevelopmentofwirelesstechnology(especiallythepopularityof3Gnetwork)andthepopularityofsmartphonessuchasiphone,andandroid,moreandmoreusersprefertouseinstantmessagingservicesonmobileterminals,especiallythevoiceIMservices.Thispaperanalyzesthecurrentprospectsforthedevelopmentofinstantmessagingandmainstreamtechnology,anddesignedandimplementedavoiceinstantmessagingsoftwarebasedontheandroidplatform.

Itakeadvantageofsoftwareengineeringmethodsandthoughts,conductedarigorousneedsanalysisandavarietyofusecaseanalysis,designedtheentirearchitectureofthesystem(bothserverandclient),tandmakeuseofwaterfallmodeltodevelopthissoftware.Thissysteminvolvestwoparts:

theclientandserver,butforthetimeconsiderations,thedesignandemployofserverisnotincludedinthispaper.DesignandImplementationoftheclientisdividedintotheclientinterface,networkconnectivitymodules,andvoicecontrolprocessingmodulethreepartstobeintroduced.InvolvedtechniquesincludestheXMPPprotocol,theAndroidvoicerecordandplay,SpeexandAndroidNDKknowledge.

Thesystembasicallycompletedtheexceptedfunctions,theusercanclearlymakevoicechatting,thevoicequalityisalsosatisfied,Inaddition,ThedesignofUIisalsoveryhuman,andhaveagooduserexperience.

Keywords:

Android;IM;Speex;VoiceChat;XMPP

第1章绪论

1.1课题研究的背景与意义

近几年,随着iphone以及androidphone等智能手机的流行普及,移动互联网发生了爆炸性的增长。

据尼尔森相关数据统计,目前移动互联网流量占总流量的比例已有由4年前不到0.2%到目前的10%还要多,并且每年正以百分之几百的增长速度高速发展。

在传统互联网发展臻于成熟以后,移动互联网所蕴含的巨大潜力与商机正吸引着无数的创业者并引爆了又一轮的投资潮。

2010年10月,一款名为Kik的语音即时通讯软件登在上线的15日内,就吸引了百万的使用者,一举获得了巨大成功。

这款软件的成功也让国内许多企图复制企鹅帝国移动终端的人看到了希望。

一时之间,模仿者众多——米聊、口信、微信以及盛大的KIKI。

甚至作为通道的电信运营商自身都加入到这场混战当中。

就在刚刚结束的2012MWC巴塞罗那大会上,欧洲的五大电信巨头联合推出了名为“Joyn”的即时手机短信系统。

而早在几个月前,中国电信巨头中移动、联通及电信就已经推出了各自的语音IM——飞聊、沃友和翼聊。

移动互联网的迅速发展给运营商带来巨大机遇的同时,语音类的即时通讯产品却对运营商构成了潜在威胁,做与不做,对运营商而言都是一个尴尬的局面。

从Ovum的最新预测报告来看,越来越多的消费者使用基于IP的通信服务,这一现状使电信运营商受到巨大损失。

随着基于IP的通信应用程序继续发展,短信收入的损失将会继续加剧。

在社交网站Facebook大行其道的当下,社交成为互联网的又一大特性,而这种又特别适合在移动终端使用,或者说,社交自其诞生之日便拥有了移动互联网的基因。

智能手机较小的体积(便携性)及强大的信息处理能力在很好的满足了消费者的同时,却又留给了人们一个较大的难题:

输入问题——较小的屏幕限制了人们手指的灵活性。

此时人们或许想到,语音便是解决此类问题的最好方法——如果智能手机能够很好的解析我们的语言的话。

不过本文并不是探讨如何开发出另一个Siri的。

我们要做的事情仅仅就是将你的声音传递给另一个人,你们将在手机上进行间断性的“对话”。

我们会发现,这甚至比我们在PC上即时聊天更加方便,因为我们脱离了键盘的束缚;同时,由于我们仅需支付并不昂贵且正在不断下调的流量费,我们比语音通话更加省钱。

由于此类产品是跨平台的,所以你可以给任何一个好友发消息,而不管他是哪家运营商(集语音、文本、图片于一体,此时我们不难理解这为什么叫“短信(彩信)杀手”了。

虽然这类解决方案看上去并不复杂,但在智能终端即时通讯领域,此种类型的通讯方式正在产生革命性的效果——我们再也不需要手动去编织一条条文字的短信,而是将我们的声音活灵活现的展示在朋友的面前。

这是科技领域的一小步,但对万千大众的生活而言,这将是一大步,因为这将从根本上改变我们的即时通讯方式和习惯。

1.2Android平台发展概况

1.2.1Android系统构架

和其它操作系统一样,Android[1]的系统架构采用了分层的架构。

android分为四个层,从高到低分别是应用程序、应用程序框架、系统运行库和linux核心层。

其构架图如图1-1所示:

图1-1Android构架图

(1)应用程序:

Android同一系列核心应用程序包一起发布,该应用程序包包括email客户端,短消息程序,联系人管理程序等。

全部的应用程序都使用JAVA设计语言编写。

(2)应用程序框架:

开发人员也可访问核心应用程序使用的API框架。

这一应用程序的架构设计可以简化组件的重用,任何应用程序都可以使用其他应用程序所发布的功能块。

同时,该应用程序的重用机制也使用户可快捷的调用及更替组件。

每个应用后面都隐藏着很多的服务和系统,包括:

本系统的视图有很好的扩展性,能够用来架构相应程序,它包括lists、grids、textboxes,以及可嵌入的web浏览器。

内容供应设置使得应用程序可以访问其他应用程序的所有数据,如好友信息库。

或者共享该应用程序的数据。

非代码资源的访问需要特殊管理器的支持,如布局文件等。

通知管理器使得应用程序在可以在消息提示栏显示其自主设置的提示信息。

活动管理器用来管理应用程序生命周期并提供常用的导航回退功能。

(3)程序库:

安卓包含一些C/C++库,这些库能被安卓系统中不同的组件所使用。

它们通过应用程序框架为开发者提供开放性服务。

(4)Android运行库:

Android含有核心库,JAVA编程语言核心库的大部分功能都由这个核心库提供。

各个安卓应用程序在其各自的进程中运行,且各自拥有一个独立的虚拟机实例--Dalvik。

(5)Linux内核:

Linux2.6内核是Android所依赖的核心系统服务。

同时,软硬件之间的抽象层也由Linux内核充当。

1.2.2Android组件

Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)以及ContentProvider(内容提供商)分别是安卓软件开发的四大组件。

其中Activity用来表现系统总体功能,Service为后台正常运行提供服务,但是它不能呈现系统的界面,BroadcastReceiver可以接收广播,ContentProvider的功能类似于数据库,能够存储和读取数据。

应用程序构建模块如下表:

表1-1应用程序构建模块

活动

用户界面部件通常对应一个屏幕

意向转移

设置并回应提示或改变状态并激活应用程序

服务

没有前端界面的后台任务

内容提供

应用程序可以共享的数据

1.3XMPP协议

1.3.1XMPP协议简介

XMPP是一种分散式的网络协议,它是一种基于服务器的互联网标准。

XMPP采用C/S结构,主要用于通过GPRS连接的即时信息。

客户端,服务器端和协议网关是XMPP的三大重要组成部分。

1.3.2XMPP会话模型

XMPP实体之间相互传送数据使用XML流。

当XMPP的客户端连接到服务器时,这个XMPP的客户端会和服务器端都会发起XML流,连接到对方,以实现信息交流的目的。

XMPP是基于异步的会话模式,在通信过程中,发送者可以不等接收者回复而继续执行,接收者无需对发来的消息立即进行处理,而是可以自行选择合适的时间处理此消息。

这使得基于XMPP的会话更加方便。

1.4语音即时通讯系统的应用前景及发展趋势

以语音聊天为特色即时通讯软件在传统的PC端已经成为即时通讯的一个重要应用,但随着无线技术的发展,特别是3G网络的普及,特别是以IPhone、Android为代表的智能手机以其智能、便携等特性,迅速成为人们的新宠。

在移动智能终端大行其道的背景下,PC端语音即时聊天功能受到极大限制,其弊端日益显现。

与此同时,基于移动智能终端的语音即时通讯类软件却迅速蹿红,以此类应用软件的鼻祖KIK为例,在其上线的15天内便吸引了超过100万的用户。

更是由于,基于移动网络智能终端的该类软件,很有可能给运营商带来丰厚利润的短信和彩信业务造成致命威胁,语音即时通讯软件甚至被冠以“短信杀手”的称号。

在这之后,移动互联巨头,甚至网络运营商都纷纷推出类似的产品,其背后巨大的商业潜力可见一斑。

在社交文化越来越浓厚的当下,单纯以语音通话为特色的该类软件已经很难打动消费者,越来越多的语音即时通讯软件加入了更多的社交元素:

状态更新、图片应用、以及基于LBS的地理位置服务甚至电子商务等信息的融合以满足日益庞大的用户。

总而言之,将来语音类即时通讯软件将以语音通讯为主打特色,同时将更多的融合轻量级的社交元素、社会化媒体元素、电子商务、LBS服务等,并呈现出易用性、社交

化、多极发展等特点。

毋庸置疑,语音即时通讯软件已经逐步成为移动智能终端一大不可替代的应用并在将来会取得更大发展,成为杀手级应用之一。

1.5本文的主要研究内容

本文在内容安排上采取先介绍系统构架设计然后再分别介绍每一个部分的方法来组织安排,并在每一个部分穿插介绍其中所需用到的关键技术及其实现。

由于本系统涉及服务器和客户端两个方面(其中服务器的部署实现不在本文的研究范围之内),本论文为突出重点,在章节安排上如下:

第一章介绍了论文撰写的背景、目的和意义及其所用到的基础性知识。

第二章介绍了系统的可行性分析,确定系统后续的开发任务能否完成。

第三章提出了整个系统的需求分析,重点分析了系统的功能性需求和非功能性需求,以突出进行本系统开发的重点内容。

第四章介绍了系统的整体设计。

重点讲解了SQLite数据库设计,提出了客户端网络层的设计,并重点介绍了XMPP协议,设计会话模型并给出了相关实现。

第五章介绍了系统的详细设计与具体实施,主要介绍了系统的UI界面设计和语音的录制、播放以及压缩技术,在过程中,由于需要使用C进行实现,顺便介绍了基于AndroidNDK编程的相关知识。

以上就是本论文的组织结构,本论文基于软件工程的管理思想进行设计实现。

重点对关键模块和关键技术进行介绍并给出了相关实现方法步骤。

第2章系统可行性分析

如何在最短时间内用最小代价解决问题,是可行性研究的根本目的。

这就要求我们需要对现有的系统进行全面的了解和分析,确定系统后续的开发任务能否完成,以避免时间、资源、人力的浪费。

2.1系统调查描述

(1)调查发现,随着无线技术(3G网络的普及)和智能手机的流行,越来越多的用户更青睐在移动终端上使用即时通讯业务,尤其是语音IM业务。

本软件就是一款基于android的集文本、语音、图片于一体的即时通讯软件。

它可以在拥有无线网络访问的前提下,使用户与好友之间可以进行方便即时的聊天沟通,可以有效实现快捷方便低成本的沟通。

(2)本系统在实现基本的功能基础上,将留出一些其他功能的接口,以便今后可继续升级完善。

2.2可行性分析

本节从以下三个方面对系统进行了可行性分析,具体内容如下:

(1)在经济方面的可行性分析,首要是分析成本大小,估算系统的开发费用和今后的运行、维护费用,同时估算可获得利益和系统成本的比值以及需要达到的社会效益等问题。

由于本系统的特殊性,所以应着重分析其社会效益。

对于本系统来说,随着智能手机的发展以即时代对信息传递的迅速便捷要求,即时通讯软件将会有很大的发展前景。

(2)在技术方面的可行性分析,主要是依据对智能手机即时通讯系统使用者的调研中所提出的环境约束条件,来研究系统运行的可行性。

根据系统的功能来判断开发所需的技术是否具备,一般需要从多个方面去考虑和分析,如系统正常运行的软硬件条件、工作人员的开发水平和外部环境等方面。

目前,国内对基于安卓系统的即时通讯软件的开发已经日臻成熟,对本系统的开发能够起到一个很好的导向作用。

风险分析:

主要分析在给定的制约条件和限定的期限内,是否能够设计出满足需求的系统,并实现必要的系统功能。

资源分析:

主要分析系统开发的外部资源,如开发工作人员数量是否合适,是否存在问题、系统开发的软硬件条件以及其他系统建立需要用到的资源。

技术分析:

主要分析系统开发所需的相关技术的发展现状是否支持该系统运行,以及应采用什么语言和框架来对系统进行设计等。

(3)可行性分析在法律方面主要是研究系统的开发及实现是否合法、开发过程中签订的一些合同是否涉及到法律责任以及系统是否存在其他与法律相抵触的地方等。

在考虑多种系统实现方案后,应选择最优秀、最适合的方案进行开发。

本章主要对于系统的可行性研究进行了简要的分析,通过以上对本系统经济上、技术上、运行上、法律上的可行性,以及对于系统的主客观条件可行性的分析,认为该系统可以执行。

第3章系统的需求分析

3.1系统功能用例分析

针对用户的需求分析,设计系统主要功能如下:

(1)用户注册:

新用户需要注册后方能使用。

注册使用电子邮箱和密码。

(2)用户登录:

用户需输入相应用户名、密码来登录系统。

(3)系统设置:

用户可对系统一些基本选项进行设置,如提醒铃声、震动等。

(4)查找、搜寻好友:

用户可根据关键字搜索好友。

(5)添加好友:

用户可添加陌生好友。

(6)向好友发送信息:

用户可向好友发送信息,其中包括文本、语音及图片信息。

离线信息寄存于服务器,用户登录后可接收。

(7)接受好友信息:

用户可接收好友发送的信息,包括文本、语音及图片,离线信息寄存于服务器。

当用户登录后可接收。

(8)查看历史记录:

用户可以查看历史聊天记录。

(9)注销退出:

用户注销后,下次使用该软件时需要重新登录;退出后,下次登陆无需再次输入账号和密码。

下图为系统的功能用例图[2]:

图3-1系统功能用例图

3.2系统非功能性分析

3.2.1系统界面设计及整体风格

在系统整体风格及几面设计方面应尽量做到界面简洁明了、功能清晰实用、用户易学易用。

主要表现在以下几个方面:

(1)系统界面整体上风格协调,给用户提供良好体验。

(2)在保证网络访问畅通的条件下,提高网络响应速度,尽量防止出现假死情况。

(3)注重突出功能,尽量使用户易懂易用。

(4)错误提醒,在数据访问出错的情况下,应给出相应的提示。

3.2.2系统可扩展性及安全性

系统要有很好的扩展性,以方便以后程序的维护和升级。

系统尽量采用弹性构架设计,通过代码复用及继承来增加程序的健壮性及可扩展性。

在安全性方面,要注重对用户隐私的保护。

用户密码等敏感信息不要使用明文进行传送,要进行相关的加密封装后再行传送。

对于数据库操作,如果发生事务故障,进行

数据回滚以保证数据完整性。

3.2.3错误日志和系统国际化

系统应该提供易于查检阅的日志,为日后程序的升级。

维护以及检修提供方便。

系统的错误日志的保存需要致力于日志时间,错误原因以及解决办法方面。

同时,由全球Android用户都能够自由下载手机软件,所以,应当完成相应的国际化的工作,使其能够支持英语等主流外语。

第4章系统的总体设计

4.1系统总体结构设计

4.1.1系统总体结构

与其他一些即时聊天软件不同,本系统采用客户端——服务器端的系统构架而非客户端——客户端的系统构架,所以两个客户端之间所有的交流都必须通过服务器。

在通讯过程中,采用XMPP协议,它是目前一种比较成熟的IM通讯协议,它可以实现AndroidIM客户端与PCJabber客户端进行通信。

系统总体系统构架[3]如图所示:

图4-1系统总体构架图

如上图所示,整个构架以服务器为中心,服务器连接着众多的移动客户端(AndroidIM)与PCJabber客户端以及数据库服务器。

服务器在此中间扮演了一个十分重要的角色,它要实现用户注册、会话管理、用户与服务器端通信、服务器之间信息交互、用户信息存储、身份权限验证、离线信息存储及用户是否在线查询等等任务。

不过服务器端的实现部署并不在本论文的研究范围之内。

我们只需要根据服务器端提供的相关接口来进行通信即可。

客户端主要实现用户与系统的交互以及与服务器端进行通信,主要是为数据提供进行接收。

发送、包装、解析等服务。

系统的功能模块结构图如图4-2所示:

图4-2系统功能模块结构图

由以上的功能结构模块图可知,本系统主要实现了发送图片、文本消息、语音、表情,搜索好友,好友列表,LED灯选择,声音提示,振动提示,铃声选择等模块。

4.1.2客户端设计

4.1.2.1客户端构架

本客户端系统采用通过HTTP协议的方式与服务器进行交互。

其中HTTP传输模块主要负责HTTP协议中转,提供数据传输工作,XML解析模块负责解析协议字流。

MVC模式多被软件程序内部结构所采用,而SQLite数据库则被用来保存系统中的重要数据。

其构架设计图如图4-3所示:

图4-3客户端整体构架

如图4-3所示,在Android平台的客户端中Http传输模块负责网络通信层的服务器与客户端之间的连接。

数据解析模块负责协议的解析操作,将从服务器端解析的协议转换为对应的模型对象,控制器、VO以及Android组件三项都由控制器进行统一的调动。

作为一种嵌入式数据库,SQLite主要用于保存用户账户的的相关信息。

4.1.2.2客户端结构模型设计

MVC[4]模式是上世纪八十年代发明的一种设计模式,这种模式主要在交互式系统设计中所使用。

本系统采用MVC模式进行构建。

MVC在应用中被分为Model(模型)、View(视图)和Controller(控制器)。

Model负责业务数据和信息处理模块,主要实现封装

数据的功能。

View主要负责与用户进行交互,具体就是向用户展示模型的状态及控制信息,并根据用户的输入做出反馈。

Controller作为逻辑模块,主要负责信息流的控制,完成具体的业务逻辑功能。

它是双向的,即控制器既要将View上的操作数据反馈到Model上,以完成逻辑操作,又要讲Model上的数据映射到view上来完成与用户的交互。

MVC模式分离了业务层和视图层,这为Andriod软件系统设计带来了很多好处。

首先,程序工作者可以只改变View层代码却不需要改写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