




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书基于ANDROID的音乐播放器设计与开发学生姓名学号学院系名专业指导教师2015年4月信息商务学院计算机系网络工程ANDROID平台的音乐播放器摘要ANDROID平台是GOOGLE公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。本文以ANDROID开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了ANDROID开发平台的开发环境。之后对基于ANDROID平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据ANDROID开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合ANDROID平台提供的资源和对音乐播放器的功能分析最终实现定义的功能。最后对基于ANDROID开发平台的音乐播放系统进行功能测试与验证。关键词ANDROID平台,JAVA,音乐播放器ANDROIDPLATFORMFORTHEMUSICPLAYERABSTRACTANDROIDPLATFORMISGOOGLESLATESTLAUNCHOFAMOBILEPLATFORM,THEPLATFORMFORPROCEDURESOFMOBILEDEVICES,INCLUDESANOPERATINGSYSTEMS,AMIDDLEWAREANDSOMECRITICALAPPLICATIONSTHEPLATFORMDOESNOTREQUIREANYCHARGESTHECODEISCOMPLETELYOPENDEVELOPERSCANQUICKLYDEVELOPONTHEPLATFORMSYSTEMANDOTHERDEVELOPERSCANUSETHERESULTSOFTHEWORKBYOTHERDEVELOPERSTHEREFORE,ITMADEGREATERFLEXIBILITYFORTHEDEVELOPMENTOFMOBILEPHONE,LESSWORK,SHORTCYCLE,RAPIDPROTOTYPINGANDONESTOP,MEANWHILEUSERSCANCUSTOMIZETHEIRMOBILEPHONESBESTTOENRICHTHEFUNCTIONSOFTHEIRCELLPHONES,COMPETITIVENESSOFMOBILEPHONESMARKETANDROIDPLATFORMISBASEDONLINUXSYSTEMSUSINGTHEWINDOWKERNELTHESOFTWARECALLSPEEDUPTHERATEOFTRANSPLANTATIONTHISARTICLETAKESTHEANDROIDDEVELOPINGPLATFORMASAFOUNDATIONFIRSTITBRIEFLYINTRODUCESANDROIDPLATFORMDEVELOPMENT,ASWELLASTHECURRENTDOMESTICANDFOREIGNDEVELOPMENTPRESENTSITUATIONAFTERTHEDISCUSSIONOFTHERATIONALEABOVE,THISARTICLEINTRODUCESTHEDEVELOPMENTENVIRONMENTOFANDROIDDEVELOPINGPLATFORMINDETAILANDMAKESADETAILEDDEMANDANALYSISTOMUSICPLAYERBASEDONTHEANDROIDDEVELOPINGPLATFORMTHENTHISARTICLEGIVESADETAILEDSOFTWAREDESIGNOFMUSICPLAYERBASEDONTHEANDROIDDEVELOPINGPLATFORMSFEATUREIDIVIDETHEMUSICPLAYERSDEVELOPMENTINTOTWOPARTSTOANALYZEANDDESIGNONEPARTISTHEWINDOWDESIGN,MAINLYDEFINESTHEWINDOWATTRIBUTEANDTHECONNECTEDWINDOWPROCESSINGFUNCTIONANOTHERPARTISFUNCTIONREALIZATION,MAINLYUNIFIESTHERESOURCESWHICHTHEANDROIDPLATFORMPROVIDESANDFUNCTIONANALYSISTOTHEMUSICPLAYERTOACCOMPLISHTHEFUNCTIONWHICHWEDEFINEDFINALLYITCARRIESONTHEFUNCTIONTESTBASEDONTHEMUSICPLAYEROFANDROIDPLATFORMKEYWORDSANDROIDPLATFORM,JAVA,MUSICPLAYER目录1ANDROID平台及开发工具介绍111ANDROID平台简介1111ANDROID平台架构2112ANDROID的四大组件312ANDROID的开发环境6121ECLIPSE66122ANDROIDSDK713本章小结82需求分析921播放器的设计目标922软件的可行性研究9221经济上的可行性9222技术上的可行性10223操作上的可行性1023播放器的功能需求分析1024本章小结113总体设计1231设计原则12311总体设计路线12312系统功能结构图13313系统流程图1432主要功能设计15321歌曲列表模块15322音乐播放模块1533系统的安全设计1634本章小结174详细设计与实现1941欢迎界面1942歌曲播放界面20421播放音轨SEEKBAR21422播放调节功能2243歌词显示界面2344列表显示界面2545本章总结265音乐播放器的测试2751测试模型28511V模型28512W模型2952测试模型的选择3053测试方法31531白盒测试31532黑盒测试32533测试方法的选择3254功能的测试与实现33541播放器整体功能的实现33542播放器主要模块功能测试3455测试结论3456测试过程与总结3557本章小结36结论37参考文献39致谢41前言随着手机市场的迅速发展,拥有智能手机已经不再是奢侈昂贵的象征。在智能手机的争夺战中,ANDROID不得不说是减低智能手机价格的一大功臣。ANDROID系统是谷歌公司开发的免费开源的移动终端操作系统适合于手机和平板电脑。开始动摇苹果手机走高端客户大局势。也动摇在手机市场在长久以来在分割局势。在ANDROID系统飞速发展的今天,ANDROID以操作简单、免费、不受开发商限制等优点,ANDROID手机无疑越来越受到人们和开发商的喜爱,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来。手机的音乐播放功能已经是大家比较关注的一个部分了,不少人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。ANDROID平台是完全开放的平台,智能手机里的各种应用软件也越来越完备,在ANDROID平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景。但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,而对于大多数普通用户,许多功能用不上,形同虚设。一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利但是不能满足用户的所有要求,所以开发一款个性化的音乐软件是非常有必要的,本项目就是综合以上因素设计开发的,具有基本的音乐播放功能以及个性化设置,易浏览易操作。1ANDROID平台及开发工具介绍基于ANDROID平台的音乐播放系统是在JDK60的环境下选用JAVA语言,采用ECLIPSE开发工具,并在WINDOWS系统PC机上安装SDK40模拟器而开发的。本章对基于ANDROID的音乐播放系统所涉及的体系结构、应用程序开发工具、数据库等方面的技术做了简要说明。11ANDROID平台简介ANDROID一词本意是指“机器人”同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。在优势方面,ANDROID平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。它还有丰富的硬件选择,这一点还是与ANDROID平台的开放性相关,由于ANDROID的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。ANDROID操作系统最初由ANDYRUBIN开发,最初主要支持手机。2005年由GOOGLE收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。ANDROID的主要竞争对手是苹果公司的IOS以及RIM的BLACKBERRYOS。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2012年2月数据,ANDROID占据全球智能手机操作系统市场59的份额,中国市场占有率为684。111ANDROID平台架构ANDROID平台主要包括APPLICATIONS、APPLICATIONFRAMEWORK、LIBRARIES、ANDROIDRUNTIME和LINUXKERNEL几部分,如图11所示1APPLICATIONS应用程序ANDROID提供了一组应用程序,包括EMAIL酷虎段、SMS程序、日历、地图、浏览器、通讯录等。这部分程序均使用JAVA用语言编写。图11ANDROID平台架构2APPLICATIONFRAMEWORK(应用程序框架)无论是ANDROID提供的应用程序还是开发人员自己编写的应用程序,都需要使用APPLICATIONFRAMEWORK(应用程序框架)。通过使用APPLICATIONFRAMEWORK,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。3LIBRARIES(库)ANDROID提供了一组C/C库,他们为平台的不同组件所使用。开发人员通过APPLICATIONFRAMEWORK来使用这些库所提供的不同功能。4ANDROIDRUNTIME(ANDROID运行时)ANDROID运行时包括核心库和DALVIK虚拟机两部分。核心库中提供了JAVA语言核心库中包含的大部分功能,虚拟机负责运行程序。DALVIK虚拟机专门针对移动设备进行编写,不仅效率更高,而且占用更少的内存。5LINUXKERNEL(LINUX内核)ANDROID平台使用LINUX26版内核提供的核心系统服务,包括安全性、内存管理、进程管理等。112ANDROID的四大组件ANDROID四大基本组件分别是ACTIVITY,SERVICE服务,CONTENTPROVIDER内容提供者,BROADCASTRECEIVER广播接收器。1ACTIVITY从字面上理解,ACTIVITY是活动的意思。一个ACTIVITY通常展现为一个可视化的用户界面,是ANDROID程序与用户交互的窗口,也是ANDROID组件中最基本也是最复杂的一个组件。从视觉效果来看,一个ACTIVITY占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,ACTIVITY需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,需要派生一个ACTIVITY的子类,进而进行编码实现各种功能方法。2SERVICE服务是运行在后台的一个组件,从某从意义上说,服务就像一个没有界面的ACTIVITY。它们在很多ANDROID的概念方面比较接近,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事件,定义好需要接受的INTENT提供同步和异步的接口。ANDROID中得服务其实与WINDOWS中得服务类似,它执行长时间运行的操作,或运程进程执行工作。服务不提供用户界面,例如在后台下载东西,播放音乐,在你播放音乐的同时还可以干其他事情,而不会阻塞用于与其他活动的交互。另一个组件,比如ACTIVITY可以启动一个服务,并运行或者绑定到它。3BROADCASTRECEIVER广播接收者,不执行任何任务,广播是一种广泛运用的在应用程序之间传输信息的机制。而BROADCASTRECEIVER是对发送出来的广播进行过滤接收并响应的一类组件。BROADCASTRECEIVER不包含任何用户界面。然而它们可以启动一个ACTIVITY以响应接受到的信息,或者通过NOTIFICATIONMANAGER通知用户。可以通过多种方式使用户知道有新的通知产生闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。在ANDROID中还有一个很重要的概念就是INTENT,如果说INTENT是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么BROADCASTRECEIVER组件就提供了一种把INTENT作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。4CONTENTPROVIDER即内容提供者,作为应用程序之间唯一的共享数据的途径,CONTENTPROVIDER主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。ANDROID有一个独特之处就是,在ANDROID中,每个应用程序都是用自己的用户ID并在自己的进程中运行。这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常应用程序所影响,每个进程都拥有独立的进程地址空间和虚拟空间。ANDROID的数据(包括FILES,DATABASE等)都是属于应用程序自身,其他的应用是不能访问到的,更无法直接进行操作。所以如果你想实现不同应用之间的数据共享,就不得不用CONTENTPROVIDER了。为了使其他程序能够操作数据,在ANDROID中,可以通过做成CONTENTPROVIDER提供数据操作的接口。其实对应用而言,也可以将底层数据封装成CONTENTPROVIDER,这样可以有效的屏蔽底层操作的细节,并且使程序保持良好的扩展性和开放性。ANDROID提供了一些主要数据类型的CONTENTPROVIDER,比如音频、视频、图片和私人通讯录等。可在ANDROIDPROVIDER包下面找到一些ANDROID提供的CONTENTPROVIDER。可以获得这些CONTENTPROVIDER,查询它们包含的数据,当然前提是已获得适当的读取权限。如果我们想公开自己应用程序的数据,可以创建自己的CONTENTPROVIDER。12ANDROID的开发环境ANDROID的上层应用程序是用JAVA语言开发的,同时需要基于DALVIK虚拟机所以GOOGLE公司推荐使用主流的JAVA继承开发环境ECLIPSEADT插件。有了ECLIPSE还不够,因为使用JAVA语言进行开发,应该有由SUN公司提供的JAVASDK,其中包含了JRE,JAVARUNTIMEENVIRONMENT。另外ANDROID的应用程序开发还是和JAVA开发有一定区别,所以还需有一个GOOGLE提供的ANDROIDSDK。有了这三个软件就可以开发ANDROID应用程序了。121ECLIPSEECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大多数用户很乐于将ECLIPSE当作JAVA集成开发环境(IDE)来使用,但ECLIPSE的目标却不仅限于此。ECLIPSE还包括插件开发环境(PLUGINDEVELOPMENTENVIRONMENT,PDE),这个组件主要针对希望扩展ECLIPSE的软件开发人员,因为它允许他们构建与ECLIPSE环境无缝集成的工具。由于ECLIPSE中的每样东西都是插件,对于给ECLIPSE提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。ECLIPSE的安装比较简单,所以在这里就不做详细介绍了。122ANDROIDSDKSDK(SOFTWAREDEVELOPMENTKIT)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,ANDROIDSDK指的是ANDROID专属的软件开发工具包。ANDROIDSDK不用安装,下载后,直接解压即可,但由于ANDROIDSDK采用了JAVA语言,所以需要先安装JDK50及以上版本。使用ECLIPSE进行ANDROID应用开发需要给ECLIPSE装ADT插件,这样ECLIPSE就可以和ANDROIDSDK建立连接,可以在ECLIPSE中启动ANDROID模拟器进行程序调试等ADT插件安装这里不再累赘,插件的安装URL为也可以下载ADT的ZIP包安装安装完插件后,需要做一些简单的配置1、在ECLIPSE中,选择WINDOWPREFERENCE;2、从左侧的菜单中,选择ANDROID项;3、设置SDKLOCATION,点BROWSE选择SDK的安装根目录;4、OK,完成。13本章小结本章对ANDROID的开发平台、开发环境进行了简要介绍,在优势方面,ANDROID平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,ANDROID平台也将很快走向成熟。开发性对于ANDROID的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争。2需求分析软件需求分析是软件生存期中重要的一步,也是决定性的一步。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,深入描述软件的功能和性能的需求9。在这一节中主要就是围绕“ANDROID开发平台的音乐播放器系统必须做什么”这个问题来分析说明的。21播放器的设计目标本系统属于用户常用的音乐播放器。可以方便用户平时对音乐文件的操作。本系统应达到以下目标(1)软件采用人机交互的方式,界面美观友好。(2)操作灵活、方便、易上手。(3)能够对音乐文件进行有效的管理。(4)满足用户对播放器的个性化设置。(5)系统应最大限度地实现易维护性和易操作性。22软件的可行性研究221经济上的可行性ANDROID是GOOGLE历经数年和投资数亿美元开发出来的智能手机系统,是基于LINUX内核的操作系统,是GOOGLE公司在2007年11月5日公布的手机操作系统。随着各大移动终端生产商大力开发和生产基于ANDROID的移动智能设备,ANDROID迅速得到业界和社会的认可,并成为整个产业的热点,基于ANDROID平台的各类人才逐渐成为各大企业竞相争夺的焦点。而且ANDROID是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。222技术上的可行性GOOGLE发起了围绕ANDROID的组织开放手机联盟,其英文全称为“OPENHANDSETALLIANCE”。它采用了软件堆层SOFTWARESTACK,又名以软件叠层的架构,主要分为三部分。底层LINUX内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以JAVA编写。223操作上的可行性本系统采用ANDROID框架,可以在ECLIPSE中安装ANDROID开发插件,使用ANDROID模拟器也可以使用任意ANDROID终端。模拟器和真正的ANDROID手机没有太大区别,人们对手机操作早已熟悉。23播放器的功能需求分析根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述系统的功能需求,播放器的基本控制需求。在播放器运行时,首先进入的是欢迎界面,点击进入后进入主界面,主界面是扫描SD卡里的本地歌曲列表,对列表里的歌曲可进行播放、查看歌曲详细信息的操作、点击播放列表中的歌曲名可以跳转到播放界面,在播放界面可以控制歌曲的播放、暂停、上一首、下一首、进入播放列表、进入专辑列表、查看歌词、拖动歌曲进度等,其用例图如图21所示。用户查看歌词查看歌曲列表播放音乐上/下一首查看歌曲列表进入播放器图21播放器用例图24本章小结本章对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标;画出了系统的用例图,让用户对系统的总体结构一目了然,对系统的功能进一步认识。3总体设计该音乐播放器的总目标是,实现内存卡内音乐的读取、对音乐播放的基本操作、实现歌词的同步功能、用户友好性操作的实现等,在实现这些功能的基础上要考虑到音乐播放器的UI界面的设计的友好性易操作。31设计原则系统设计是一个把软件需求转换成用软件系统表示的过程。通过对目标系统的分析和研究,做出对音乐播放器的整体规划,这是全面开发系统的重要基础。下面介绍系统功能结构图和流程图。311总体设计路线在ANDROID的开发中界面的设计是很重要的,因为它区别于WEB的开发。它的界面小,又要在这么小的界面上竟可能多的去实现功能,所以在UI设计上,组件的摆放问题以及屏幕之间滑动跳转问题都要都是在设计工程中中要考虑到的,其次,ANDROID程序主要应用在手持设备上,不论用户是单手操作还是双手操作,都必须考虑到组件摆放的易操作性,所以要考虑到组件摆放的区域问题,除此之外在UI设计的编写上也要考虑到代码的可更改问题,如果单纯的用XML文件实现,那么在软件的进一步更改开发上可能会遇到很大问题,所以该系统的大部分界面都是通过XML和JAVA代码共同实现的。在完成音乐播放器界面的设计后就是功能模块的具体设计了,功能这一块是根具需求来的,有怎么样的需求就对应怎样的功能设计,该音乐播放器所要实现的功能都是通过各个类之间的调用实现的,这样就增加了代码的可读性,对于音乐播放器来说最主要的还是实现音乐播放功能,第一部分就是音乐文件读取、音频文件信息的读取,其次是对音乐的操作,然后就是播放器的个性化设置。所以要做好也是一件不简单的事情。312系统功能结构图系统主要分为四大模块,歌曲列表模块、歌曲播放模块、专辑列表模块、菜单设置模块,根据设四个模块的命名就可以知道这四个模块的基本功能了,歌曲列表模块就是在程序启动的时候自动扫描并获取添加歌曲到歌曲列表中,然后用户可以对列表内的歌曲进行一些操作,歌曲播放模块不仅要显示正在播放的歌曲信息而且要实现对歌曲的一些基本操作,在播放界面实现了一个类似ANDROID的LUNCHER划屏查看歌词的功能,还有是实现了歌曲图片的一个倒影效果显示,专辑列表模块主要考虑到内存歌曲过多时为方便用户找到自己喜欢的歌手而设置的一个网格列表,当你选种歌曲时它可以对歌曲就行播放。菜单设置模块呢,主要实现对音乐播放器的个性化设置,满足用户除了听歌曲以外的需求,主要有三个子功能,退出程序、睡眠模式设置、日夜模式设置,在日夜模式设置这块主要就是改变屏幕的明暗度,获取当前系统设置的明暗度,然后对其做改变。音乐播放器的系统功能结构图(如图31所示)图31系统功能结构图313系统流程图歌曲列表播放界面按歌名排序按歌手排序播放、暂停上/下一首拖动进度条调节音量查看歌词音乐播放器音乐播放流程图(如图32所示)图32音乐播放流程图32主要功能设计(功能模块介绍)321歌曲列表模块用户启动播放器后进入的界面是歌曲列表界面,歌曲列表主要是自动读取手机内存里的歌曲信息,其中显示的有歌曲名、演唱者、歌曲总时长,用户通过浏览歌曲列表可以对歌曲进行一些操作。322音乐播放模块用户选中要播放的歌曲后跳转到音乐播放界面,音乐播放界面主要显示的有歌曲的信息,以及对音乐操作的按钮,播放、暂停、上一曲、下一曲、音乐进度条等,用户还可以通过划屏查看歌曲的同步歌词,其功能序列图如图33所示。图33歌曲列表操作序列图33系统的安全设计安全性是软件系统永恒的主题,其紧迫程度与功能的可拓展性成正比。越是可以灵活拓展的系统,越是需要一种强大的安全控制机制。世界上最安全的系统,就是一坨废铁,因为永远不可能有新功能加入,于是绝对安全。如果我们可以在其上编写程序,则需要提供一定程度的安全控制,这时程序有好有坏,也有可能出错。如果我们的软件,会通过互联网这样的渠道可以获得,则这种安全上需求会更强烈,因为各种各样的邪恶用意都有可能存在。大体上说,安全性控制会有四种需求(1)应用程序绝对不能对系统造成破坏。作为一个系统,它的首要目标当然是共享给运行于其上的应用程序以各种系统级的功能。但如果这些应用程序,如果可以通过某种渠道对这个共享的系统造成破坏,这样的系统去运行程序就没有意义,因为这时系统过于脆弱。(2)应用程序之间,最好不能互相干扰。如果我们的应用程序,互相之间可以破坏对方的数据,则也不会有很好的可用性,因为这时单个的应用程序也还是脆弱的。(3)应用程序与系统,应用程序之间,应该提供共享的能力。在安全性机制下,我们也还是需要提供手段,让应用程序与系统层之间、应用程序之间可以交互。(4)还需要权限控制。我们可以通过权限来保护系统,一些非法的代码在没有权限的情况就无法造成破坏。在给不同应用程序提供系统层功能、提供共享时,应用程序有权限才能执行,没有权限则会拒绝应用程序的访问。在本项目的开发过程中就遇到了应用程序与系统之间的问题,运行程序之后就使整个系统字库奔溃,同时还遇了权限问题,在ANDROID中你想实现什么样的功能就必须给项目赋予什么样的权限,在本项目中需要给项目提供SD卡读写的权限,所以在编写程序的第一步就要考虑到权限问题,不然后面的工作都没法进行。34本章小结本系统严格按照面向对象的思想设计,各功能模块设计由需求而确定,各模块之间只通过接口传递消息,满足了系统模块间“高内聚,低耦合”的要求,同时提高了系统的可拓展性和可维护性。4详细设计与实现详细设计主要是指在系统需求分析的基础上,对整个系统的架构、机器设备的配置、数据的存贮规律以及整个系统的规划等方面进行合理的安排。本章主要介绍系统的功能模块划分和详细设计实现部分,根据需求分析,对系统功能结构进行划分,并在此基础上逐步实现系统各项功能。41欢迎界面欢迎界面模块主要是用于给用户一种友好的体验,让用户较容易接受本软件。进入系统后进入欢迎界面如图41。图41主界面42歌曲播放界面ANDROID的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个ACTIVITY,ANDROID工程在ACTIVITY启动的时候会首先执行ONCREATE方法,该方法主要执行界面的初始化操作,ACTIVITY有个设置布局的方法CONTEXTSETCONTENTVIEWLAYOUTRESID,参数为资源ID,该ID在工程目录RES/LAYOUT下。主界面主要采用相对布局RELATIVELAYOUT。分四个模块,最上面显示歌曲信息模块是应用了四个本本框,中间一块专辑及歌曲显示的模块是属于一个自定义模块。图42歌曲列表421播放音轨SEEKBAR播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TEXTVIEW用来显示当前歌曲播放的进度时间和歌曲的长度图46。音轨对象SEEKBAR在歌曲刚开始播放的时候调用方法SEEKBARSETMAX,参数传入歌曲的长度。SEEKBARSETPROGRESS1设置游标的起始进度为1。ANDROID的线程的开始是通过HANDLER类来进行的,HANDLER类是线程与线程之间通信的桥梁,实现RUNNABLE接口会实现里面的RUN方法,当线程开始的时候,RUNNABLE中的RUN方法会向HANDLER发一个MESSAGE消息,这样,HANDLER类就可以接收到RUN方法发送过来的不同的消息进行不同的代码处理。这样就达到了各线程之间的通信。要启动一个线程调用HANDLER的方法POSTDELAYEDRUNNABLE,1000表示线程睡眠时间是1000MS。让播放歌曲的线程每隔1000MS,即每1秒对音轨的TEXTVIEW重新设置时间且让进度条前进1秒的进度。对音轨进行刷新。这样就实现了歌词同步功能SEEKBAR有一个监听器,该监听器的作用是一直保持着对进度条的监听,当我们用鼠标向SEEKBAR的各位置进行点击时,它会自动监听其位置,进行相应的位置显示。这也是进度条上的游标会不停的移动和歌词时间会不停的变动的原因。图43播放音轨422播放调节功能实现各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。用的是布局中的线性布局LINEARLAYOUT,将其设置为水平,如图44所示。LINEARLAYOUT中依次放置播放/暂停,上一首、下一首按钮属性。图44基本按钮歌曲专辑图片显示,如果有歌曲图片,才会返回,否则为NULL,ANDROID的媒体播放原理ANDROID源程序已经为我们封装好了一个接口类,叫MEDIAPLAYER。该接口在执行行需要一个数据源,通过如下步骤第一步MEDIAPLAYERRESET复位操作,为以后的媒体准备播放作准备。第二步传入歌曲数据源,这里也是一个数据MEDIAPLAYERSETDATASOURCESTRINGPATH参数需要传一个路径,该接口类在收到路径后将其转化为数据源。第三步准备播放数据源,调用方法MEDIAPLAYERPREPARE。第四步MEDIAPLAYERSTART播放数据源,该数据源播放后,不再与程序有关,需要用MEDIAPLAYERSTOP方法让其停止或MEDIAPLAYERSTART让其启动。43歌词显示界面当播放音乐文件时,如果同时存在该歌曲的LRC格式的歌词文件时,系统会自动匹配歌词并且达到同步显示的效果,如图45所示。当开始播放时候,初始化歌词配置,载入歌词文件并启动线程显示歌词、同时考虑到播放会更换歌曲、还需要重读歌曲信息,此外还要设置歌曲完毕,当一首完毕调用NEXTMUSIC方法,那么要首先判断是否最后一首。如果是则提示,否则继续播放歌曲是最后一部分,进度条歌词滚动,进度条更新部分在UPDATESB方法。通过获取音乐当前播放时刻更新音乐进度条位置。歌词滚动部分RUNNABEL。通过LRCINDEX获取当前音乐对应歌词位置。图45歌词同步界面44列表显示界面歌曲列表整体采用了相对布局RELATIVELAYOUT,中间歌曲列表部分采用的是LISTVIEW视图,以确保有大量歌曲时能滚动式容纳所有歌曲,如图46所示。图46歌曲列表在ANDROID里面,有一个视图叫LISTVIEW,其特点是一个有BASEADAPTER的属性,从下到下,或从左到右的显示方式。系统默认的方式每一行只显示一个TEXTVIEW,本播放列表实现了自定义的方式,刚LISTVIEW的每一行显示一个音乐图片和一个歌曲名字。我们定义一个类MUSICADAPTER继承了BASEADAPTER,然后通过算法对这个适配器进行扩展,扩展成为第一行能显示一张图片和一个歌曲名字。由于BASEADAPTER是一个抽象类,我们需要实现里面的抽象方法GETVIE。该方法返回一个VIEW,即视图。视图可以显示在ACTIVITY上,所以就可以看到我们想要的歌曲列表界面。LISTVIEW同样有一个监听器NEWONITEMCLICKLISTENEROVERRIDEPUBLICVOIDONITEMCLICKADAPTERVIEWARG0,VIEWARG1,INTARG2,LONGARG3,我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过LISTVIEWGETITEMATPOSITONINTPOSITION得到该行上的信息。这样就可以通过INTENT将数据传入到其它的ACTIVITY。45本章小结本章主要介绍系统的详细设计与实现,主要对欢迎界面、歌曲播放界面、列表界面及菜单设置界面四个模块进行了简要分析,在播放器的实现中,播放器的界面设计需要达到美观简洁已操作的要求,这一部分的设计对ANDROID程序开发来说是比较重要的。5音乐播放器的测试一个软件产品或系统的开发成功,不仅仅是编写完为使用者提供服务功能的程序而已。软件程序编写的完成,其实只是完成了开发任务中的一半。与程序的开发相配合的、具有同样重要性的另一半工作,是对开发完毕的软件所进行必要的测试。对测试的管理和执行,其重要性不亚于对程序本身的开发。你可以花费巨大的资源和努力进行程序的开发,可是你要是没有与此配套的完善的测试,所开发出来的软件往往会因为质量问题无法满足客户的要求和帮助你赢得市场的竞争。近几年来国内信息业界的软件开发的成熟程度大大提高,很多公司都开始重视软件测试的重要性、并建立了与此相关的组织结构来保证测试工作得以执行。但是忽视或轻视测试工作的不良习惯和企业文化仍旧普遍存在。一个成熟和高效的开发组织应该必须采取正确的做法将软件的测试和开发放到同等重要的位置上,对软件的测试和开发给予同样程度的重视。前面讲述了测试对软件开发的重要性。那么在开发项目管理的运作中,究竟如何执行具体的测试呢答案是每个软件都有它的功能设计,通过它们为用户解决某些问题或提供某些服务。测试的目的有两个第一是要确证这些为用户解决某些问题的功能设计被正确无误地开发出来了,也就是说,如果用户按照所设计的使用方法和过程(我们称为USERSCENARIO,即使用方案),的确能够利用这些功能所提供的服务和解决问题;第二是保证软件在被使用的情况下,如果使用者并不按照所设计的使用方案在使用软件,它不应该由于任意的使用、或其它外部影响造成任何问题,包括出现差错,比如数据遗失、数据错误、甚至造成系统崩溃等等。为了达到这两个不同的测试目的,在执行具体的测试时就要采用不同的测试方法。为达到第一个目的、也是最主要的目的,最佳的方法是根据所设计的每个功能和使用方案,设计一个相对应的测试执行过程,去验证这个功能或使用方案是能够从头到尾完成的。这个测试执行过程的定义和描述称为测试方案或测试案例TESTCASE。要能够确证所有功能的确是准确地被丌发出来了,唯的办法就是为每一个使用方案都设计出大量的、一套完整的测试案例,然后通过对这些测试案例的按部就班的执行来证明软件的确可以完成所设计的功能。测试案例的全面性和完整性最终决定了为达到第一个目的测试的质量9。51测试模型511V模型V模型最早是由PAULROOK在20世纪80年代后期提出的,旨在改进软件开发的效率和效果。V模型反映出了测试活动与分析设计活动的关系。如图51所示,从左到右描述了基本的开发过程和测试行为,非常明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。图51V模型V模型指出单元和集成测试应检测程序的执行是否满足软件设计的要求系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。但V模型存在一定的局限性,它仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。512W模型W模型由EVOLUTIF公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。如图52所示,W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。但W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。52测试模型的选择V模型强调了在整个项目开发中需要经历的不同测试级别,但忽视了测试的对象不应该仅仅是程序。而W模型在这一点上进行了补充,明确指出应该对需求、设计进行测试。但是V模型和W模型都没有将一个完整的测试过程抽象出来,成为一个独立的流程这并不适合当前软件开发中广泛的迭代模型。在实际测试工作中我们应该尽可能地区应用各模型中对项目有实用价值的方面,不能强行的为实用模型而实用模型。音乐播放器的开发过程中,由于市场竞争激烈,不断有新功能推出,作为用户来讲,总会喜欢功能强大的产品。因此这着就导致了,我们在开发的初期阶段就对需求定义进行了多次的更新。所以尽管开发的这个音乐播放器不是一个复杂的应用模块,但我们还是要采用结构更为合理的W软件测试模型作为我们的测试框架,在需求分析不断变化的同时,我们能够对需求测试和设计测试进行一个更新这样大大降低我们软件的开发的风险,到单元测试的时候我们的能够合理地提供一整套完备的测试用例给该模块进行测试。综合以上考虑,我们采用的测试方法是以W模型作为框架,及早的、全面的开展测试。53测试方法任何工程产品都可以使用以下的两种方法进行测试白盒测试与黑盒测试。531白盒测试已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格的要求,所有内部成分是否已经检查,该测试方式称之为白盒测试。白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,也可成为程序员测试。白盒测试的前提是可以把程序看成装在一个透明的白盒子里面,也就是完全理解程序结构和处理过程,这种方法按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。使用白盒测试方法,主要是想对程序模块进行如下的检查1对程序模块的所有独立的执行路径至少测试一次。2对多有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次。3在循环的边界和运行界限内执行循环体,测试内部数据的有效性。532黑盒测试已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求,这种测试方式称之为黑盒测试。黑盒测试又称功能测试,数据驱动测试或基于规格说明书的测试,也可成为用户测试。黑盒测试法把程序看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。使用黑盒测试法,主要是发现以下几类错误1是否有不正确或遗漏的功能。2在接口上,输入能否正确的接受,能否输出正确的结果。3是否有数据结构错误或外部信息访问错误。4性能上是否能够满足要求。5是否有初始化或终止性错误。533测试方法的选择音乐播放器的开发过程中,在W测试模型的编码测试阶段和集成测试阶段我们主要采用了白盒测试的测试方法。白盒测试的工作主要由软件开发人员在编码之后自行对所编代码完成测试。现在的的软件开发工具都带有部分软件测试的功能,开发人员可以说利用该功能对以上三点进行测试。54功能的测试与实现541播放器整体功能的实现音乐播放器在模拟器运行情况如图51。图51播放器运行界面播放器整体功能,主要是针对播放器的播放功能,上一首,下一首选择及媒体格式的支持等,表51为播放器的整体功能测试结果表51播放器整体功能测试结果542播放器主要模块功能测试测试内容测试结果播放控制能正确的完成播放、暂停、进度条的拖动功能格式支持支持MP3格式上、下首歌曲的选择能正确的选择“上一曲”,“下一曲”播放器的主要模块功能测试,主要是对用户图形界面模块,歌词同步显示模块等功能进行了测试。测试结果如表52测试模块测试结果用户图形界面能友好的与用户交互歌词同步显示能准确的与歌曲同步表52播放器主要模块功能测试结果55测试结论通过相关的系统功能测试表明,该音乐播放器能播放MP3格式的音乐文件,能正确的响应用户对其基本功能的控制,基本满足了音乐播放器的要求。56测试过程与总结依据传统的方法,将系统测试作为软件丌发的一个阶段,系统测试执行工作将在系统开发完成后开展,很明显,这样做不利于BUG的及时暴露。有些缺陷可能会埋藏至后期发现,这时的修复成本将大大提高。我们依据“全过程测试”的测试理念,在本系统中我们将软件的开发和软的测试紧密的结合在一起,要求要充分关注开发过程,对开发过程的各种变化及时做出响应。例如开发进度的调整可能会引起测试进度及测试策略的调整,需求的变更会影响到测试的执行等等;要求对测试的全过程进行全程的跟踪,例如建立完善的度量与分析机制,通过对自身过程的度量,及时了解过程信息,调整测试策略。实践证明,这种做法起到了预期的效果,与设计过程紧密结合的测试过程,有效的于早期发现了许多系统缺陷,降低了开发成本,同时也使基于复杂开发模型的测试管理工作更加清晰明了。在本系统开发过程中,需求的获取和完善贯穿每个阶段。对需求的把握很大程度上决定了软件测试是否能够成功。系统测试不仅仅确认软件是否正确实现功能,同时还要确认软件是否满足用户的需要。不但一起讨论需求的完善性与准确性,同时从可测试性角度为需求文档提出建议。这些建议对我们来说,是从一个全新的思维角度提出的约束。同时,结合前期对项目的把握,很容易制定出了完善的测试计划和方案,将各阶段产品的测试方法及进度有条不紊进行下去。在把握需求的同时,于早期制定项目计划和方案,及早准备测试活动,大大提高了测试效率。57本章小结软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。其次是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大连淘宝代运营服务合同涵盖店铺优化及数据分析
- 说课课件公众号
- 语言文字规范知识培训教案课件
- 2025浙江省医疗机构安全保卫劳动合同
- 红色足迹课件
- 2025现代企业合同管理中存在的问题及解决的对策
- 农业发展农业科技投入优惠合作协议
- 红楼梦第3回课件
- 红楼梦判词课件
- 红楼梦元春课件
- 创伤性急性硬膜下出血
- 养老机构入住护理、风险评估表、计划表、记录、告知书等健康档案护理记录模板
- 汽车传感器的原理与应用课件
- 电梯每日巡视检查表
- 《健康评估技术》课件-7.《发绀》
- 《分析化学总复习》课件
- 《生物试卷分析》课件
- 皮肤科常见疾病瘙痒症护理的课件
- 2023年湖北黄石新港(物流)工业园区总工会协理员招考聘用笔试历年难易错点考题荟萃附带答案详解
- 电力电子技术(第3版)PPT全套完整教学课件
- 招投标结果申诉函
评论
0/150
提交评论