基于Android操作系统的音乐播放器的设计与实现_第1页
基于Android操作系统的音乐播放器的设计与实现_第2页
基于Android操作系统的音乐播放器的设计与实现_第3页
基于Android操作系统的音乐播放器的设计与实现_第4页
基于Android操作系统的音乐播放器的设计与实现_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、装订线基于Android操作系统的音乐播放器的设计与实现摘 要随着通信设备网络的不断发展,新一代的移动终端用户对移动设备的功能和性能有了更高的要求。因此,在移动终端开发出功能强大以及界面美观操作简易的手机应用程序具有广阔的市场前景。本文设计的音乐播放器是基于Android平台而设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。本文介绍了国内外手机操作系统应用程序开发的情况及Android操作系统发展历程,讨论了基于Android平台应用程序开发关键技术,对音乐播放器进行了详细的需求分析,并详细介绍了音乐播放器的总体设计,包括音乐播放器的架构设计、功能模块的划分、配置文件

2、AndroidManifest.xml的设计。对音乐播放器的详细设计,本文重点阐述了音乐播放器核心模块即音乐播放主界面模块、音乐库模块、后台音乐服务模块,其中对几个核心组件MusicPlayActivity、DownloadService、MusicPlayerService、MainActivity的设计思路、交互过程、界面设计等做了详细的介绍。本文设计的音乐播放器通过了功能和性能方面的测试,并已在近期进入运行阶段,证明其设计方案的可行性。关键词:Android,音乐播放器,数据存储 ABSTRACTWith the development of telecommunication netw

3、orks have poised a higher demand for functions and performance of mobile devices.Therefore,it will be a vast future market for developing mobile application of powerful function and beautiful panel.The media player this thesis designed is based on Android platform which is nowadays fastest developed

4、 one and has widset potential market of all operating systems for smart phones.This Thesis introduced present situation of mobile software developing at home and abroad,discussed the key technologies of software developing based on Android platform,gave the details of requirement analysis on media p

5、layer,and described the construct collectivity design that includes framework design,functional modules design,design of configuration file.In the detailed design of this paper,it gave description of core modules that include playing module,library module,the playback service module.In the modules,i

6、t illustrated design ideas,interative process;communicate mechanism,message mechanism and panel designing of core components which are MusicPlayActivity、DownloadService、MusicPlayerService and MainActivity.The media player of this paper designed passed feature testing and performance testing,went int

7、o running stage which proves the feasibility of this solution.KEY WORDS:Android,Media player,Data Storage 目录第一章 绪论11.1 课题研究背景11.1.1 国内外手机操作系统应用开发的情况11.1.2 Android操作系统相关背景11.2 课题意义31.3 论文主要内容和组织结构4第二章 Android操作系统与音乐播放器52.1 Android操作系统52.1.1 Android架构介绍52.1.2 Android四大组件72.1.3 数据存储方式72.1.4 XML解析方式82.2

8、 音乐播放器102.2.1 音乐播放器的发展过程102.2.2 音乐播放器的发展现状10第三章 音乐播放器需求分析113.1 需求分析目标和任务113.2 用户特点113.3 假定和约束113.4 功能需求11第四章 音乐播放器的总体设计214.1 Android平台应用程序架构214.2 应用程序设计原则214.3 音乐播放器的层次224.4 音乐播放器数据库的设计234.5 配置文件设置24第五章 播放器主要模块设计与实现255.1 音乐库模块详细设计与实现255.1.1 在线曲库界面详细设计与实现265.1.2 我的音乐界面详细设计与实现275.1.3 我最爱听界面详细设计与实现285.

9、2 播放主界面模块详细设计与实现305.2.1 歌词显示界面详细设计与实现315.2.2 当前播放歌曲专辑图片显示界面详细设计与实现325.2.3 标签选择播放界面详细设计与实现335.3 后台服务模块详细设计与实现345.3.1 播放广播接收器详细设计与实现345.3.2 电话监听详细设计与实现34第六章 音乐播放器的测试356.1 测试模型356.1.1 V模型356.1.2 W模型366.2 测试模型的选择376.3 测试方法376.3.1 白盒测试376.3.2 黑盒测试376.3.3 测试方法选择386.4 功能的测试与实现386.4.1 音乐播放器播放功能的测试386.4.2 音乐

10、播放器显示功能的测试386.5 测试结论38结论与展望39致谢40参考文献41 第一章 绪论本章说明了论文的选题目的和意义,综合论述了Android操作系统开发的研究现状以及本文所要阐述的内容。1.1 课题研究背景1.1.1 国内外手机操作系统应用开发的情况随着移动终端市场竞争的日趋激烈,越来越多的软件开发人员加入到手机操作系统应用软件的开发中来。能否快速满足用户的新需求,吸引新的用户群,寻求通信业务发展的新的增值点,提供多样化、多层次化的业务,已成为各终端厂商在竞争中求生存、求发展的首要任务。目前全球比较流行的移动操作系统平台有苹果公司的ios、Google公司的Android及微软公司的W

11、indows Phone。目前大部分手机操作系统应用软件都是基于这几个操作系统平台之上开发的。据美国互联网流量监测机构comScore 2013年10月智能手机行业趋势报告显示,Google公司的Android 2013年10月市场占有率为52.2%,上升0.4个百分点,居智能手机操作系统首位。运行Android操作系统的设备数量最多,有上百款,最大的制造商包括三星、摩托罗拉、HTC、索爱和宏碁。运行iOS操作系统的设备有11款,包括各个版本的iPhone、iPad以及iPod touch。运行Windows Phone的设备有20款。虽然各方的调查数据存在一定出入,但我们还是可以明显的感觉到

12、,最近两年时间,Android一直保持着高速的发展。而IDC副总裁更是预测在2016年,Android设备的出货量将超过采用Windows系统的电脑。在市场占有率这方面,Android具有明显的优势,iOS次之,Windows Phone则是排在第三。究其原因,主要是Android作为开源系统,可以在众多品牌手机上进行适配,而且它对硬件配置的要求并不是很高,几乎主流厂商都在生产Android手机。而采用iOS系统的手机只有iPhone,不可否认,它的单机销量确实很高,几乎没有手机可以和它比拼,但仅仅一款手机必然会显得势单力薄。虽然采用Windows Phone系统的手机要多于iOS设备,但它对

13、于硬件要求过于严格,合作厂商也不是很多,再加上起步时间较晚,所以排名相对靠后。从上述调查情况可以看出,Android操作系统是目前最火前景最被看好的手机操作系统,因此,开发Android应用程序软件具有很好的市场价值。1.1.2 Android操作系统相关背景Android手机操作系统是谷歌开发的基于Linux平台的开源手机操作系统,目前比较主流的手机制造商都看上了这一款手机操作系统。1.1.2.1 Android发展历程2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。2005年8月17日,Google低调收购了成立仅22个月的高科技企业Androi

14、d及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。2008年,在GoogleI/O大会上,谷歌提

15、出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。2009年4月,谷歌正式推出了Android 1.5这款手机,从Android 1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯蛋糕)。该系统与Android 1.0相比有了很大的改进。2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3),凭借着出色的外

16、观设计以及全新的Android 1.6操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。2010年2月份,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux开发主流将分道扬镳。在同年5月份,谷歌正式发布了Android 2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo(冻酸奶)。2010年10月份,谷歌宣布Android系统达到了第一个里程碑,即电子市场上获得

17、官方数字认证的Android应用数量已经达到了10万个,Android系统的应用增长非常迅速。在2010年12月,谷歌正式发布了Android 2.3操作系统Gingerbread (姜饼)。2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智能手机领域占有量最高的系统。2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。2011年9月份,Andr

18、oid系统的应用数目已经达到了48万,而在智能手机市场,Android系统的占有率已经达到了43%。继续在排在移动操作系统首位。谷歌将会发布全新的Android 4.0操作系统,这款系统被谷歌命名为Ice Cream Sandwich(冰激凌三明治)。2012年1月6日,谷歌Android Market已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。Android Market应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。在2011年早些时候,Android Market从20万增加到30万应用也花了四个月。2012年6月28日,谷歌发布推出全新的

19、Android 4.1操作系统,这款系统被谷歌命名为Jelly Bean(果冻豆)。该系统更快、更流畅、更灵敏;特效动画的帧速提高至60fps,增加了三倍缓冲;增强通知栏;全新搜索;搜索将会带来全新的UI、智能语音搜索和Google Now三项新功能;桌面插件自动调整大小;加强无障碍操作;语言和输入法扩展。2012年10月30日,谷歌推出发布了Android4.2操作系统,沿用了“果冻豆”这一名称,以反映这种最新操作系统与Android 4.1的相似性,但Android 4.2推出了一些重大的新特性,具体如下:Photo Sphere全景拍照功能;键盘手势输入功能;改进锁屏功能,包括锁屏状态下

20、支持桌面挂件和直接打开照相功能等;可扩展通知,允许用户直接打开应用;Gmail邮件可缩放显示;Daydream屏幕保护程序;用户连点三次可放大整个显示频,还可用两根手指进行旋转和缩放显示,以及专为盲人用户设计的语音输出和手势模式导航功能等;支持Miracast无线显示共享功能;Google Now现可允许用户使用Gamail作为新的数据来源,如改进后的航班追踪功能、酒店和餐厅预订功能以及音乐和电影推荐功能等。2013年9月4日凌晨,谷歌对外公布了Android新版本Android 4.4KitKat(奇巧巧克力),并且于2013年11月01日正式发布,新的4.4系统更加整合了自家服务,力求防止

21、安卓系统继续碎片化、分散化。1.1.2.2 Android操作系统优劣势分析Android操作系统的优势说明如下1。(1)开放性。Android是由Google公司牵手30多家公司成立的“开放手机联盟”共同研发的,这些全球各地的手机制造商和移动运营商都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保证,而且开发商也会得到新的开放级别,更方便的进行协同合作。因此Android是一个完整、开放、免费的手机平台,在移动产业内形成一个开放式的生态系统。(2)应用程序无界限。Android上的应用程序可以通过标准API访问核心移动设备功能,通过互联网,应用程序可以声明它们的功

22、能可供其它应用程序使用。(3)应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或者扩展,即使是拨号程序这样的核心组件。(4)应用程序可以轻松的嵌入网络。应用程序可以轻松的嵌入 HTML、JavaScript和样式表,还可以通过WebView显示网络内容。(5)应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知以引起注意。Android移动操作系统在高速发展的过程中伴随着一些问题,需要改进的地方说明如下。(1)Dalvik VM 对于硬件的配置要求较高,在进行应用程序开发时硬件成本同其他开发环境相比还是比较高的

23、。(2)Google为了平台的安全性设置了较多的权限控制,导致任务管理器、模拟按键、屏幕截图、短信防火墙等类似功能的实现都较为困难、步骤繁琐。1.2 课题意义随着科技的发展,手机在人群中的使用越来越广泛,手机的功能也在不断的发展、丰富。从单一的打电话发展到了发短信、上网、听歌、导航手机和我们的生活越来越密切,手机的功能成为了越来越多的人选择手机时的焦点。现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。和传统的音乐播放器相比,具有音乐播放功能的手机不仅更加的容易携带,而且还可以具有网上听音乐功能,将会给使用者带来很大的方便。所以,一款功能比较全面、使用相对人性化

24、的音乐播放软件将会很受大众欢迎,具有良好的应用前景。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性化的音乐播放器,让手机主人随时随地处于音乐的旋律中。本设计实现的主要功能设计实现的重要功能是播放Mp3格式的音乐文件,并且能够控制音乐的播放,暂停,上一曲,下一曲,显示歌曲专辑图片等功能。1.3 论文主要内容和组织结构本文共分为六章,内容安排如下所示。第一章是绪论,介绍本课题的研究背景、研究意义及课题内容。第二章介绍本课题用到的Android开发技术。其中包含Android四大组件,SQLite数据库,文件存储,XML解析方式及tomcat服务器介绍等内容。第三章

25、是音乐播放器的需求描述及分析。一方面说明对音乐播放器功能和性能的规定,另一方面是对音乐播放器的功能进行需求分析,主要介绍对音乐播放器主界面和音乐库两个主要功能的需求分析。第四章是音乐播放器总体设计,分为从这几个角度来描述:手机上Android应用程序架构,应用程序架构设计原则,音乐播放器架构图,功能模块图,配置文件设计。第五章是音乐播放器主要模块的详细设计及实现。本论文主要介绍音乐播放器三个主要模块即音乐播放主界面模块、音乐库模块、后台服务模块的详细设计与实现。第六章是对音乐播放器的测试过程。通过介绍主要的测试模型与测试方法,选择适合本设计的方法,对其进行测试。第二章 Android操作系统与

26、音乐播放器2.1 Android操作系统2.1.1 Android架构介绍Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件四层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无需任何改变。2下图2-1为Android总体框架图,本节主要对Android总体框架及包含的模块做具体介绍。图2-1 Android系统架构图(1)ApplicationsAndroid会同一系列核心应用程序包一起发

27、布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。(2)Application Framework 开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括:丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grid

28、s),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形和布局文件( layout files )。通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(3)LibrariesAndroid 包含一些C/

29、C+库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:系统C库 - 一个从BSD继承来的标准C系统函数库(libc), 它是专门为基于嵌入式Linux的设备定制的。媒体库 - 基于PacketVideo的OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。Surface Manager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。LibWebCore - 一个最新的web浏览器引擎用,支持

30、Android浏览器和一个可嵌入的web视图。SGL - 底层的2D图形引擎3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速或者使用高度优化的3D软加速。FreeType -位图(bitmap)和矢量(vector)字体显示。SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。(4)Android RuntimeAndroid运行时由两部分组成:Android核心库集和Dalvik虚拟机。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。每个Android应用程序都运

31、行在单独的一个Dalvik虚拟机内,因此Dalvik专门针对同时高效地运行多个虚拟机进行了优化,因此Android系统可以方便地实现对应用程序进行隔离。由于Android应用程序的编程语言是Java,因此有些人会把Dalvik虚拟机和JVM搞混,但实际上Dalvik并未遵守JVM规范,两者也不兼容。实际上,JVM虚拟机运行的是Java字节码(通常就是.class文件),但Dalvik运行的是其专有的dex(Dalvik Executable)文件。JVM直接从.class文件或JAR包中加载字节码然后运行;而Dalvik则无法直接从.class文件或JAR包中加载字节码,它需要通过DX工具将应

32、用程序的所有.class文件编译成.dex文件,Dalvik则运行该.dex文件。Dalvik虚拟机非常适合在移动终端上使用,相对于在PC或服务器上运行的虚拟机而言,Dalvik虚拟机不需要很快的CPU计算速度和大量的内存空间,它主要有如下两个优点:运行专有的.dex文件。专有的.dex文件减少了.class文件中的冗余信息,而且会把所有.class文件整合到一个文件中,从而提高运行性能;而且DX工具还会对.dex文件进行一些性能的优化。基于寄存器的实现。大多数虚拟机包括JVM都是基于栈,而Dalvik虚拟机则是基于寄存器的。一般来说,基于寄存器的虚拟机具有更好的性能表现,但在硬件通用性上略差

33、。(5)LinuxAndroid系统建立在Linux2.6之上,Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。2.1.2 Android四大组件一些独立的组件通过名为manifest的工程捆绑在一起,相互协调构成一个Android应用程序。在manifest中,有一个mainfest.xml配置文件,这个配置文件描述了每一个组件以及组件的作用。下面介绍四个基本组件,它们是构成Android应用程序的基石3。(1)ActivityActivity是Android最基本的应用程序组件。任何一个Andr

34、oid应用程序都可以看作一组任务,这里每一个任务就可以称作一个Activity。比如短消息是一个应用程序,里面的新建短信界面、新建彩信界面、删除短信界面等就是Activity。由此可见,在应用程序中,一个Activity通常就是一个单独的屏幕,用于呈现数据和与用户进行交互。(2)Service应用程序中的“幕后工作者”,相当于没有界面的Activity,因此Service组件运行时不可见,常用来执行一些需要持续运行的处理。以音乐播放器为例,在一个音乐播放器程序中有多个Activity,比如歌曲的选择、播放等。如果用户想导航到其它屏幕(比如短消息),要保持之前选择的音乐继续播放,音乐播放器程序就

35、必须启动一个Service,在后台保持音乐的不断播放。Service的使用方法:(1)第一步:自己写一个继承Service类的类(2)第二步:在AndroidMainfest.xml文件中进行注册(3)第三步:startService()(3)Broadcast Receiver在Android中,应用程序会通过Broadcast Receiver组件来监听符合条件的Intent。每一个Broadcast Receiver都可以接收一种或若干种Intent作为触发事件,当Broadcast Receiver被触发后,会自动启动相应程序对收到的Intent做出响应。(4)Content Prov

36、iderAndroid应用程序使用文件、SQL数据库等存储系统来保存数据,而使用Content Provider来实现不同应用之间的数据共享。每个应用程序的Content Provider提供了一套标准的访问接口,以便各应用程序之间对数据进行读取、保存等操作。2.1.3 数据存储方式在Android操作系统中,数据存储方式主要有五种:SharedPreference存储、Content Provider存储、文件存储、SQLite存储及网络存储。在本文中,将介绍在本课题中使用到的两种,分别为文件存储和SQLite存储。(1) 文件存储文件用来存储大数量的数据采用java.io.*库所提供有I/

37、O接口读写文件。只有本地文件可以被访问,本课题中SDCard中的本地音乐就可以通过该存储方式存储,采用IO流进行读取。当文件以此种方式存储,将各种类型的文件写入SDCard时,需要在AndroidManifest.xml中加入访问SDCard的权限如下: 采用此种存储方式的优点为:可以存储大容量的数据。而缺点就是:文件更新或是格式改变可能会导致巨大的编程工作。(2)SQLite存储为了节省系统资源,Andriod系统中封装了开源的超轻量级嵌入式数据库SQLite。SQLite是D.Richard Hipp 开发的,SQLite3.0全部源代码不足3万行,编译后的动态链接库大小为300kb左右,

38、管理的数据量可达到2TB,数据以ASCII码形式存储,支持SQL快速查询,具有小、快、简单、可靠、安全、稳定、完全免费等特点4。Android中提供了两个类,用于简化 SQLite 数据库的操作。一个是SQLiteOpenHelper,该类主要用于自动完成打开、关闭数据库,当数据库不存在的情况下还可自动创建数据库,并根据需要更新数据库。另一个是SQLiteDatabase类,该类封装了数据库操作的API,主要用于查询数据库、向数据库中新建数据项、删除数据项等。创建一个数据库的一般流程如下: 根据应用设计出所需要的数据表格。 在应用程序中,通过继承和改写SQLite OpenHelper,创建、

39、打开数据库。 创建SQLiteDatabase对象,建立数据库接口。 利用接口,对数据库进行读写操作。 创建数据库的查询接口,实现查询操作。 关闭数据库。2.1.4 XML解析方式 XML(可扩展标记语言)与HTML一样,都是标准通用语言。是W3C制定的一组规范,用来定义文档标记语言的框架,同时作为一种便捷的数据操作和数据传输的工具,提供了一种描述结构数据的格式,XML 以简单性、开放性、可扩展性、互操作性等一系列特性给基于Web的应用程序带来了强大的功能和灵活性,因此在现今的Web开发中发挥着越来越重要的作用,使得针对XML文档的操作也越来越频繁5。本课题中网络歌曲的信息就是以XML文档的形

40、式存储在服务器中的。由于XML技术的方便性和高效性,一些用于处理XML文档的解析技术应运而生。作为XML应用的基础,XML解析技术一直是XML领域的研究热点。所谓XML文档的解析就是把代表XML文档的一个无结构的字符序列转换为满足XML语法的结构化组件的过程6。下面将介绍到几种XML解析方式。(1) DOM解析DOM(Document Object Model)是W3C发展的浏览XML 文档的一种标准 API,用与平台和语言无关的方式表示 XML 文档的标准,是一种基于树型的解析技术,将 XML文档一次性解析,生成一个位于内存中的对象树用以描述该文档。也是以层次结构组织的节点或信息片断的集合,

41、允许开发人员在XML 树中寻找特定信息,通过加载整个文档和构造层次结构分析该结构,从而做任何工作。该解析方式的优点在于:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;而缺点在于:正因为整个文档树在内存中,其中也包括无用的节点,这样就比较浪费时间和空间。(2)SAX解析为解决DOM的缺点,出现了SAX。SAX,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。相比于DOM解析,SAX解析的优点在于SAX 以序列的形式处理文档,不需要在内存中建立整个文档的树结构,因此 SAX 对内存的要求通常会比较低,因为它

42、让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现,与DOM相比,其可认为其是一个轻量级的接口集合。缺点就在于它不是持久的,事件过后,若没保存数据,那么数据就丢了。在本课题中,解析服务器中的歌曲信息用的就是SAX解析方式。(3) JAXP解析JAXP是Java API for XML Processing的缩写,是一种专门提供XML文档解析的 Java 接口。JAXP API主要的部分在javaxxmlparsers这个包中。在这个包中,向用户提供了两个最重要的工厂类,SAXParserFactory 和Documen

43、tBuilderFactory,相应地,提供了SAXParser和DocumentBuilder两个类。这种解析的优点在于大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法;支持XPath;有很好的性能。而缺点就是大量使用了接口,API较为复杂。(4)JDOM解析JDOM的目的是成为Java特定文档模型,它简化了与XML的交互,从而减少DOM、SAX的编码量,极大减少了代码量。DOM适合于当今流行的各种语言,包括Java,JavaScripte,VB,VBScript,Perl,C,C等,它也为HTML和XML文档提供了一个可应用于不同平台的编程接口。JDOM的另一

44、个特点是它被设计成一个可以在小内存上快速执行的轻量级API,它不要求把整个XML文件放人内存,而只是在需要时把信息装人内存,从而减少了系统资源开销。但是使用JDOM 的时候,需要一定的前提条件,即须要有SAX、DOM解析器的类文件。此种解析方式的优点在于使用具体类而不是接口,简化了DOM的API;大量使用了Java集合类,方便了Java开发人员。而缺点就是没有较好的灵活性;性能较差。通过对以上四种XML解析结束的分析和比较,可以总结出在选择XML解析技术的选择依据。当应用程序解析了文档还需多次访问这些数据,可以优先考虑 DOM 解析;当应用程序需要简单的只读数据流并且希望一个体现成熟标准的强健

45、的实施技术时,可以优先考虑SAX解析;当要应用程序实现的功能简单,如解析、创建等,JDOM是一种最佳选择;当代码与各种解析器的实现细节隔离,一般建议使用JAPX。2.2 音乐播放器2.2.1 音乐播放器的发展过程时代在进步,人类的消费需求也在随之不断改变,各种各样的工业产品应运而生并不断地得到改善与推进。音乐播放产品的发展几乎实现了十年一次的跳转转变,按照时间顺序,我们可以分为五个时代7。(1)20世纪40-50年代:广播时代;(2)20世纪60年代:流行音乐推进唱片机时代;(3)20世纪70年代:立体声与电子乐器时代;(4)20世纪80年代:音乐移动性与个性化时代;(5)20世纪90年代:数

46、字信息与网络传播时代。随着社会的进步,音乐播放产品也随之发展,无论从外形方面还是存储方式或是资源来源方式等方面都有着重大转变,从固定不便携的只能被动收听的收音机发展到了目前的小巧便携、个性化、能自由选择歌曲的MP3。每一次的发展都与当时技术的发展有着直接的联系,也与当时大众的消费需求有着密切关系。 2.2.2 音乐播放器的发展现状随着科技的提升,音乐播放器变得越来越现代化、科技化,时下流行的音乐播放器大致拥有以下特点8:(1)网络化、产品销售平台紧密相连;在网络化时代,音乐的网络电子销售已成为一种趋势。通过网络的传输,可以迅速的从网上音乐商店下载歌曲资源到用户手中的音乐播放产品中。(2) 建立

47、完整的音乐服务系统;除了满足用户听歌的需求之外,还能帮助用户了解歌曲的背景、排名状况、歌手情况、观看歌曲MV、听歌识曲等功能,带给消费者愉悦、精彩的音乐互动体验。第三章 音乐播放器需求分析为了开发出真正满足用户需求的软件产品,需要对开发产品做需求分析。对软件需求的合理把握是软件开发周期中非常重要的一个环节,本章将对音乐播放器做较为全面的需求分析。随着手机功能的不断增强,音乐播放器己成为智能手机重要软件之一。开发一款符合广大用户需求的音乐播放器有很好的市场前景和意义。3.1 需求分析目标和任务本软件的目标是开发一款基于Android平台符合用户使用需求的音乐播放器。本音乐播放器支持MP3格式的文

48、件。用户可以通过音乐播放器从服务器获取网络歌曲,从音乐库里选择自己喜爱的歌曲,新建播放列表,播放或暂停歌曲,选择上一首歌曲,下一首歌曲,调整歌曲播放的进度,同步显示歌词,选择播放列表的歌曲等。本软件要求具有美观简洁便于用户使用的触摸界面。3.2 用户特点本软件最终用户是购买手机使用音乐播放功能的普通用户。3.3 假定和约束本软件的开发工作是基于假定手机硬件完好,具有一定存储空间。3.4 功能需求作为Android平台上开发的应用软件,它必须具备与用户交互的界面,界面简洁美观易于操作。因此,对音乐播放器的功能规定可从音乐播放器的界面来划分。音乐播放器的用户操作界面可分为以下两部分:音乐库主界面、

49、音乐播放主界面。本小节通过用例图和用例说明分别对这两个界面进行功能需求分析。1.音乐库主界面:该界面是用户进入音乐播放器的主界面,即用户选择打开该应用,启动动画结束后将会自动弹出该界面。在该界面中采用了ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时需记得在BuildPath中加入“android-support-v4.jar”。在该界面中需要实现的界面有三个,分别为:“在线曲库”、“我的音乐”、“我最爱听”。以列表形式显示SDcard里所有歌曲的名称及艺术家名,便于用户浏览和挑选歌曲。音乐库主界面用例图如下图3-1所示。图3-1 音乐库主界面用例图

50、下面对音乐库主界面进行用例说明。(1) 从音乐库主界面选择“我的音乐”界面,即全部本地歌曲列表,用例说明如下表3-1所示。参与者Android操作系统手机用户概述用户从音乐库主界面中选择全部歌曲列表界面。前置条件(1) 音乐库扫描已完成。(2) 用户进入音乐库主界面。详细描述(1) 用户从主界面中选择“我的音乐”标签,即全部本地歌曲列表界面。(2) 系统显示全部本地歌曲列表。后置条件系统成功切换到全部本地歌曲列表界面。表3-1 选择全部本地歌曲列表用例说明(2) 从音乐库主界面选择“我最爱听”界面即播放列表界面,用例说明如下表3-2所示。参与者Android操作系统手机用户概述用户从音乐库主界

51、面中选择播放列表界面。前置条件(1) 音乐库扫描已完成。(2) 用户进入音乐库界面。详细描述(1) 用户从主界面中选择“我最爱听”标签,即播放列表界面。(2) 系统显示播放列表界面。后置条件系统成功切换到播放列表界面。表3-2 选择播放列表用例说明(3) 从音乐库主界面选择“在线曲库”界面即网络歌曲列表界面,用例说明如下表3-3所示。参与者Android操作系统手机用户概述用户从音乐库主界面中选择网络歌曲列表界面。前置条件(1) 系统与服务器连接成功。(2) 网络歌曲信息解析成功。(3) 用户进入音乐库主界面。详细描述(1) 用户从主界面中选择“在线曲库”标签,即网络歌曲列表界面。(2) 系统

52、显示网络歌曲列表界面。后置条件系统成功切换到网络歌曲列表界面。表3-3 选择网络歌曲列表用例说明(4)在“我的音乐”界面,从全部本地歌曲列表中选择播放歌曲,用例说明如下表3-4所示。参与者Android操作系统手机用户概述用户从全部本地歌曲列表中选择播放歌曲。前置条件(1) 音乐库扫描完成。(2) 音乐播放器准备完毕。(3) 用户进入全部本地歌曲列表界面。详细描述(1) 用户浏览歌曲条目,并点击其中一个条目。(2) 系统开始播放音乐。后置条件当前播放歌曲信息更新。表3-4 选择播放歌曲用例说明(5)在“我最爱听”界面新建播放列表,用例说明如下表3-5所示。参与者Android操作系统手机用户概

53、述用户新建播放列表。前置条件(1) 音乐库扫描已完成。(2) 用户进入播放列表界面。详细描述(1) 用户在“我最爱听”界面菜单中选择“点击添加分组”,新建播放列表。(2) 系统弹出对话框,要求用户输入分组名。(3) 用户输入分组名,并单击确定按钮。(4) 系统在播放列表界面“我最爱听”里显示新建的播放分组。(5) 返回“我的音乐”界面,单击选择的音乐条目,可选择其加入选定的播放分组。后置条件系统成功添加播放分组,用户可以从新建的分组中选择要播放的歌曲。表3-5 新建播放列表用例说明(6) 删除播放分组,用例说明如下表3-6所示。参与者Android操作系统手机用户概述用户删除播放分组。前置条件

54、(1) 音乐库扫描已完成。(2) 用户进入播放分组界面。详细描述(1) 用户从播放列表界面中播放分组条目里长按想要删除的分组。(2) 系统弹出菜单列表为用户提供操作选择。(3) 用户点击删除分组按钮。(4) 系统删除该播放分组。(5) 系统刷新播放分组界面删除该条目。后置条件系统成功删除该播放分组。表3-6 删除播放分组用例说明(7) 在“在线曲库”界面,选择播放网络音乐,用例说明如下表3-7所示。参与者Android操作系统手机用户概述用户选择播放网络歌曲。前置条件(1) 应用系统与服务器连接已成功。(2) 网络歌曲信息解析已结束。(3) 用户进入在线曲库界面。详细描述(1) 用户浏览网络音

55、乐列表,并长按选择一个条目。(2) 系统弹出操作选项对话框。(3) 选择播放按钮。(4) 系统开始播放音乐。后置条件当前播放音乐信息更新。表3-7 选择播放网络音乐用例说明(8) 在“在线曲库”界面,选择下载网络音乐,用例说明如下表3-8所示。参与者Android操作系统手机用户概述用户选择下载网络歌曲。前置条件(1) 应用系统与服务器连接已成功。(2) 网络歌曲信息解析已结束。(3) 用户进入在线曲库界面。详细描述(1) 用户浏览网络音乐列表,并长按选择一个条目。(2) 系统弹出操作选项对话框。(3) 选择下载按钮。(4) 系统开始下载音乐。后置条件本地音乐库信息更新。表3-8 选择下载网络音乐用例说明2.音乐播放主界面:当用户选择音乐开始播放时,点击音乐库主界面下方的播放歌曲专辑图片即可跳转到音乐播放主界面。此界面实现的主要功能包括播放、暂停音乐,选择播放队列里上一个歌曲,选择播放队列里下一首歌曲,控制音量,定位音乐进度条,显示歌曲播放进度,歌词同步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论