完整版马驰的毕业论文.docx

上传人:b****5 文档编号:3722955 上传时间:2022-11-24 格式:DOCX 页数:29 大小:784.24KB
下载 相关 举报
完整版马驰的毕业论文.docx_第1页
第1页 / 共29页
完整版马驰的毕业论文.docx_第2页
第2页 / 共29页
完整版马驰的毕业论文.docx_第3页
第3页 / 共29页
完整版马驰的毕业论文.docx_第4页
第4页 / 共29页
完整版马驰的毕业论文.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

完整版马驰的毕业论文.docx

《完整版马驰的毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版马驰的毕业论文.docx(29页珍藏版)》请在冰豆网上搜索。

完整版马驰的毕业论文.docx

完整版马驰的毕业论文

 

 

毕业论文(设计)

题目基于Android系统的音乐播放器

学生姓名马驰

学院电子与信息工程学院

专业计算机科学与技术

指导教师王红林

 

二〇一四年五月六日

声明

本人郑重声明:

1.持以“求实、创新”的科学精神从事研究工作。

2.本论文是我个人在导师指导下进行的研究工作和取得的研究成果。

3.本论文中除引文外,所有实验、数据和有关材料均是真实的。

4.本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。

5.其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。

作者签名:

马驰

日期:

201456

目录

摘要

1.前言..................................................1

2.系统需求分析..........................................2

2.1功能需求...........................................2

2.1.1播放器的基本控制需求..........................2

2.1.2播放器基本控制图..............................2

2.1.3功能需求(时序图)分析..........................3

2.2系统结构图和流程图.................................4

2.3系统界面需求.......................................5

2.4系统性能需求.......................................5

2.5运行环境需求.......................................5

3.Android项目介绍.......................................6

3.1什么是Android......................................6

3.1.1Android的介绍.................................6

3.1.2AndroidFeatures特性..........................7

3.1.3Android的基本框架(AndroidArchitecture).....7

3.2Android应用程序基础和组件.........................10

3.2.1Android应用程序基础..........................10

3.2.2Android应用程序组件..........................11

3.3Android开发环境的搭建.............................15

3.4Android音乐播放器的工程...........................17

3.4.1Android项目..................................17

3.4.2Android工程程序结构..........................18

3.4.3AndroidManifest.xml文件.....................19

4.音乐播放器的详细设计.................................22

4.1音乐播放器的欢迎界面和主界面的设计和说明..........22

4.2Android媒体播放远离..............................25

4.3播放功能实现细节..................................25

5.软件测试.............................................26

5.1软件的测试........................................26

5.1.1软件测试的环境...............................26

6.结论.................................................27

附录.................................................28

1.前言

随着当今社会的生活节奏的加快,人们对手机的要求也逐渐增高,所以也提高了对系统的要求,从过去的技术追求演变成现在的视觉追求。

随着时间的推移,现在的市场上主要有三大主流手机操作系统,分别是Windowsmobile,Symbian,以及谷歌的Android操作系统。

其中占有开发源代码优势的Android系统有最大的发展前景。

Android系统是一个开源的系统,它的底层是基于Linux的操作系统,作为一个开源的系统,那么能否在自己的手机上拥有自己编写的个性音乐播放器呢?

答案当然是能的,谷歌Android系统就能做到。

本论文的音乐播放器采用了Android开源系统技术,对Android系统上一的款音乐播放器应用程序的设计与实现进行讨论。

Android:

是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。

这使得越来越多的人关注这个操作系统。

本次作品音乐播放器就是基于Android平台的。

随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。

于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。

针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求。

本项目是一款基于Android手机平台的音乐播放器,让手机用户可以随时随地处于音乐的旋律中,还可以使Android手机拥有一款个性的音乐播放器,使手机显得更生动灵活化,与人们更为接近,使人们的生活更加多样化。

本设计实现的主要功能是播放MP3等音乐文件,播放器的界面简单,操作也同样的简单。

并且使手机用户能够最易得控制播放器播放,暂停,停止,上一曲,下一曲。

也使设计者能够更加熟练Android的技术和其它在市场上的特点。

2.系统需求分析

2.1功能需求

2.1.1播放器的基本控制需求

根据项目的目标,我们可获得项目系统的基本需求,一下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。

2.1.2播放器的基本控制图

用户

图2.1.2播放器的基本控制图

当播放器在运行状态时,用户若想播放选中的播放列表中的音乐,并同时显示当前进度时,则单击“播放”按钮;用户若想使播放中的播放器进入暂停状态,则需要在播放器播放时单机“暂停”按钮;用户若想使播放器停止时,则需要在播放器播放时或暂停时,单机“停止”按钮;用户若想使播放器播放上一首或下一首歌曲时,则需要点击“上一首”或“下一首”按钮。

2.1.3功能需求(时序图)分析

从时序图中可以看出播放器中信息发送和调用过程

2.2系统结构图和流程图

图2.2音乐播放器的系统流程图

2.3系统界面需求

播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能够让用户快速分辨出按钮的作用和操作方法。

确保不重复按钮功能,又能实现所要求的按钮功能。

还要考虑到不同手机的屏幕大小的不同,应该使播放器尽可能的兼容不同尺寸,让播放器显示正常。

2.4系统性能需求

根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:

1.当要求歌曲播放时,程序响应时间最长不能超过5秒

2.当要求歌曲暂停时,程序响应时间最长不能超过5秒

3.当要求歌曲停止时,程序响应时间最长不能超过5秒

4.当要求歌曲上下一首时,程序响应时间最长不能超过5秒

5.界面切换响应时间最长不能超过3秒

2.5运行环境需求

操作系统:

Windowsxp

支持环境:

Android2.1版本

开发环境:

Eclipse3.5ADT0.95

3.Android项目介绍

3.1什么是Android

3.1.1Android的介绍

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。

Android操作系统最初由AndyRubin开发,主要支持手机。

2005年8月由Google收购注资。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。

随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

第一部Android智能手机发布于2008年10月。

Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。

2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。

2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。

[1]2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

3.1.2AndroidFeatures特性

Android系统有如下的几大特性:

1.应用程序框架支持组建的重用与替换

2.Dalvik虚拟机专门为移动设备做了优化

3.内部集成浏览器该浏览器基于开源的WebKit引擎

4.优化的图形库包括2D和3D图形库,3D图形库基于OpenGlES

5.SQLite用作结构化的数据存储

6.多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

7.GSM电话(依赖于硬件)

8.蓝牙Bluetooth,EDGE,3G,安定WIFI(依赖于硬件)

9.照相机,GPS,指南针,和加速度计(依赖于硬件)

10.丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件

3.1.3Android基本框架(AndroidArchitecture)

图3.1.3AndroidArchitecture(android软件结构图)

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

蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为CC++语言编写的程序库,红色的代码内核(linux内核+driver)。

在ApplicationFramework之下,由CC++的程序库组成,通过JNI完成从JAVA到C的调用。

1.应用程序

所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成,活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程要更为灵活,与进程类似的是,活动在多种状态之间进行切换。

利用JAVA的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有Android系统的平台,这点正是Android的精髓所在。

2.应用程序框架

应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。

帮助程序员快速的开发程序,并且该应用程序重用机制也使用户可以方便的替换程序组件。

隐藏在每个应用后面的是一系列的服务和系统,其中包括;

1)丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。

2)内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

3)资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。

4)通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。

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

3.系统运行库

1)程序库

2)Android包含一些CC++库,这些库能被Android系统中不同的组件使用。

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

3)以下是一些核心库:

4)主要包括基本的C库、以及多媒体库以支持各种多媒体格式、位图和矢量字体、2D和3D图形引擎、浏览器、数据库支持。

1 Bionic系统C库。

2 媒体库,基于PacketVideoOpenCORE。

3 SurfaceManager顾名思义,用于管理Surface。

4 Webkit,LibWebCore浏览器,基于Webkit引擎。

5 SGL底层的2D图形引擎

6 3Dlibraries基于OpenGLES1.0APIs实现

7 FreeType位图(bitmap)和矢量(vector)字体显示。

8 SQLite一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

另外这里还有一个硬件抽象层。

其实Android并非所有的设备驱动都放在linux内核里面,有一部分实现在用户空间,

这么做的主要原因是可以避开Linux所遵循的GPL协议,一般情况下如果要将Android移植到其他硬件去运行,

只需要实现这部分代码即可。

包括:

显示器驱动,声音,相机,GPS,GSM等等。

5)Android运行库

6)Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

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

8)Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

9)Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

10)同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。

11)Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4.Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。

Linux内核也同时作为硬件和软件栈之间的抽象层。

其外还对其做了部分修改,主要涉及两部分修改:

1)Binder:

(IPC):

提供有效的进程间通信,虽然linux内核本身已经提供了这些功能,但Android系统很多服务都需要用到该功能,为了某种原因其实现了自己的一套。

2)电源管理:

为手持设备节省能耗。

最后在谈谈Android所采用的语言,其应用开发采用java语言,我们所说的java一般包含三个部分:

1)java语言:

即其语法,其写代码的程式。

2)java虚拟机:

为了实现一次编译到处可以运行的原则,java在编译连接以后并没有产生目标机器语言,而是采用了Javabytecode这种Java共用指令,这时就需要一个虚拟机来执行改指令。

3)库:

跟我们常用的C语言一样提供一些常用的库

3.2Android应用程序基础和组件

3.2.1Android应用程序基础

Android应用程序是用Java编程语言写的。

编译后的Java代码——包括应用程序要求的任何数据和资源文件,通过aapt工具捆绑成一个Android包,归档文件以.apk为后缀。

这个文件是分发应用程序和安装到移动设备的中介或工具,用户下载这个文件到他们的设备上。

一个.apk文件中的所有代码被认为是一个应用程序。

在许多方面,每个Android应用程序生活在它自己的世界:

1.默认情况下,每一个应用程序运行在它自己的Linux进程中。

当应用程序中的任何代码需要执行时,Android将启动进程;当它不在需要和系统资源被其他应用程序请求时,Android将关闭进程。

2.每个应用程序都有他自己的Java虚拟机(VM),因此应用程序代码独立于其他所有应用程序的代码运行。

3.默认情况下,每个应用程序分配一个唯一的Linux用户的ID。

权限设置为每个应用程序的文件仅对用户和应用程序本身可见——虽然也有一些方法可以暴露他们给其他应用程序。

有可能设置两个应用程序共享一个用户ID,这种情况下,他们能够看到对方的文件。

为了节省系统资源,具有相同ID的应用程序也可以安排在同一个Linux进程中,共享同一个VM。

3.2.2Android应用程序组件

Android的一个主要特点是,一个应用程序可以利用其他应用程序的元素(假设这些应用程序允许的话)。

例如,如果你的应用程序需要显示一个图像的滚动列表,且其他应用程序已经开发了一个合适的滚动条并可以提供给别的应用程序用,你可以调用这个滚动条来工作,而不用自己开发一个。

你的应用程序不用并入其他应用程序的代码或链接到它。

相反,当需求产生时它只是启动其他应用程序块。

对于这个工作,当应用程序的任何部分被请求时,系统必须能够启动一个应用程序的进程,并实例化该部分的Java对象。

因此,不像其他大多数系统的应用程序,Android应用程序没有一个单一的入口点(例如,没有main()函数)。

相反,系统能够实例化和运行需要几个必要的组件。

有四种类型的组件:

1.活动(Activities)

2.服务(Services)

3.广播接收者(Broadcastreceivers)

4.内容提供者(Contentproviders)

活动(Activities)

一个活动表示一个可视化的用户界面,关注一个用户从事的事件。

例如,一个活动可能表示一个用户可选择的菜单项列表,或者可能显示照片连同它的标题。

一个文本短信应用程序可能有一个活动,显示联系人的名单发送信息;第二个活动,写信息给选定的联系人;其他活动,重新查看旧信息或更改设置。

虽然他们一起工作形成一个整体的用户界面,但是每个活动是独立于其他活动的。

每一个都是作为Activity基类的一个子类的实现。

Android.app.Activity类:

因为几乎所有的活动(activities)都是与用户交互的,所以Activity类关注创建窗口,你可以用方法setContentView(View)将自己的UI放到里面。

然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另外一个活动中。

有两个方法是几乎所有的Activity子类都实现的:

1.onCreate(Bundle):

初始化你的活动(Activity),比如完成一些图形的绘制。

最重要的是,在这个方法里你通常将用布局资源(layoutresource)调用setContentView(int)方法定义你的UI,和用findViewById(int)在你的UI中检索你需要编程地交互的小部件(widgets)。

setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图(Intent),然后这个意图对应有相关的activity进行处理。

2.onPause():

处理当离开你的活动时要做的事情。

最重要的是,用户做的所有改变应该在这里提交(通常ContentProvider保存数据)。

一个应用程序可能只包含一个活动,或者像刚才提到的短信应用,它可能包含几个活动。

这些活动是什么,以及有多少,当然这取决于它的应用和设计。

一般来讲,当应用程序被启动时,被标记为第一个的活动应该展示给用户。

从一个活动移动到另一个活动由当前的活动完成开始下一个。

每一个活动都有一个默认的窗口。

一般来讲,窗口会填满整个屏幕,但是它可能比屏幕小或浮在其他窗口上。

一个活动还可以使用额外的窗口——例如弹出式对话框,或当一用户选择屏幕上一个特定的项时一个窗口显示给用户重要的信息。

窗口的可视内容是由继承自View基类的一个分层的视图—对象提供。

每个视图控件是窗口内的一个特定的矩形空间。

父视图包含和组织子女视图的布局。

叶子视图(在分层的底层)绘制的矩形直接控制和响应用户的操作。

因此,一个视图是活动与用户交互发生的地方。

例如,一个视图可能显示一个小的图片和当用户点击图片时发起一个行为。

Android有一些现成的视图你可以使用,包括按钮(buttons)、文本域(textfields)、滚动条(scrollbars)、菜单项(menuitems)、复选框(checkboxes)等等。

通过Activity.setContentView()方法放置一个视图层次在一个活动窗口中。

内容视图(contentview)是层次结构的根视图对象。

Activity.setContentView()方法:

publicvoidsetContentView(intlayoutResID):

根据布局资源设置活动的界面。

资源将被夸大,添加布局资源文件中所有的最高层的视图(top-levelviews)到活动

服务(Services)

一个服务没有一个可视化用户界面,而是在后台无期限地运行。

例如一个服务可能是播放背景音乐而用户做其他一些事情,或者它可能从网络获取数据,或计算一些东西并提供结果给需要的活动(activities)。

每个服务都继承自Service基类。

每个服务类在AndroidManifest.xml中有相应的声明。

服务可以通过Context.startService()和Context.bindService()启动。

一个典型的例子是一个媒体播放器播放一个播放列表中的歌曲。

该播放器应用程序将可能有一个或多个活动(activities),允许用户选择歌曲和开始播放。

然而,音乐播放本身不会被一个活动处理,因为用户希望保持音乐继续播放,当用户离开播放器去做其他事情时。

为了保持音乐继续播放,媒体播放器活动可以启动一个服务运行在后台。

系统将保持音乐播放服务运行,甚至媒体播放器离开屏幕时。

可以连接到(绑定到)一个持续运行的服务(并启动服务,如果它尚未运行)。

连接之后,你可以通过服务暴露的接口与服务交流。

对于音乐服务

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

当前位置:首页 > 小学教育 > 语文

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

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