《Android-音乐播放器-毕业论文》由会员分享,可在线阅读,更多相关《Android-音乐播放器-毕业论文(34页珍藏版)》请在金锄头文库上搜索。
1、ZHUZHOUPROFESSIONALTECHNOLOGYCOLLEGE毕业设计(论文)标题:基于Android的音乐播放器学生:唐虹霞系部:电子信息系专业:软件技术班级:软件1101班指导教师:湛桂枝汽车工程职业学院教务处制页脚目录摘要当今社会的生活节奏越来越快+Android系统上一的款音乐播放器应用程序的设计与实现进行讨论Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对高度过程中遇到的问题和解
2、决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置MP3的全名是MPEGAudioLayer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不作深究。关键词:Android;开源系统;Eclipse;音乐播放器1系统需求分析1.1 功能需求1.1.1 播放器的基本控制需求根据项目的目标,我们可获得项目系统的基本需求,一下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的
3、功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。上一曲下一曲暂停停止播放图1.1播放器基本控制图在播放器正在运行时,用户单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。1.1.2 功能需求(时序图)分析从时序图中可以看出播放器息发送和调用过程图1.2音乐播放器的时序图1.2 系统结构图和流程图主界面播放
4、列表音乐播放程序结束图1.3音乐播放器系统流程图1.3 系统界面需求播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。能实现要求的功能,但又不重复。要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。1.4系统性能需求根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:1、当要求歌曲播放时,程序响应时间最长不能超过5秒2、当要求歌曲暂停时,程序响应时间最长不能超过5秒3、当要求歌曲停止时,程序响应时间最长不能超过5秒4、当要求歌曲上/下一首时,程序响应时间最长不能超过5秒5、界面切换响应时间最长不
5、能超过3秒1.5运行环境需求操作系统:Windowsxp支持环境:Android2.1版本开发环境:Eclipse3.5ADT0.952Android项目介绍2.1 什么是Android2.1.1Android的介绍Android一词的本义指“机器人,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件Android是基于Linux核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”,后由开放手机联盟(OpenHandsetAllian
6、ce)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。低层以Linux核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其他几十个手机公司建立开发手机联盟。Android在未公开之前常被传闻为Google或gPhone。大多传闻认为Google开发的是自己的手机产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机的NexusOne。2.1.2AndroidFeatures特性:Android系统有如下的几大特性1. 应用程序框架支持组建的重用与
7、替换2. Dalvik虚拟机专门为移动设备做了优化3. 部集成浏览器该浏览器基于开源的WebKit引擎4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGlES5. SQLite用作结构化的数据存储6. 多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)7. GSM(依赖于硬件)8. 蓝牙Bluetooth,EDGE,3G,安定WIFI(依赖于硬件)9照相机,GPS,指南针,和加速度计(依赖于硬件)10.丰富的开发环境包括设备模拟器,调试工具,存及性能分析图表和Eclipse集成开发环境插件2.1.3 And
8、roid基本框架(AndroidArchitecture)图2.lAndroidArchitecture(android软件结构图)其软件层次结构自上而下分为以下几个层次第一、应用程序(Application)第二、应用程序框架(ApplicationFramework)第三、各种库(Libraries)和Android运行环境(RunTime)第四、操作系统层(1) ApplicationApplicationAndroid会同一核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。(2) App
9、licationFrameWork开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过的遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。所有的应用程序都由一系列的服务和系统组成,包括:a. 可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(Grids),文本框(Textboxes),按钮(button),甚至包括另一个可嵌入的web浏览器。b. 容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数
10、据(如联系人的数据库),或者共享它们自己的数据。c. 资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(LayoutFiles)。d. 通知管理器(NotificationManager)使得应用程序生可以在状态栏中显示客户通知信息。e. 活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。(3) Libraries库Android包括一个被Android系统中各种不同组件所使用的C/C+库集。该库通过Android应用程序框架为开发者提供服务。4)AndroidRuntimeAndroid包括了一个核
11、心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMS来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由java汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层存管理机制。(5)Linux核Android的核心系统服务依赖于Linux2.6核,如安全性,存管理,进程管理,网络协议和驱动模
12、型。Linux核也同时作为硬件和软件堆栈之间的硬件抽象层。2.2 Android应用软件开发的核心技术2.2.1 Android应用开发语言JAVA是Android上的主流开发语言,各种支持也最完善。Android发布的API和SDK也都主要是面向JAVA开发人员的。我的播放器实例也是用JAVA开发的。2.2.2 Android应用程序组件Android应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。例如假设我们需要编写一个嵌于网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的ChromeLite浏览器组件。
13、又如假设我们编写了两个应用程序,其中一个程序中有列表显示图标的组件,那么我们在另一个应用程序中就可以使用该组件,而不需要在编写该功能。也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。Android应用程序的组件有以下四种:1. Activity一个Activity实际上表现出来的就是一个程序的界面。这个界面可能有许多不同的形式,比如有列表形式,有文字形式,有图像格子等形式。一个应用程序也可能有不止一个Activity。比如一耳光短消息的程序,需要有列表显示所有消息的Activity,还至少需要一个编辑短信的Activ
14、ity,还可能需要设置、菜单等界面。每个Activity都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其他窗口之上(如Android中的Toast信息)。Activity中显示出来的容其实是由view堆叠形成的,view是由View基类派生出来的各种形式的界面元素,如ListView,GridView等等,通过组合这些view,就形成了一个可见的Activity。我们可以用Activity.setContentView()方法来设置一个Activity中所要显示的view。2. ServiceService是一种没有
15、界面的组件,同我们平常在Windows或Linux系统中所理解的“服务一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service组件式至关重要的。以下载管理器为例,用户肯定希望能够在切换到其他程序时仍然在后台继续下载,这就需要用到service完成下载工作。而显示下载进度、已下载文件等信息则由Activity完成,同时我们还希望控制下载过程,如停止、继续等,这就需要Activity与service之间进行通信oAndroid允许activity连接到或者绑定到service上,这样就可以让用户在界面上控制后台service的行为。3. BroadcastreceiverBroadcast意为广播消息,Android系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载。Broadcastreceiver则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其他组件去处理广播消息。它可以启动一个Activity来同用户交互,也可以使用NotificationManager向用户发出通知。NitificationManager的通