基于android的mp3播放器的设计与实现_第1页
基于android的mp3播放器的设计与实现_第2页
基于android的mp3播放器的设计与实现_第3页
基于android的mp3播放器的设计与实现_第4页
基于android的mp3播放器的设计与实现_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

基于ANDROID的MP3播放器的设计与实现摘要当今社会的生活节奏越来越快,随着移动手机的逐渐发展与普及,现在可谓是人手一机,相应的人们对手机体验的要求也越来越高,人们对手机的追求也从之前的电话短信变成现在的视觉、听觉追求。本次设计研究一个基于ANDROID平台的手机音乐播放器,它采用JAVA语言编写,可以运行于ANDROID平台的手机或平板。设备上随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对ANDROID系统上音乐播放器应用程序的设计与实现进行讨论。本论文的音乐播放器采用了ANDROID开源系统技术,利用JAVA语言和ECLIPSE编辑工具对播放器进行编写,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在ANDROID系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置本论文将逐步介绍基于ANDROID平台的音乐播放器的开发背景和意义,接着详细介绍了音乐播放器的分析、设计与实现过程,最后对本论文做了总结。关键字ANDROID;多媒体;SQLITE;手机DESIGNANDIMPLEMENTATIONOFMP3PLAYERBASEDONANDROIDABSTRACTFASTERANDFASTERPACEOFLIFEINTODAYSSOCIETY,WITHTHEPROGRESSIVEDEVELOPMENTANDPOPULARIZATIONOFMOBILEPHONES,CANBESAIDTOHAVEONENOW,PEOPLEAREINCREASINGLYHIGHREQUIREMENTSONTHEMOBILEPHONEEXPERIENCE,THEPURSUITOFTHEPEOPLEONTHEPHONEFROMTHEPREVIOUSPHONEMESSAGESBECOMENOWTHEVISUAL,AUDITORYPURSUITTHEDESIGNSTUDYISAMOBILEMUSICPLAYERBASEDONTHEANDROIDPLATFORM,ITUSESTHEJAVALANGUAGE,ANDCANRUNONTHEANDROIDPLATFORMPHONEORTABLETDEVICETHEPACEOFLIFEINTODAYSSOCIETY,WITHMOREADVANCEDHARDWAREMOBILEDEVICESFORMOBILEDEVICES,PEOPLEMOREANDMOREISALSOHIGH,THEREQUIREMENTSFROMTHEPREVIOUSPURSUITTOPURSUETHEVISUALTECHNOLOGY,THEREFORE,ALSOGRADUALLYIMPROVETHESYSTEMREQUIREMENTS,THEPAPERMAINLYISTOTAKEONAMUSICPLAYERFROMSYSTEMDESIGNANDREALIZATIONOFTHEAPPLICATIONISDISCUSSEDTAKETHESYSTEMISANOPENSOURCE,ITISBASEDONTHEOPERATINGSYSTEM,USETHELINUXMUSICPLAYEROFTHEANDROIDOPENSOURCESYSTEMTECHNOLOGY,USINGTHEJAVALANGUAGEANDEDITINGTOOLSFORPLAYERSTOECLIPSEPRESENTSTHEDETAILEDDESIGNPROCESS,THEPARTOFTHESYSTEMANDTHEMAINFUNCTIONSOFOPERATIONINTERFACEDIAGRAMOFHEIGHT,THISPAPERALSOFLOWPROCESSPROBLEMSANDSOLVINGMETHODSAREDISCUSSEDINDETAIL,ANDTHEMUSICPLAYEREPISODE,PAUSE,STOPANDA,NEXT,VOLUMEADJUSTMENT,LYRICSDISPLAYFUNCTIONS,SUCHASPERFORMANCEISGOOD,CANOPERATEINDEPENDENTLYINTHEANDROIDSYSTEMTHISPLAYERHASACCESSTOTHEFILEBROWSERPHONEFUNCTIONS,SONGSANDPLAYEDPATTERN,OPENANDCLOSECONDITIONOFFRIENDLYWORDSTHEPAPERSWILLBEGRADUALLYINTRODUCEDBASEDONTHEBACKGROUNDANDSIGNIFICANCEOFTHEANDROIDPLATFORM,THEDEVELOPMENTOFTHEMUSICPLAYER,MUSICPLAYERANDTHENDETAILSTHEANALYSIS,DESIGNANDIMPLEMENTATIONPROCESS,ANDFINALLY,THEPAPERSUMMARIZESKEYWORDSANDROIDMULTIMEDIASQLITEPHONE目录摘要IABSTRACTII1绪论111课题的研究背景112本课题研究现状113课题研究的主要任务214论文组织结构22相关技术及开发平台421什么是ANDROID422ANDROID系统架构简介5221应用程序APPLATIONS7222应用程序框架APPLATIONFRAMEWORK7223ANDROID运行时RUNTIME8224系统库LIBRARIES8225LINUX823SQLITE数据库824ANDROID开发环境的搭建93系统分析1231概述12311系统分析的原则12312系统分析的方法12313系统性能要求分析1232系统可行性分析1333系统主要功能分析14331本地播放模块1434系统流程分析144系统设计1641系统设计目标1642系统功能模块设计1643数据库设计1744工程文件结构设计175系统编码实现与测试2051音乐播放SERVICE实现2052功能模块的实现23521主界面实现23522本地播放列表实现24523音乐列表实现25524音乐播放界面实现27525在线音乐界面实现31526最近播放界面实现326系统测试3461测试的重要性3462测试的目的3463系统测试用例和总结34总结38致谢39参考文献40外文及翻译411绪论11课题的研究背景伴随科技的进步,手机的功能也不断的得到更新,从最早的“大哥大”发展到现在的智能手机,音乐手机等等,功能也从单纯的打电话发展到了发短信,听歌,看视频,上网等,手机和日常生活的联系越来越紧密,手机的功能也成为很多人们关注的焦点。ANDROID是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于ANDROID平台的。随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户如听歌、看电影的需求,除了能播放常见格式的语音视频文件,高级功能,还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。12本课题研究现状ANDROID一词的本义指“机器人”。同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称该平台由操作系统、中间件、用户界面和应用软件组成号称是首个为移动终端打造的真正开放和完整的移动软件。ANDROID是基于LINUX内核的软件平台和操作系统早期由GOOGLE开发在华注册商标名为“安致”,后由开放手机联盟、OPENHANDSETALLIANCE开发。它采用了软件堆层,SOFTWARESTACK,又名以软件叠层的架构主要分为三部分。低层以LINUX内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。另外,为了推广此技术,GOOGLE和其它几十个手机公司建立了开放手机联盟。ANDROID在未公开之前常被传闻为GOOGLE电话或GPHONE。大多传闻认为GOOGLE开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,GOOGLE开始发表自家品牌手机电话的NEXUSONE。目前最新SDK版本为ANDROID403。目前手机的音乐播放功能已经是大家在购买手机的时候比较关注的一个部分了,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到人们的欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器,而且还具有网上听音乐功能,所以本课题就致力于开发出一款高性能的ANDROID手机音乐播放器来满足用户的使用需求,同时它会成为具有良好的市场和应用前景的手机软件。13课题研究的主要任务伴随科技的进步,手机的功能也不断的得到更新,从最早的“大哥大”发展到现在的智能手机,音乐手机等等,功能也从单纯的打电话发展到了发短信,听歌,看视频,上网等,手机和日常生活的联系越来越紧密,手机的功能也成为很多人们关注的焦点。目前手机的音乐播放功能已经是大家在购买手机的时候比较关注的一个部分了,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到人们的欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器,而且还具有网上听音乐功能,所以本课题就致力于开发出一款高性能的ANDROID手机音乐播放器来满足用户的使用需求,同时它会成为具有良好的市场和应用前景的手机软件。本课题在ANDROID系统下开发一款多媒体音乐播放器并学习多媒体技术,熟悉软件开发流程。1媒体文件播放与控制,包括多种格式的音频文件播放如MP3,WMA,AAC,后台播放媒体文件等,其主要是实现本地播放和在线播放。2媒体文件信息管理,包括媒体文件信息的查找、存储与获取,数据库操作等,主要是利用数据库管理系统SQLITE实现对媒体文件的调用。3播放信息和用户配置参数的保存与加载。4在ANDROID模拟器/真机上实现软件的应用。14论文组织结构本文详细介绍了基于ANDROID手机平台的音乐播放器的设计实现的全过程。从开始到程序设计的实现,将在一下的几章中予以介绍第1章绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,对开发本系统的可行性分析还有对论文各章内容的简要介绍。第2章相关技术及平台介绍,对涉及到的理论知识和用到的开发工具做相关阐述。第3章系统分析,主要介绍了本系统需要实现的功能模块和本系统的数据库设计、页面的详细设计等。第4章系统设计,主要介绍了本系统的整个设计过程、设计思路以及设计中应该注意的问题。第5章系统编码实现与测试,主要介绍了本设计的实现环境和实现,同时也介绍了测试在软件开发环节中的重要性和给出本系统的测试过程与结论。最后总结、致谢、参考文献。2相关技术及开发平台21什么是ANDROIDANDROID一词的本义指“机器人”,同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。ANDROID一词最早出现于法国作家利尔亚当(AUGUSTEVILLIERSDELISLEADAM)在1886年发表的科幻小说未来夏娃(LVEFUTURE)中。他将外表像人的机器起名为ANDROID。ANDROID的LOGO是由ASCENDER公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,ANDROID小机器人便诞生了。其中的文字使用了ASCENDER公司专门制作的称之为“DROID”的字体。ANDROID是一个全身绿色的机器人,绿色也是ANDROID的标志。颜色采用了PMS376C和RGB中十六进制的A4C639来绘制,这是ANDROID操作系统的品牌象徵。有时候,它们还会使用纯文字的LOGO。2012年7月美国科技博客网站BUSINESSINSIDER评选出二十一世纪十款最重要电子产品,ANDROID操作系统和IPHONE等榜上有名。2003年10月,ANDYRUBIN等人创建ANDROID公司,并组建ANDROID团队。2005年8月17日,GOOGLE低调收购了成立仅22个月的高科技企业ANDROID及其团队。安迪鲁宾成为GOOGLE公司工程部副总裁,继续负责ANDROID项目。2007年11月5日,谷歌公司正式向外界展示了这款名为ANDROID的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(OPENHANDSETALLIANCE)来共同研发改良ANDROID系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,GOOGLE以APACHE免费开源许可证的授权方式,发布了ANDROID的源代码。2008年,在GOOGLEI/O大会上,谷歌提出了ANDROIDHAL架构图,在同年8月18号,ANDROID获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了ANDROID10系统,这也是ANDROID系统最早的版本。2009年4月,谷歌正式推出了ANDROID15这款手机,从ANDROID15版本开始,谷歌开始将ANDROID的版本以甜品的名字命名,ANDROID15命名为CUPCAKE(纸杯蛋糕)。该系统与ANDROID10相比有了很大的改进。2009年9月份,谷歌发布了ANDROID16的正式版,并且推出了搭载ANDROID16正式版的手机HTCHERO(G3),凭借着出色的外观设计以及全新的ANDROID16操作系统,HTCHERO(G3)成为当时全球最受欢迎的手机。ANDROID16也有一个有趣的甜品名称,它被称为DONUT(甜甜圈)。2010年2月份,LINUX内核开发者GREGKROAHHARTMAN将ANDROID的驱安卓各个版本在市场受欢迎度动程序从LINUX内核“状态树”(“STAGINGTREE”)上除去,从此,ANDROID与LINUX开发主流将分道扬镳。在同年5月份,谷歌正式发布了ANDROID22操作系统。谷歌将ANDROID22操作系统命名为FROYO,翻译完名为冻酸奶。2010年10月份,谷歌宣布ANDROID系统达到了第一个里程碑,即电子市场上获得官方数字认证的ANDROID应用数量已经达到了10万个,ANDROID系统的应用增长非常迅速。在2010年12月,谷歌正式发布了ANDROID23操作系统GINGERBREAD(姜饼)。2011年1月,谷歌称每日的ANDROID设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而ANDROID系统设备的用户总数达到了135亿,ANDROID系统已经成为智能手机领域占有量最高的系统。2011年8月2日,ANDROID手机已占据全球智能机市场48的份额,并在亚太地区市场占据统治地位,终结了SYMBIAN(塞班系统)的霸主地位,跃居全球第一。2011年9月份,ANDROID系统的应用数目已经达到了48万,而在智能手机市场,ANDROID系统的占有率已经达到了43。继续在排在移动操作系统首位。谷歌将会发布全新的ANDROID40操作系统,这款系统被谷歌命名为ICECREAMSANDWICH(冰激凌三明治)。2012年1月6日,谷歌ANDROIDMARKET已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。ANDROIDMARKET应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。在2011年早些时候,ANDROIDMARKET从20万增加到30万应用也花了四个月。22ANDROID系统架构简介ANDROID的基本框架由五个部分组成,应用层、应用框架层、类库、ANDROID运行时环境和LINUX内核。我们程序开发人员只可以访问应用层和应用框架层,使用开发所需LIBRARY库。ANDROID基本框架如图21所示。图21ANDROID基本框架1APPLICATIONSAPPLICATIONANDROID会与一个核心应用的程序包一起发布,此应用程序包会包括SMS短消息程序,EMAIL客户端,地图,浏览器,联系人管理,日历程序等。使用JAVA语言编写的核心应用程序。2APPLICATIONFRAMEWORK允许开发人员完全访问核心应用程序所使用的API框架。此应用程序架构用来简化组件的重用;在遵循系统安全性的要求下任何应用程序都可以发布和使用的它的功能块。此应用程序的重用机制使得组建可以被用户替换。所有的应用程序都由一系列的服务和系统组成,包括可扩展的视图(VIEWS)、内容管理器(CONTENTPROVIDERS)、资源管理器(RESOURCEMANAGER)、通知管理器(NOTIFICATIONMANAGER)、活动类管理器(ACTIVITYMANAGER)。3LIBRARIES库ANDROID包含了一套C/C函数库。该库通过ANDROID的APPLICATIONFRAMEWORK为开发人员提供所需的底层服务。以下是一些核心LIBRARIES库系统C库就是系统C函数库(LIBC),为基于EMBEDDEDLINUX的设备专门定制,也是从BSD继承而来的。媒体库基于PACKETVIDEOOPENCORE,这个库支持录和放,可以录制大多数比较流行的音频与视频格式,还有静态映像文件包括MP3,MPEG4,AAC,H264,AMR,JPG,PNG。SURFACEMANAGER管理所显示子系统,并且为多个应用程序提供2D图层和3D图层的无缝融合。LIBWEBCORE一个最新用来支持ANDROID浏览器和一个可嵌入WEB视图的WEB浏览器引擎。SGL一个内置的支持2D图形的引擎。3DLIBRARIES该库可以使用高度优化的3D软加速或者使用硬件3D加速。FREETYPE位图和矢量字体显示。SQLITE功能强劲的安卓用轻量级关系型数据库,所有应用程序均可使用。4ANDROIDRUNTIMEANDROID包括了一个核心的LIBRARY,该库提供了编程中JAVA所封装的大多数类和方法。每一个ANDROID应用程序都在它自己独立的线程中运行,都拥有一个相对独立的DALVIK虚拟机实例。DALVIK是同时针对于多个高效运行的VMS来实现的。DALVIK虚拟机执行DEX的可执行文件,这一格式文件对最小内存的使用做出了较好的优化。该DALVIK虚拟机是基于寄存器的,所有的类都需要经过JAVA编译,然后通过ANDROIDSDK中的DX工具转化成DEX格式再由虚拟机执行。5LINUX内核ANDROID的核心系统服务依赖于LINUX26内核,如安全性,网络协议栈,内存管理,驱动模型和进程管理ERRORREFERENCESOURCENOTFOUND。LINUX内核也同时作为硬件和软件堆栈之间的硬件抽象层。同所有LINUX内核一样,ANDROID内核是介于硬件层和软件组之间的一个抽象层次221应用程序APPLICATIONSANDROID平台默认包含了一系列核心应用程序,包括电子邮件、短信、日历、地图、浏览器、联系人管理程序等,这些程序都以JAVA程序语言编写,你也可以用自己便携的应用程序来替换ANDROID提供的应用程序,这个替换的机制实际是由应用程序框架来保证的。如图22所示。图22应用层222应用程序框架APPLICATIONFRAMEWORK应用程序框架是我们进行ANDROID开发的基础应用程序框架层包含了视图系统,内容提供器,窗口管理器,活动管理器,通知管理器,位置管理器,资源管理器,电话管理器和包管理器9大部分。如图23所示。图23中间件层223ANDROID运行时RUNTIMEANDROID虽然采取JAVA程序语言来编写应用程序,但不使用J2ME执行JAVA程序,而是用ANDROID自有的ANDROID运行时(RUNTIME)ANDROID运行时包括核心库和DALVIK虚拟机两部分。如图24所示。图24核心库,虚拟机224系统库LIBRARIES应用程序框架是贴近于应用程序的软件组件服务,而更底层则是ANDROID的函数库,这一部分是应用程序框架的支撑,其架构如图25所示。图25系统库225LINUXANDROID平台是开放,采用LINUX内核则是ANDROID平台开放性的基础。ANDROID平台中的操作系统采用了LINUX26版的内核,它包括了显示驱动、摄像头驱动、FLASH内存驱动、BINDER(IPC)驱动、键盘驱动、WIFI驱动、AUDIO驱动以及电源管理部分。LINUX内核层为我们在软件层和硬件层建立了一个抽象层,使得应用程序开发人员无需关心硬件细节。对于手机的开发商而言,如果想要ANDROID平台运行到自己的硬件平台上就必须通过对LINUX层进行修改,通常要做的工作就是为自己的硬件便携驱动程序。23SQLITE数据库ANDROID采用SQLITE这个轻量级数据库工具来管理数据SQLITE,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLITE第一个ALPHA版本诞生于2000年5月。至今已经有14个年头,SQLITE也迎来了一个版本SQLITE3已经发布。SQLITE是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是DRICHARDHIPP建立的公有领域项目。不像常见的客户服务器范例,SQLITE引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库定义、表、索引和数据本身都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLITE虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,它支持的SQL包括ATTACHDATABASE,BEGINTRANSACTION,COMMENT,COMMITTRANSACTION,COPY,CREATEINDEX,CREATETABLE,CREATETRIGGER,CREATEVIEW,DELETE,DETACHDATABASE,DROPINDEX,DROPTABLE,DROPTRIGGER,DROPVIEW,ENDTRANSACTION,EXPLAIN,EXPRESSION,INSERT,ONCONFLICTCLAUSEPRAGMA,REPLACE,ROLLBACKTRANSACTION,SELECT,UPDATE。同时它还支持事务处理功能等等。也有人说它象MICROSOFT的ACCESS,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLITE支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象ACCESS一样需要OFFICE的支持。24ANDROID开发环境的搭建在软件开发中,大部分的软件都需要配置开发环境才能够使用,ANDROID开发也不例外。下面介绍ANDROID的开发环境配置搭建开发环境需要的软件1操作系统WINDOWSXP或LINUX2软件包ANDROIDSDKSOFTWAREDEVELOPMENTKITJAVADEVELOPMENTKIT、ADTANDROIDDEVELOOPMENTTOOL3IDE环境IDEECLIPSEADTECLIPSE4JDKJAVARUNTIMEENVIRONMENT、JAVADEVELOPMENTKIT安装步骤如下第一步安装JAVA虚拟机SUNJAVA6JDK版本,正常安装即可,完成后需要配置环境变量。第二步安装ECLIPSE工具官网HTTP/WWWECLIPSEORG/DOWNLOADS/选择版本,进行安装。ECLIPSE安装包下载如图26所示。图26ECLIPSE安装包下载第三步安装安卓的SDK包首先在安卓开发者的官网下载SDK,具体下载地如下HTTP/DEVELOPERANDROIDCOM/SDK,选择自己的系统进行下载安装。如图27所示。图27SDK包下载界面第四步安装ANDROIDADT插件打开ECLIPSE,点击HELP,然后点击INSTALLNEWSOFTWARE,再点击ADD,然后会弹出一个框。如图28所示。图28ADT插件安装界面选择浏览你下载的ADT插件的包,点击OK按钮,选择需要安装的包,占击NEXT按钮,然后选择接受协议,等到安装成功以后重启ECLIPSE工具,再设置ANDROIDSDK环境,点击WINDOW然后PREFERENCES,再选择点击ANDROID。如图29所示。图29配置开发环境在SDKLOCATION中输入SDKTOOLS路径EANDROID_SDK点击OK这样ANDROID环境就已经搭建成功了。3系统分析31概述系统分析是在总体规划的指导下,对某个或若干个子系统进行深入仔细地调查研究,确定新系统逻辑功能的过程。这一阶段的主要任务是由系统分析员了解每个业务流程,工作流程,广大用户的需求,运用系统开发理论、开发方法和开发技术设计出一个计算机化的信息系统。311系统分析的原则在系统分析中存在很多困难,为了克服困难,做好分析工作,在进行系统分析时应遵循系统分析的原则,这样才能保证分析工作能够顺利进行,系统分析的原则有1逻辑设计与物理设计分开的原则2面向用户的原则3结构化分析的原则通过实际调查并与相关用户交流后,分析商品订购网模拟网站的具体的要求,确定本网站系统的逻辑功能,以满足用户的各项要求,完成相应的各项功能,提高网站的实用水平。在近期目标完成后,该系统应该有很强的扩充性,便于在此基础上进行扩充式开发,为以后的发展及扩充打好基础。312系统分析的方法该系统采用以抽象和分解为手段,并且采用结构化分析方法进行系统分析,根据实际调查研究,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,建立新系统的逻辑模型,这个逻辑模型将尽可能避免使用计算机术语,让其尽可能的简单化、通俗化,便于设计者和浏览者的沟通与交流经验。结构化分析方法的基本思想是该系统采用结构化分析方法,以抽象和分解为手段,对系统进行自顶向下的逐层分解,逐步细分,逐步求精,从而达到易于理解的目的。313系统性能要求分析为了保证能够长期、安全、稳定、可靠的运行,系统应满足以下性能要求1系统处理的准确性与及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,充分考虑当前和将来可能承受的工作量,使系统的处理能力和相应时间能够满足信息处理的要求。2系统的可扩充性及可维护性,系统的开发过程中,应该充分考虑以后的可扩充性相当于升级。当今企业对系统的可维护性也有了相当高的关注。例如添加新功能。所以本系统采用了CS开发模式,大幅提高了系统的可扩展性及可维护性。3系统的可兼容性,考虑到目前ANDROID版本众多、设备众多,所以设计出的程序必需要求可以兼容各个主流版本。4系统的可靠性,可靠性是保证系统正常工作及抗故障、抗干扰的能力,它包括保证系统正常工作的能力;对系统故障的预防、检测以及自动纠错的能力;出现故障时,保证系统不发生崩溃,并使系统重新恢复、重新启动的能力等安全性是保证合法用户能够正确使用信息系统,并防止非法用户访问信息系统的能力适应性是信息系统对外部环境和需求变化的适应能力。32系统可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是对进行了一次较大压缩简化后的系统进行分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性,技术上的可行性,操作上的可行性和法律上的可行性。经济可行性目标系统开发经济需求的比较低,加上具有成熟的ANDROID平台以及十分普及手机设备,所以在软硬件的支出上十分有限。而且,目标系统并是十分的复杂,开发的周期较短,人员经济支出有限。当系统开发成后,通过测试和、试运行和实际应用后,将很大程度上提高移动公交查询系统的科学性和高效性,在为人们带来便利的同时,也为系统的进一步推广、创新创造了条件,这带来的经济回报将远超过支出,并且最重要的一点是通过该系统的开发,可以使我们进一步理解软件工程思想和软件开发流程,为从事软件开发工作打下很好的基础,从长远利益来考虑,本课题的设计开发还是具有相当大的经济可行性的。技术可行性本系统使用ANDROID技术进行开发,发展到现在,ANDROID已经算是一个较成熟的平台了,现在有越来越多的企业及技术人员选择它作为开发平台。因此,在技术上NET是完全可以胜任这个平台的开发。ANDROID开发平台是由谷歌与开放手机联盟合作开发的一个开放、自由的移动终端平台,它由操作系统、中间件、应用软件三部分组成。该平台备有完善的程序开发环境,包括模拟器、除错工具、程序执行所耗用存储器、性能评介等功能。操作可行性本系统用户只要有一台ANDROID手机,就可以使用了,系统是由的操作都是用户熟悉的选择框或者按钮等等。所有的操作通过手机就可以完成,用户不需培训,只要稍微提示一下即可。因此,在操作使用上,本系统简单、方便,易于使用户接受,因而是十分可行的。法律可行性由于本系统是在相关法律法规下实施完成的,所以不存在任何法律问题,在法律上是完全可行的。综合考虑经济、技术、操作和法律等方面的因素,该系统可以立即开始进行。33系统主要功能分析331本地播放模块1播放列表系统具有默认播放列表,默认播放列表包含了所有扫描到的歌曲,默认列表不允许删除。2自定义列表用户可以新建一个或多个自定义列表,可以往自定义列表里添加歌曲。3歌曲扫描用户可以扫描SD卡的一切歌曲文件。4删除歌曲用户可以删除列表中的任何一首歌曲。5歌曲播放用户可以选择一个本地歌曲播放,播放时可以选择上一首、下一首、暂停,快进,重播等操作;6播放模式播放歌曲时,用户可以选择歌曲播放模式,例如顺序播放、随机播放或者单曲循环;7歌词显示在上传歌词的情况下可同步显示歌词34系统流程分析本系统完成一个音乐文件的播放流程功能,用户可以选择本地播放或在线播放,例如选择本地播放后则会进入本地播放列表,包括默认列表和自定义列表,用户选择任何一个列表即可看到该列表中的所有歌曲,点击一个歌曲即可播放,播放过程中可以选择暂停、下一首、上一首,快进,重播操作。具体系统的流程图31所示。图31系统播放流程图4系统设计41系统设计目标在系统分析的基础上,设计出能满足预定目标的系统的过程。系统设计内容主要包括确定设计方针和方法,将系统分解为若干子系统,确定各子系统的目标、功能及其相互关系,决定对子系统的管理体制和控制方式,对各子系统进行技术设计和评价,对全系统进行技术设计和评价等。本系统是设计目标是建立一个基于ANDROID的音乐播放器软件,基本可以的满足人们对音乐文件的播放功能,系统具有上手简单、操作方便快捷的特点。用户界面漂亮、操作简单,每个设计都具有人性化的特点,具有使用简单,功能全面的特点,通过合理而先进的优化,保证了系统的可靠性与容错性。系统的设计主要考虑了用户需求,大大为用户着想,为用户提供简单完善实用的音乐播放器。42系统功能模块设计本系统本地播放模块和在线播放模块,都是由几个子模块构成,其中本地播放模块主要包括默认列表、自定义列表、歌曲扫描、歌曲提取、歌曲播放、播放控制和播放模式等等。在线播放模块包括音乐文件缓冲、显示歌词,文件播放等功能,模块架构设计如图41所示。图41系统功能模块图43数据库设计本系统用到的数据库为ANDROID自带的SQLITE数据库,系统采用三个数据表来记录信息,分别是音乐播放表、本地列表信息和列表歌曲对应表。其中音乐播放表记录的是音乐的播放记录,例如一个音乐被播放了多少次还有最近一次的播放时间。本地列表信息记录自定义的列表名称信息,而列表歌曲对应表则记录自定义列表个歌曲的对应信息。表41至表43为数据库设定设定。表41MUSIC音乐播放信息表序号列名数据类型主键说明1_IDINT是2MUSIC_IDINT音乐ID3CLICKSINT播放次数4LATESTVARCHAR最后播放时间表42LOCALLISTINFO本地列表信息序号列名数据类型主键说明1IDINT是2NAMENVARCHAR列表名称3CREATETIMENVARCHAR创建时间表43LOCALLISTDETAILINFO列表歌曲对应表序号列名数据类型主键说明1IDINT是2LISTIDNVARCHAR列表ID3MEDIAIDVARCHAR音乐ID4CREATETIMENVARCHAR添加时间44工程文件结构设计在程序开发阶段,首先确定“即ANDROID的音乐播放器系统”的工程名称为MUSICPLAYERAPP,根据程序模块设计的内容,建立MUSICPLAYERAPP项目,MUSICPLAYERAPP项目,的文件结构如图42所示。图42工程结构图为了使代码文件结构更加清晰,MUSICPLAYERAPP工程设置了多个命名空间,分别保存了用户界面、数据适配器、常用类库和实体多个包,源代码的名称以及说明如表43所示。表43系统代码结构包名称文件名说明COMMUSICMEDIAMAINACTIVITYJAVA主界面视图COMMUSICMEDIALOCALLISTACTIVITYJAVA本地播放列表视图COMMUSICMEDIAMAINLOCALACTIVITYJAVA本地歌曲界面视图COMMUSICMEDIAMUSICPLAYERACTIVITYJAVA本地歌曲播放界面视图COMMUSICMEDIAMUSICSERVICEJAVA音乐播放后台服务COMMUSICMEDIAONLINEMEDIAPLAYERJAVA在线播放界面视图COMMUSICMEDIARECENTLYACTIVITYJAVA最近播放界面视图COMMUSICMEDIASCANSDRECEIVERJAVA歌曲扫描接收器ANDROID的资源文件保存在/RES的子目录中。其中、/RES/ANIM目录中保存的是产生动画效果的XML文件,/RES/DRAWABLE/目录中保存的是图像文件,/RES/VALUES目录中保存的是用来自定义字符串和颜色的文件,/RES/XML目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表44。表44资源文件名称及用途资源目录文件名说明BTN_BLUE_SELECTORXMLBTN_WHITE_SELECTORXMLLISTVIEW_ITEM_SELECTORXMLSYS_APP_ACTSHAPEXMLSYS_APP_SELECTORXMLDRAWABLESYS_APPTOP_CORNERSXML按钮资源文件LAYOUT_MAINXML主界面布局文件LAYOUT_MAINLOCALXML本地列表布局文件LAYOUT_PLAYERXML本地歌曲播放界面布局文件LAYOUT_RECENTLYXML最近播放布局文件LAYOUT_SCANXML自定义扫描布局文件FILE_CREATEXML文件创建布局文件LAYOUTLISTVIEW_ITEM_FILEXML文件列表LISTVIEW文件MENUMAIN_MENUXML文件管理上下文菜单布局文件STYLESXML样式资源文件COLORSXML颜色资源文件VALUESSTRINGSXML字符串资源文件5系统编码实现与测试51音乐播放SERVICE实现SERVICE是ANDROID系统中的四大组件之一(ACTIVITY、SERVICE、BROADCASTRECEIVER、CONTENTPROVIDER),它跟ACTIVITY的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。SERVICE可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他ACTIVITY这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的。本系统的音乐播放就要用到一个运行再后台的SERVICE,它负责音乐的播放职能。首先我们创建一个MUSICSERVICE集成SERVICE,然后重载其ONCREATE、ONSTART等等几个方法来控制音乐的播放。PUBLICCLASSMUSICSERVICEEXTENDSSERVICEIMPLEMENTSMEDIAPLAYERONCOMPLETIONLISTENEROVERRIDEPUBLICVOIDONCREATESUPERONCREATEIFMPNULLMPRESETMPRELEASEMPNULLMPNEWMEDIAPLAYERMPSETONCOMPLETIONLISTENERTHIS/注册来电接收器/INTENTFILTERFILTERNEWINTENTFILTERFILTERADDACTION“ANDROIDINTENTACTIONANSWER“REGISTERRECEIVERINCOMINGSMSRECEIVER,FILTERRHANDLERNEWHANDLERFHANDLERNEWHANDLEROVERRIDEPUBLICVOIDONSTARTINTENTINTENT,INTSTARTIDSUPERONSTARTINTENT,STARTID/初始化MP/IFFLAG0RETURNIFINTENTGETINTARRAYEXTRA“_IDS“NULL_IDSINTENTGETINTARRAYEXTRA“_IDS“INTPOSITION1INTENTGETINTEXTRA“POSITION“,1IFPOSITION11POSITIONPOSITION1_ID_IDSPOSITIONINTLENGTHINTENTGETINTEXTRA“LENGTH“,1IF_ID1IFID_IDID_IDURIURIWITHAPPENDEDPATHMEDIASTOREAUDIOMEDIAEXTERNAL_CONTENT_URI,“_IDDBOPERATE_IDTRYMPRESETMPSETDATASOURCETHIS,URICATCHEXCEPTIONEEPRINTSTACKTRACEELSEIFLENGTH1TRYMPRESETMPSETDATASOURCETHIS,URICATCHEXCEPTIONEEPRINTSTACKTRACESETUPINITIFPOSITION1INTENTINTENT1NEWINTENTINTENT1SETACTIONMUSIC_LISTINTENT1PUTEXTRA“POSITION“,POSITIONSENDBROADCASTINTENT1SYSTEMOUTPRINTLN“SERVICEPOSITION“POSITION/开始、暂停、停止/INTOPINTENTGETINTEXTRA“OP“,1IFOP1SWITCHOPCASEMUSIC_PLAY/播放IFMPISPLAYINGPLAYBREAKCASEMUSIC_PAUSE/暂停IFMPISPLAYINGPAUSEBREAKCASEMUSIC_STOP/停止STOPBREAKCASEPROGRESS_CHANGE/改变歌曲进度CURRENTTIMEINTENTGETEXTRASGETINT“PROGRESS“MPSEEKTOCURRENTTIMEBREAK52功能模块的实现521主界面实现在点击进入音乐播放器界面之前的主界面,如图51所示。图51主界面本系统实现一个音乐播放器的基本功能,包括本地播放和在线播放,系统主界面主要实现了这些功能的入口菜单显示,通过一个LISTVIEW组件来显示“本地音乐”、“在线音乐”、“最近播放列表”和“退出”四个操作。当用户选本地播放后系统会进入本地音乐列表;当用户选择在线播放后,系统会进入在线播放;当用户选择最近播放列表后,系统会显示出最近的播放音乐列表;当用户选择退出后,系统会关闭。具体的实现效果如图52所示。图52播放器主界面522本地播放列表实现当用户进入本地音乐模块后可以看到本地播放列表,该列表也是通过一个LISTVIEW组件来实现,用户第一次使用时,本地播放列表只有一个项,那就是默认列表,而后面的列表名称都需要用户自己添加,用户可以通过手机的菜单键来添加自定义列表,只需要输入列表名称并单击确定即可添加。成功添加后的列表名称将会被存入SQLITE数据库,下次再进入该列表时,系统会自动把所有自定义列表名称从SQLITE数据库提取出来并显示。上下文菜单和新建列表弹出框可以通过复写ACTIVITY的ONOPTIONSITEMSELECTED方法和ALERTDIALOGBUILDER一起协助实现。具体的实现效果如图53所示。图53本地播放列表界面523音乐列表实现当用户选择一个播放列表后,即可进入该列表的详细界面,详细界面列举了该列表下的所有音乐文件信息,包括歌曲名称、艺术家和歌曲的播放时长,点击一个歌曲可以进入歌曲播放界面。另外,长按一个歌曲可以弹出上下文菜单,菜单项包括“播放”、“删除”和“添加到列表”,选择删除可以删除一个歌曲信息,选择添到列表可以把该歌曲添加到用

温馨提示

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

评论

0/150

提交评论