基于Android平台的录音与实时传播.docx

上传人:b****6 文档编号:8193764 上传时间:2023-01-29 格式:DOCX 页数:16 大小:787.65KB
下载 相关 举报
基于Android平台的录音与实时传播.docx_第1页
第1页 / 共16页
基于Android平台的录音与实时传播.docx_第2页
第2页 / 共16页
基于Android平台的录音与实时传播.docx_第3页
第3页 / 共16页
基于Android平台的录音与实时传播.docx_第4页
第4页 / 共16页
基于Android平台的录音与实时传播.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于Android平台的录音与实时传播.docx

《基于Android平台的录音与实时传播.docx》由会员分享,可在线阅读,更多相关《基于Android平台的录音与实时传播.docx(16页珍藏版)》请在冰豆网上搜索。

基于Android平台的录音与实时传播.docx

基于Android平台的录音与实时传播

本科毕业论文(设计)

( 2013届本科毕业生)

题 目:

 基于Android平台的录音与实时传播的设计与实现          

学生姓名:

     周凡           

学生学号:

    09999035         

学院名称:

    科信软件学院     

专业名称:

   计算机科学与技术 

指导教师:

     关庆余 

二零一三年四月

 

【摘要】Android是目前全世界最大的移动操作系统,基于这种操作系统的智能手机的全球使用量已经接近10亿部。

本文针对基于Android平台的录音与实时传播的实现进行毕业设计,研究分析了Android平台的系统架构和组件模型,接着解析了Android中的重要API和应用构成,以及Intent和生命周期的机制。

在此基础上,设计和开发录音与实时传播软件。

本系统界面友好、操作便捷,具有可扩展性和可维护性;经过测试,能够满足用户的基本需求。

【关键词】Android,Java,实时传播,文件存储,网络传输

TherecordingandrealtimecommunicationsoftwarebasedonAndroidplatform

【Abstract】Androidisnowtheworld’slargestmobileopreatingsystem,basedontheglobaluseofsmartphoneoperatingsystemiscloseto1billionunits.Inthispaper,basedontheandroidplatformofthetapetograduationdesignandimplementationofreal-timetransmission.Studyoftheandroidplatformsystemarchitectureandcomponentmodelsareanalyzed,andthenanalyzestheimportantoftheandroidAPIandapplicationformaswellasthemechanismofIntentandlifecycle.Onthebasisofthedesignanddevelopmentoftherecordingandrealtimecommunicationsoftware.Thesoftwareinterfaceisfriendly,theoperationisconvenient,hasthescalabilityandmaintainability,aftertesting,cansatisfythebasicrequirementsoftheuser.

【Keywords】Android,Java, Real-timetransmission, Filestorage, Networktransmission

 

第一章绪论........................................................1

1.1引言...........................................................1

1.2国内外手机应用研究现状.........................................1

1.3发展趋势.......................................................2

第二章Android的相关技术介绍及分析.................................3

2.1Android平台的技术架构..........................................3

2.2Android架构分析................................................3

2.3Android应用的构成..............................................6

第三章Android应用程序结构剖析.....................................7

3.1Android的API..................................................7

3.2Android应用程序结构解析........................................8

3.3Android活动的生命周期..........................................9

3.4Intent的详细解析..............................................14

3.5Android系统服务..............................................16

3.6Android事件处理机制...........................................16

第四章Android录音与实时传播的设计与实现..........................16

4.1研究目标......................................................16

4.2需求分析......................................................16

4.3界面设计..............................................16

4.4设计思路与理论................................................17

4.5主要代码......................................................21

 

后  记...........................................................28

参考文献...........................................................29

附录一.............................................................30

 

第一章绪论

1.1引言

面对巨大的移动应用开发市场,国内外的IT厂商分别推出各种各样的移动应用平台,Google发布的基于Linux平台的开源手机操作系统Android的诞生,标志着移动信息设备平台进入了一个崭新的领域。

这种操作系统的智能手机的全球使用量已经接近了10亿部,而且其增长前景仍然是不可挡。

Android平台由操作系统,中间层,用户界面和应用软件构成,在应用程序的开发使用Java语言,并提供专门的SDK。

本课题的目的在于掌握Java手机应用开发技术和移动软件平台开发技术,以Java语言为基础,利用Android提供的SDK完成在Android平台上运行的具有一定功能的录音与实时传播软件。

1.2国内外手机应用研究现状

自Android问世以来,在多个方面体现出了它的先天性优势。

例如开放性,丰富的硬件以及方便开发等。

在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。

显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。

开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

其次是丰富的硬件,这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。

功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。

方便开发,Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有很多新颖别致的软件会诞生。

系统的开放性和免费性,移动互联网的快速发展和相关厂商的大力支持等,这些优势促使Android的使用量大增,应用软件的数量也水涨船高,截至2012年12月,Android应用早已突破70万大关,门类也不断的增多,丰富的应用使Android几乎无所不能。

近年来十分热门的网络社交服务也已进入到手机客户端领域,如QQ,新浪微博等。

各大知名社交网站分别推出他们的客户端,由于Android包含一个强大的程序库,支持多种常用的音频格式文件的回放和录制并能通过网络协议实现传播,这些技术使Android平台的录音与实时传播成为现实。

1.3发展趋势

Android系统无疑已经成为时下全世界最热门的移动设备操作系统,但这并没有让它停下发展的脚步,自2007年11月发布以来,Android家族已经增加了10多位成员,进一步改善了功能和运行环境,同时也为平板电脑的快速发展奠定了基础,具有其他操作系统无法比拟的优势和发展空间。

随着3G应用的不断开发推广,用户会需要更加个性化、优质化的多媒体数据服务,这些促使Android系统在技术上进一步完善,在若干方面进行新的发展。

首先,提供信息服务,这些信息既包括传统意义上的新闻,天气,又包括现实生活中的产品信息,路况信息等,这些信息将给用户全方位的参考。

其次,提供强大的用户体验,Android系统对于硬件的要求使手机厂商不得不开发性能更高的手机,在处理器,屏幕分辨率等方面大幅提升,这也能反作用于手机应用开发,使开发者的设计理想不因硬件受限,顺应了移动互联网的大潮流,有助于Android的推广及应用。

接着,提供互动功能,利用Android手机,人们可以表达自己的心声,不仅仅是图片,还包括音视频等,随时随地与他人分享身边事,让心灵的距离更近。

最后,Android会更加的安全,随着智能手机的普及化和智能化,手机软件的更新、升级将会变得越发简单,并会为用户安全信息提醒,让用户有能力和权力决策那些内容是否浏览、下载或分享,能够十分有效的帮助用户对获取到的内容进行管理,保护用户的个人隐私和基于手机的在线购物,账户信息等。

随着Android的不断创新,开发,维护,这些发展理想陆续变成现实。

更强大更安全的Android将展现给世人。

第二章Android的相关技术介绍及分析

2.1Android平台的技术架构

Android平台采用了软件叠层的架构,由低到高分为四部分:

Linux内核层,中间层,应用程序框架,应用层,如图2-1所示。

图2-1Android平台架构

Linux内核层:

该层是基础,包含各种驱动,并提供操作系统的基本功能;

中间层:

包含程序库和Android运行时环境;

应用程序框架:

该层是编写核心应用所使用的API框架,开发者可以使用这些框架来开发自己的应用,但必须遵守该框架的开发原则;

应用层:

该层是各种应用软件,包括通话、短信、日历、地图、浏览器等核心应用程序,这些应用程序都是使用Java编写的。

2.2Android架构分析

Android核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及Android运行时。

在开发应用程序时,应用程序架构内已经具备多种不同的基础组件,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。

2.2.1Linux内核

Android使用Linux2.6作为操作系统,Android的Linux核心为标准的Linux内核,Linux内核也同时作为硬件和协议栈之间的抽象层。

Android对操作系统的使用包括核心和驱动两部分,驱动包括一些与移动设备相关的驱动程序,如显示驱动,Flash内存驱动,相机驱动,音频驱动,视频驱动,WiFi驱动,键盘驱动,蓝牙驱动,电源管理等。

2.2.2应用程序框架

开发者可以访问Android应用程序框架中的API,该应用程序架构简化了组件的重用,任何一个应用程序都可以发布它的功能块,并且任何其他的应用程序都可以使用这些发布的功能块。

同样,该应用程序的重用体制也使用户可以方便的替换程序组件。

Android提供一系列的服务和管理器,其中包括以下内容。

(l)一套强大和可扩展的视图系统:

用来建构一个应用程序的基本组件,包括列表、网格、文本框、按钮、web浏览器等,这些视图可以用来构建应用程序。

(2)内容提供器:

使得应用程序可以访问另一个应用程序的数据,或者可以共享他们自己的数据;

(3)资源管理器:

提供非代码资源的访问,例如本地字符串、图形和布局文件等;

(4)通知管理器:

使得应用程序可以在状态栏中显示自定义的提示信息;

(5)活动管理器:

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

例如:

启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。

(6)视窗管理器:

用来管理所有启动程序的视窗。

(7)位置管理器:

用来管理地图服务的相关功能。

(8)电话管理器:

用来管理用户拨打与接听电话的相关功能。

(9)包管理器:

管理所有安装在Android系统内的包。

2.2.3程序库

Android包含一个能被Android系统中各种不同组件所使用的C\C++库,该库通过Android应用程序框架为开发者提供服务,主要包括以下内容。

(1)系统C库:

一个从BSD继承的标准C系统函数库,是专门基于嵌入式Linux设备定制的;

(2)媒体库:

该库支持多种常用的音频、视频格式文件的回放和录制,同时支持静态图像文件,编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等;

(3)SurfaceManager:

管理显示子系统,并且为多个应用程序提供2D和3D图层的无缝融合;

(4)SGL:

底层的2D图形引擎;

(5)3D库:

该库可以使用3D硬件加速或者使用高度优化的3D软加速;

(6)FreeType:

用于位图和矢量字体显示;

(7)WebKit:

Android内建的浏览器,是以WebKit的浏览引擎为基础所开发成的。

WedKit是一个开源浏览器网页排版引擎,配合Android手机的功能,可以在浏览网页时,达到更好的效果,例如:

局部性的缩放网页上的资讯、触控式的操作等效果。

(8)SQLite库:

SQLite是一个用于本地存储的、轻型关系型数据库引擎。

SQLite提供结构化的数据存取。

目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。

它无需安装和管理配置,同时它还支持事务功能和并发处理等等。

SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。

(9)SSL:

中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议。

SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。

它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。

SSL协议可分为两层:

SSL记录协议:

它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL握手协议:

它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务主要有:

(1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

(2)加密数据以防止数据中途被窃取;(3)维护数据的完整性,确保数据在传输过程中不被改变。

2.2.4Android运行时组件

Android运行时环境由一个核心库和Dalvik虚拟机组成。

核心库提供Java编程语言核心库的大多数功能。

虽然Android是用Java语言来开发、撰写应用程序,但不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Dalvik虚拟机来执行程序。

它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。

每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成在一个设备中可以同时有效地运行多个虚拟系统,它依赖于Linux内核的一些功能,如线程机制和底层内存管理机制等。

所有的类有Java编译器编译,最后由Dalvik虚拟机执行。

2.3Android应用的构成

Android的应用程序主要是用户界面方面的,通常用Java编写,其中还可以包含各种资源文件,Java程序及相关资源经过编译后,将生成一个APK包。

Android应用的具体构成如图2-2所示。

 

Intent

ContentProvider

 

通过Intent实现活动之间转换   通过contentProvider实现数据存储

 

Activity

存储设备

Activity

 

通过IntentReceiver对外部事件作出相应

 

Binder

IntentReceiver

通过Binder对事件进行绑定

 

Service

外部事件

 

图2-2Android的构成和工作流程

一个Android应用程序通常由4个组件构成:

活动、意图、服务和内容提供器。

这4个组件是构成Android应用程序的基础,但除了Activity是必要部分之外,其余组件都是可选的,在某些应用程序中可能只需要其中部分组件即可。

在应用程序中使用时,需要在配置文件AndroidManifest.xml中进行配置。

这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。

第三章Android应用程序结构剖析

3.1Android的API

AndroidAPI主要包含了以下几个部分:

3.1.1AndroidManifest.xml

Android系统开放了许多底层应用供用户调用,与其他系统不同,Android系统有自己特殊的调用底层的方式。

因此,需要通过某种方式设置Activity许可才能运行相应的应用。

AndroidManifest.xml是系统的控制文件,它告诉系统如何处理所创建的所有应用组件。

在AndroidManifest.xml中可以配置应用程序的权限,这种方式提供了程序使用系统应用的安全性保证,底层应用只有用相应的权限许可才能被用户程序使用,否则程序运行出现错误。

Android系统提供了许多许可,用户使用相应的底层服务时,需要在AndroidManifest.xml中添加相应的权限。

如允许程序打电话,允许程序获取网络状态信息等。

3.1.2活动

活动是最基本的Android应用程序组建。

在应用程序中,一个活动通常就是一个单独的屏幕。

每个活动都通过继承活动基类而被实现为一个独立的活动类,活动类将会显示由视图控件组成的用户接口,并对事件作出相应。

大多数的应用程序都是由多个屏幕显示组成的,这里的每个屏幕都是一个活动,很容易实现从一个屏幕到另一个屏幕并且完成新的活动。

Android会把每个从主菜单打开的程序保留在堆栈中,用户可以通过回退操作退回到之前打开过的屏幕,也可以选择性地移去一些没有必要保留的屏幕。

3.1.3视图

视图可以将其自身绘制到屏幕上。

Android的用户界面由一系列的视图树构成。

接口都是由一组以树的形式出现的视图组成的。

开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术。

3.1.4Intent

Intent用来描述应用程序的功能。

它是利用消息实现应用程序间的交互机制,能够在程序运行的过程中连接两个不同的组件。

Intent描述了应用中一次操作的动作、数据以及附加数据,向Android表达某种请求或者意愿,Android系统会根据Intent描述的内容选择适当的组件来响应,并将Intent传递给该组件,完成组件的调用。

 

与Intent相关的两个类是IntentFilter和IntentReceiver。

当Intent请求做某个动作时,IntentFilter用于描述一个活动或者广播接收器能够操作哪些Intent,而IntentReceiver可使应用程序对外部事件做出相应。

Intent中两个最重要的部分是动作和动作对应的数据。

典型的动作类型有活动的查看、选取、编辑等,而动作对应的数据则以URI形式表示。

3.1.5服务

服务是Android应用程序中具有较长的生命周期但是没有用户界面的程序。

它在后台运行,并且可以与其他程序进行交互。

服务与活动的级别差不多,但是不能独立运行,需要通过某一个活动来调用。

Android应用程序生命周期是由Android系统来决定的,不由具体的应用程序线程来控制。

如果应用程序要求在没有界面显示的情况还能正常运行,此时就需要用到Service。

3.1.6通知

通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。

最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。

3.1.7内容提供者

Android应用程序可以使用文件或者SQLite数据库来存储数据。

内容提供者提供了一个多应用间数据共享的方式。

当某个应用程序的数据需要与其他应用程序共享时,内容提供器就会发挥作用。

一个ContentProvider类实现一组标准的方法,能够让其他的应用保存或者读取此内容提供器处理的各种数据类型,即一个应用程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去。

外界根本看不到,也不用看到该应用程序暴露的数据是如何存储的,外界可以通过这一套标准及统一的接口读取应用程序的数据,也可以删除应用程序的数据。

3.2Android应用程序结构解析

一个完整的Android应用程序通常由Activity,Intent,Service,ContentProvider四个组件来构建。

然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。

当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中。

3.2.1Activity概述 

Activity是Android应用程序中最基本的组成单位,主要负责创建显示窗口,一个Activity对象通常就代表了一个单独的屏幕。

Activity是用户唯一可以看得到的组件,几乎所有的Activity都是用来与用户进行交互的。

在Android应用中,如果需要有显示的界面,则在应用中至少要包含一个Activity类。

Activity用于提供可视化的用户界面,是Android应用中使用频率最高的组件。

在具体实现时,每个Activity都被定义为一个独立的类,并且继承Androi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

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

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