




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE26 / NUMPAGES31学号毕业设计(论文)题目: 基于Android的音乐播放器的设计与实现作 者 清 宝届 别 2015届 院 别 信息与通信工程学院 专 业 信息工程 指导教师 理职 称 副教授完成时间 2015年5月20日 摘 要随着移动通信与Internet向移动终端的普与,网络和用户对移动终端的要求越来越高,Google推出了专门为移动终端设计的软件平台Android。Android的底层是基于Linux的操作系统,该平台的开源以与使用Java作为开发语言的特点。随着Android技术日益成熟,越来越多的用户倾向于选择操作系统为Android的终端设备。本文采用An
2、droid开源系统技术,利用Java语言和Eclipse编辑工具进行编写。这款音乐播放器软件实现了播放器的基本功能:播放,暂停、播放模式、返回、上/下一首等功能。主界面上有艺术家、专辑、全部歌曲和我的列表中可以按用户需求选择要听的歌曲。用户还能通过音量调节按键来控制音量的大小,可以根据播放模式选择是单曲循环、顺序播放和随机播放。该播放器拥有市场上Android播放器的功能,测试结果表明播放器工作性能良好。关键词:Linux操作系统;开源;音乐播放器AbstractWith the popularity of mobile communication and Internet to the mo
3、bile terminal, network and user more and more high to the requirement of mobile terminals, Google introduced a specially designed for mobile terminal software platform Android. The bottom layer of the Android is based on the Linux operating system and the platform of open source, and the characteris
4、tics of the use of Java as a development language. With the Android technology matures, more and more users tend to select the operating system for Android devices.This paper uses the Android open source system technology, using the Java language and Eclipse editing tools for writing. The music play
5、er software to realize the basic function of the player: play, pause, play mode, back, up/down one of the functions. Main screen has all artists, albums, songs, and my list can choose according to user needs to listen to songs. Users can also through the volume keys to control the size of the volume
6、, can choose according to the play mode is single cycle, playing and random sequence. The player has the function of the Android player on the market, the test results show that the players work performance is good.Key words:Linux operating system;Open source; music player目录 TOC o 1-3 h z u HYPERLIN
7、K l _Toc13931 摘 要 PAGEREF _Toc13931 I HYPERLINK l _Toc10239 Abstract PAGEREF _Toc10239 II HYPERLINK l _Toc9611 目录 PAGEREF _Toc9611 III HYPERLINK l _Toc7996 第1章 绪 论 PAGEREF _Toc7996 1 HYPERLINK l _Toc24471 1.1 项目背景 PAGEREF _Toc24471 1 HYPERLINK l _Toc18672 1.2 手机操作系统简介 PAGEREF _Toc18672 2 HYPERLINK l
8、 _Toc13721 1.3 论文的主要工作 PAGEREF _Toc13721 2 HYPERLINK l _Toc15794 第2章 Android平台介绍 PAGEREF _Toc15794 3 HYPERLINK l _Toc8862 2.1 Android简介 PAGEREF _Toc8862 3 HYPERLINK l _Toc1508 2.1.1 Android结构分析 PAGEREF _Toc1508 3 HYPERLINK l _Toc18655 2.1.2 Android系统的四大组件 PAGEREF _Toc18655 5 HYPERLINK l _Toc4283 2.2
9、 Android开发环境的搭建 PAGEREF _Toc4283 6 HYPERLINK l _Toc16691 2.3 Android工程结构 PAGEREF _Toc16691 11 HYPERLINK l _Toc10324 第3章 系统需求分析 PAGEREF _Toc10324 13 HYPERLINK l _Toc5954 3.1 软件的功能需求 PAGEREF _Toc5954 13 HYPERLINK l _Toc29623 3.2 软件的功能设计 PAGEREF _Toc29623 13 HYPERLINK l _Toc24584 3.2.1 播放器功能图 PAGEREF _
10、Toc24584 13 HYPERLINK l _Toc23994 3.2.2 用例分析表 PAGEREF _Toc23994 14 HYPERLINK l _Toc1443 3.2.3 播放器的时序图 PAGEREF _Toc1443 15 HYPERLINK l _Toc12314 3.3 软件的运行环境 PAGEREF _Toc12314 16 HYPERLINK l _Toc31377 第4章 系统的设计 PAGEREF _Toc31377 17 HYPERLINK l _Toc27721 4.1 界面的设计 PAGEREF _Toc27721 17 HYPERLINK l _Toc2
11、2460 4.2 歌曲分类管理 PAGEREF _Toc22460 17 HYPERLINK l _Toc30656 4.3 歌词播放控制 PAGEREF _Toc30656 19 HYPERLINK l _Toc17418 第5章 播放器的测试 PAGEREF _Toc17418 23 HYPERLINK l _Toc8155 5.1 测试方法 PAGEREF _Toc8155 24 HYPERLINK l _Toc14667 5.2 功能测试 PAGEREF _Toc14667 25 HYPERLINK l _Toc22913 总 结 PAGEREF _Toc22913 27 HYPERL
12、INK l _Toc6587 参考文献 PAGEREF _Toc6587 28 HYPERLINK l _Toc811 致 PAGEREF _Toc811 29第1章 绪 论Android(中文名:安卓)系统是由Google公司推出基于Linux平台的开源手机操作系统,该公司于2007年11月发布了该系统,经过了市场的考验,Android的开源以与使用Java作为开发语言的特点使其迅猛发展,支持的硬件厂商也越来越多。Android系统的市场占有率最高,上升速度也是最快的,远远超过其他智能手机操作系统的市场的份额。1.1 项目背景随着计算机的广泛使用,手机市场的迅速扩展,各种音频和视频资源也在网
13、上广泛流传,虽然这些资源看似平常,但已经逐渐成为人们生活中的一部分。于是支持各种手机的播放器也快速的发展起来,但是许多播放器一味追求花哨的外观,庞大的功能,对用户的手机造成了资源浪费,比如CPU,存等占用率太多,一些用户进行多任务操作时,会受到了很大的影响,用户使用起来非常不便,而对于大多数用户,许多功能会使用不上,如同虚设。针对以上的各类弊端,选择了开发了这款的音乐播放器,将各种性能都进行一些优化,继承其他播放器的都常用功能,满足大多数用户听歌需求。通过研究各种市面上流行的各类音乐播放器,了解它们的各类插件与编码方式,分析各种编码的优缺点,编写出一款功能实用,使用方便的音乐播放器。具有的功能
14、包括播放常见的音频文件的功能,如MP3音频文件,还可以选择播放模式,具有一般音乐播放器的功能,如上一首,下一首,拉进度条控制播放进度,调整音量,等等。如今社会的压力比较大,而听听音乐是一种能够缓减压力的方式之一,这个设计是开发出一款可以播放音乐文件格式的音乐播放器,本设计的实现的这主要功能是播放MP3格式的音乐文件,并且可以控制暂停,播放,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文档等多种控制播放功能,界面简单明了,操作快捷简单。本设计是一款基于Android手机平台设计的一款音乐播放器,手机界面采用冷色调,使人们更容易平静、放松,使用户能随时随地处于美妙的音乐的旋律中,舒缓人
15、们的压力,使人们的生活更加轻松。市场研究公司尼尔森发布的2013移动消费者报告显示,中国智能手机普与率达66%,已经超越美国和英国的普与率,但居于国之后。 一周前,据移动应用分析公司Flurry的新数据,中国的智能手机激活量到2013年2月底将达到2.46亿,首次取代美国成为全球最大的智能手机市场。中国手机市场的的扩增,手机的各类应用也将迅猛的增长。1.2 手机操作系统简介手机操作系统都应用在智能手机上。能够安装在手机上的操作系统有:Android、iOSWindows Mobile、Symbian、BlackBerry、Palm和Bada等等。Android(中文名:安卓、安智)系统是由Go
16、ogle公司推出的给予Linux平台的开源的手机操作系统,由于开源以与使用JAVA作为开发语言,受到广大用户的青睐,目前支持的硬件厂商是最多的。iOS是由苹果公司为iPhone开发的给予Mac环境的操纵系统,采用Objective-C为主要的开发语言,主要用于iPhone、iPad Touch和iPad等终端设备。iOS支持多点触控,给用户提供全新的体验,但是它不开源,只能应用在苹果设备上面。Windows Mobile现在叫做Windows Phone 7是Microsoft公司为移动设备退出的Windows操作系统,该系统拥有庞大的用户群,主要的用户电脑,由于硬件要求极高,导致硬件设备价格
17、也贵,在很大程度上限制了它的发展。Symbian(中文名:塞班)是一个实时、多任务的32位操作系统,具有功耗低、占用存少等等优良的特点,很适合手机等移动设备的使用。但是Symbian系统的不开源影响了它的发展,使Android系统逐渐替代了它,直到2010年2月进行开源,但是它的辉煌时期已经过去了。BlackBerry(中文名:黑莓)是RIM公司开发的手机操作系统,这个系统的安全防护很好,现在由于面临Android和iOS两大手机操作系统的的冲击,用户群正在减少。Bada是国三星公司自主研发的的智能手机平台,支持Flash界面,对已SNS应用有超强的支持,于2009年11月10日发布。1.3
18、论文的主要工作本文共分为五章,各章节概述如下:第一章 绪论 阐述了项目背景,项目的意义,手机的普与和手机操作系统简介以与本论文的主要工作。第二章 Android平台的介绍 重点介绍了Android的框架结构和四大组件并详细的阐述了Android平台的搭建,数据存储技术,Android工程结构和清单文件的设置。第三章 系统需求分析 首先介绍了软件的目标和音乐播放器的功能需求,并对手机的运行环境做了说明。第四章 系统的设计 系统设计分别介绍了几个不同界面,这几个界面分别说首界面、主界面、播放界面、歌词显示和退出提示。第五章 播放器的测试 V/W两种开发模型的选择,白盒黑盒的测试思想,通过测试不同的
19、播放器模块来检测系统的稳定性和适应性。第2章 Android平台介绍2.1 Android简介Android这个词语最早出现在法国作家利尔亚当1886年发表的科幻小说未来的夏娃中,他将一个美丽聪明的机器人女孩叫做Android。美国的Google公司在2002年就进军移动领域,由于当时的手机操作系统企业和手机企业还是相对比较封闭,而Google公司的目标是将传统互联网和移动互联网进行融合,但当时没有合适的合作伙伴。它马上把目标锁定在由Andy Rubin创办的Android公司,终于在2005年Google公司收购了这家公司,Andy Rubin仍然担任该公司的负责人继续对Android项目进
20、行研发。2007年11月5日,Google公司正式向外展示了Android 1.0操作系统,提供了基础的智能手机功能:音乐、闹钟、联系人、计算器、摄像头、浏览器、电子、地图、拨号、信息服务、图片、设置、API演示、开发包工具等。系统发布之后就推出一款装有Android 1.0系统的手机T-Mobile G1,该款手机是由T-Moblie定制,THC公司代工制造,手机的全名是HTC Dream。经过几年的发展,Android版本越来越高,功能越来越齐全,Android逐渐扩展到平板电脑与其他领域上,如电视、数码相机、游戏机等。2.1.1 Android结构分析Android的系统架构和其操作系统
21、一样,采用了分层的架构。从架构图看,Android分为四个层分别是应用程序框架层、应用程序层、系统运行库层和LinuxHYPERLINK :/baike.baidu /view/1366.htm核层。Android的架构图如图2.1所示。图2.1 Android的架构图Android应用程序是Android系统智能手机的主要构成部分,实现了智能手机的多样性、多功能性,结合了办公功能、娱乐功能、生活实用功能等,广受人们的喜爱。Android把同一系列的核心应用程序包一起发布,该应用程序包囊括了客户端,SMS,浏览器,日历,地图,联系人管理程序等。API框架开发人员也可以完全对核心应用程序访问。应
22、用程序的架构设计简化了组件的重复调用;每一个应用程序都能发布自己的功能块,而且其它的应用程序都可以调用其所发布的功能块(不过需要遵循框架的安全性)。同样,应用程序重用机制的过程是方便用户更换程序的组件。在任何应用程序是一系列的服务和系统,包括不同形式的、可扩展的视图(视图),可以用来构建应用程序,可以使用列表,网格,文本框,按钮,包括嵌入Web浏览器形成丰富的视图。活动管理器(Activity Manager)是用来控制生命周期的应用,可以提供更多的常用的导航回退功能。容提供器(Activity Manager)它是一个类,这个类主要是为Android系统中共享的数据的进行封装,并为其他方面的
23、应用提供统一的接口。这些数据是共享的,可以通过系统提供的也可以是一个程序的数据,容提供器用来组织数据的形式。通知管理器(Notification Manager)在对应用程序的状态栏中显示一个自定义消息。资源管理(Resource Manager)提供非代码资源的访问,如本地字符串、图片和布局文件。Android基于Linux version 2.6核来提供系统的核心服务,例如:安全机制,存管理,进程管理,网络堆栈和驱动模块。该核还扮演着一个虚拟的中间层,该层介于硬件和其余的软件堆栈。2.1.2 Android系统的四大组件在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,
24、但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和Broadcast Receiver是不可见的,它们只在系统的后台运行。但是并不是每一个Android应用程序都需要这四种组件。(1) Activity:Activity是活动的意思,一个Activity通常表现为一个可视化的用户界面,是Android程序与用户的交互窗口,也是Android组件中最基本、最复杂的一个组件。从外部表现来看,一个Activity占据当前窗口,响应所有窗口事件,具备控件、菜单等基本界面元素。而从部逻辑来看,Activity需要为了保持各个界面的状态,
25、需要管理生命周期和跳转逻辑。(2) Service:Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。定义一个Service就必须在AndroidManifest.xml配置清单文件中进行配置,通过声明才能使用Service服务。Service拥有自己的生命周期,可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service。(3) Broadcast Receiver:Broadcast Receiver是广播
26、接收者的意思,它不执行任何任务。广播是一种广泛用在应用程序之间传输信息的机制,而Broadcast Receiver是对发送出来的广播进行过滤接收并响应的一类组件。Intent翻译成中文就是“意图”,Internet组件在Android中是一个十分重要的组件,它是不同应用的桥梁和纽带,也是让组件级复用(Activity和Service)成为可能的一个重要因素。Internet组件主要作用是运行在一样或者不同应用程序的Activity,Service,Broadcast Receiver间,进行切换和数据的传递。(4) Content Provider:Content Provider是容提供者
27、的意思,它是作为应用程序之间唯一的共享数据的途径,Content Provider主要的功能是存储并检索数据以与向其他应用程序提供访问数据的借口。2.2 Android开发环境的搭建Android系统的开发环境可以搭建在Windows XP与以上的操作系统中,但是要注意你电脑系统是32位还是64位的。在搭建环境之前,需要准备三个文件:一个是Android SDK文件,一个是Eclipse,还有一个是Java JDK。但是,Android SDK有两种版本,一种是包含具体的SDK版本,另一种是只有升级工具,而不包含具体的SDK版本,可以在线升级,建议采用这种形式。安装JDK:(1)双击JDK文件
28、,运行该程序,弹出如图2.2所示安装向导界面。单击“下一步”按钮。图2.2 安装向导界面(2)单击“更改”按钮,可以改装JDK的安装路径,这里我改为“D:androidJavajdk1.8.0_40”,如图2.3所示,然后单击“确定”按钮。图2.3 更改JDK安装目录(3)文件辅助完成后,提示安装JRE,建议安装在同一个目录下,更改为“D:androidJavajre1.8.0-40”。(4)开始复制文件并安装JRE,文件复制完成后,弹出安装成功界面,如图2.4所示。图2.4 JDK安装成功(5)设置好之后我们就可以配置环境变量了,单击“我的电脑”,选择“属性”,在弹出的窗口中选择“高级系统设
29、置”如图2.5所示。图2.5 高级系统设置选择“高级”选项,再单击“环境变量(N)”按钮,如图2.6所示。图2.6 设置环境变量在用户变量中编辑JAVA变量,设置的变量名为“JAVA_HOME”,设置的变量值为“D:androidJavajdk1.7.0_45”,如图2.7所示。图2.7 新建环境变量JAVA_HOME在系统变量中设置path,在path变量值后面添加“;D:androidJavajdk1.7.0_45bin”,如图2.8所示。图2.8 修改系统变量Path(6)打开cmd窗口,输入“Java -version”命令,查看JDK版本信息,查验JDK是否安装成功,查验如图2.9所
30、示。图2.9 查看JDK版本信息安装Eclipse开发工具:解压下载好的软件安装包到指定的目标文件夹下,运行eclipse.exe,设置workspace,也就是设置一个开发目录。安装Android SDK:解压下载好的软件开发工具包,也就是SDK文件。然后双击SDK Manager.exe可以升级合适的软甲开发工具包。如图2.10所示。图2.10 选择需要安装的Android SDK包安装Android ADT插件:打开eclipse程序,在选项菜单中点击“Help-Install New Software”,然后点击add,命名后点击Archive选择我们下载的ADT压缩文件,点击OK,会
31、自动解析ADT插件的所有可用的容,select all(全选),再点击下一步。安装过程中有个别地方需要接受许可,然后等待安装完成,这个等待过程可能比较长。安装完毕后重启eclipse软件,完成安装。创建Android虚拟机AVD:打开Eclipse程序,点击选项菜单中的“Run-Run Configurations”,在弹出的窗口中选择“Target”,单击“Mannager”按钮,然后会弹出一个界面。然后单击“Device Definitions”选项,选择合适的设备,单击“Create AVD”按钮,创建一个新的AVD。单击“Start”按钮,等待虚拟器运行,出现如图2.11所示。图2.1
32、1 运行AVD设备界面2.3 Android工程结构Android工程基本结构目录包括:src(源代码)、gen(Android系统自动生成的常量)、res(资源文件:主要存放程序界面的布局配置(.xml)文件和图片资源)。AndroidMainfes.xml是一个清单文件,配置好清单文件就是给组件提供一个驱动,这样Android程序的中的组件才能够正常的运行。Android资源的基本类型和布局如表2-1所示。表2-1 Android资源的类型和布局目录结构资源类型res/anim/XMLD动画文件res/drawable/一些位图文件res/layout/xml布局文件res/value/各
33、种xml资源文件Arrays.xml:XML数据文件Colors.xml:XML颜色文件Dimens.xml:XML尺寸文件Styles.xml:XML样式文件res/xml/任意的XML文件res/raw/直接拷到设备中的原文件res/menr/XML菜单文件AndroidManifest.xml是Android应用的入口文件,它描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receiver
34、s,还能指定Permissions和Instrumentation(安全控制和测试)。它主要包含的功能有:说明Application的JAVA 数据包,数据包的包名是Application的唯一标识;描述Application的Component;说明Application的Component运行于哪个Process下;声明Application所必须所具备的权限,用来可以访问受保护的部分API,以与同其他Application的交互;声明Application其他所必备权限,用来和Component之间的交互;列明Application运行时所需要的环境配置信息,这些声明的信息只是在程序开发
35、和测试时会存在,发布前将被回收;声明Application所需要的AndroidAPI的最低版本的级别;列举Application所需要的库。第3章 系统需求分析系统的需求分析是项目开发的基础,是软件定位于什么样的情况下开发出来,开发出来是否合乎市场的需求,这是一个项目很重要的部分。它的基本任务就是讲述了这个系统必须要做什么,只有围绕这个目标,我们开发这款软件才会满足市场的需求。3.1 软件的功能需求本软件是基于Android平台的一款音乐播放器,可以方便Android用户对手机部音乐文件的操作,该系统的目标是:(1)软件采用人机交互的方式,界面美观大方,带有年轻的气息,操作简捷明了,富有较强
36、的个性。(2)能对音乐进行简单的管理。(3)软件应具备易维护性和易操作性。3.2 软件的功能设计软件的功能需求概括了研发人员必须实现的软件功能,能够满足音乐播放器用户的日常需求。软件需求文档应当尽量详细的描述该款软件的基本信息。3.2.1 播放器功能图作为一款音乐播放器,基本的播放控制功能显得很重要也很必要,它必须具备音乐播放、暂停、上/下一首、显示歌词、播放模式、播放进度、音量调节和歌曲信息。用例图分析如图3.1所示。图3.1 用例图3.2.2 用例分析表表3-1 播放用例分析表名称:播放状态参与者:广大用户目标:使用户可以播放存储在SD卡中的任意歌曲文件前提条件:该款音乐播放器正处在运行状
37、态事件流:1.用户点击“播放”按键 2.音乐播放器将会播放点击的这首歌曲表3-2 暂停用例分析表名称:播放状态参与者:广大用户目标:当用户点击“暂停”按键时,音乐播放器会暂停正在播放的歌曲前提条件:歌曲正处于播放且未停止和暂停状态事件流: 1.用户点击“暂停”按钮 2.音乐播放器将正在播放的歌曲暂停在当前的位置表3-3 上/下一首用例分析表名称:播放状态参与者:广大用户目标:用户可以在选择当前的歌曲时跳到上一首或下一首前提条件:音乐播放器已经在运行,歌曲正在播放或暂停事件流:1.用户点击“上一首/下一首”按键 2.音乐播放器将播放当前歌曲的上一首或下一首歌曲表3-4 显示歌词用例分析表名称:播
38、放状态参与者:广大用户目标:使用户能够在播放音乐时观看歌词前提条件:音乐播放器处于播放界面的播放状态下,且该歌曲有歌词在SD卡中事件流:1.用户点击“歌词开关按钮”按键 2.音乐播放器显示歌词表3-5 播放模式用例分析表名称:播放状态参与者:广大用户目标:用户能够使用程序所设定的播放模式前提条件:程序运行在播放器设定界面中事件流:1.用户单击“单曲播放、顺序播放、随机播放” 2.播放器进入选择播放模式状态表3-6 播放进度用例分析表名称:播放状态参与者:广大用户目标:使广大用户能够在播放中调节播放进度前提条件:播放器在播放界面播放状态事件流:1. 用户通过拉动进度条进行调节 2.用户可以调节当
39、前播放容表3-7 音量调节用例分析表名称:播放状态参与者:广大用户目标:让用户能在播放时调节音量前提条件:播放器正在运行事件流:1.用户单击“音量”按键 2.音量可以随时调高调低3.2.3 播放器的时序图预定设计这个播放器对象之间的交互情况的功能时序图如图3.2所示。图3.2 功能时序图3.3 软件的运行环境随着手机的普与,手机使用者是越来越多,功能也是越来越丰富,音乐播放功能已经作为一个标配。所以这款软件满足了播放音乐的功能,开发环境是基于Linux的Android开发软件,支持环境是Android的4.2版本。第4章 系统的设计4.1 界面的设计这款名为听音乐播放器,在首界面中采用一个音符
40、的图形作为首界面。首界面就是调用一个login.jpg图片,显示的界面如图4.1所示。图4.1 首界面页面采用线性布局(LinearLayout),直接调用drawable下的一个yy.jpg文件作为首界面的背景图片。页面布局XML文件如下所示:4.2 歌曲分类管理Android的每一个可视化区域都必须有布局,好的布局可以让软件看起来更协调,更美观。在布局文件中可以对文字、图片和颜色等资源进行美化和调节,可以形成绚丽的效果和不同的可视化界面。我们的歌曲管理的效果如图4.2所示。图4.2 歌曲管理我们在布局文件XML中采用线性布局,在线性布局管理器组件中嵌套线性布局管理器组件和单选按钮组件,灵活
41、的运用了布局管理文件,效果显著。采用RadioGroup单选按钮组件,设定艺术家、专辑、全部歌曲、我的列表四个按键,在XML文件中布局如下所示: 播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,通常我们会这样写:Public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main;该方法是将界面活动初始化。4.3 歌词播放控制歌曲播放界面我们在布局文件中播放按键的设定,
42、布局的XML文件如下所示: 布局好播放界面,调试好后我们可以显示的界面如图4.3所示。图4.3 播放界面4.4 歌词显示模块当播放音乐文件时,如果同时存在该歌曲的LRC格式的歌词文件时,系统会自动匹配歌词并且达到同步显示的效果,如图4.4所示。图4.4 歌词显示歌词显示代码模块,其中包括歌词与音乐同步显示、处理歌词文件类、读取歌词文件容、解析歌词处理时间类和获得歌词和时间并返回的类,在从手机中读取歌词的源代码如下所示:public static void read(String file) TreeMap lrc_read = new TreeMap();String data = ;try
43、File saveFile = new File(file);if(!saveFile.isFile()blLrc = false;return;blLrc = true;FileInputStream stream = new FileInputStream(saveFile); BufferedReader br = new BufferedReader( new InputStreamReader(stream,GB2312); Pattern pattern = Pattern pile(d2);while (data = br.readLine() != null) data = d
44、ata.replace(,);data = data.replace(,);String splitdata = data.split();if(data.endsWith()for(int k = 0; k splitdata.length; k+)String str = splitdatak;str = str.replace(:,.);str = str.replace(.,);String timedata = str.split();Matcher matcher = pattern.matcher(timedata0);if(timedata.length = 3 & match
45、er.matches()int m = Integer.parseInt(timedata0); int s = Integer.parseInt(timedata1); int ms = Integer.parseInt(timedata2); int currTime = (m * 60 + s) * 1000 + ms * 10;LyricObject item1 = new LyricObject();item1.begintime = currTime;item1.lrc = ;lrc_read.put(currTime,item1); elseString lrcContenet
46、= splitdatasplitdata.length-1; for (int j = 0; j splitdata.length - 1; j+)String tmpstr = splitdataj;tmpstr = tmpstr.replace(:,.);tmpstr = tmpstr.replace(.,);String timedata = tmpstr.split();Matcher matcher = pattern.matcher(timedata0);if(timedata.length = 3 & matcher.matches()int m = Integer.parseI
47、nt(timedata0); int s = Integer.parseInt(timedata1); int ms = Integer.parseInt(timedata2); int currTime = (m * 60 + s) * 1000 + ms * 10;LyricObject item1 = new LyricObject();item1.begintime = currTime;item1.lrc = lrcContenet;lrc_read.put(currTime,item1); stream.close();catch (Exception e) e.printStac
48、kTrace();用户如果想退出该程序,按下返回键可以选择是否退出。点击退出时,就会销毁这个活动。第5章 播放器的测试一款软件或系统的开发,不仅要编写使用者需要的服务功能的程序软件,而且也需要对开发后的软件所进行必要的各项测试。对测试的执行和管理,它的重要性堪比对程序本身的开发。一款软件的开发需要花费巨大的精力,如果一个完善的测试,那么我们开发出来的软件可能会因为质量等问题而无法满足客户的要求。最近几年来国的软件开发的成熟,开发周期越来越短,很多公司都开始重视软件测试,由此建立了与此相关的组织结构来保证测试的精准。但是一些忽视或轻视测试工作的企业仍旧存在。一个成熟和高效的开发团队应该采取正确的
49、做法:把测试软件和开发项目放到一样重要的位置上,对测试软件和开发软件给予高度的重视。前面我们阐述了测试软件的重要性。那么在项目开发的过程中,究竟是怎样执行具体的测试呢?我的答案是:每款软件都会有功能设计,即为用户提供一些服务或者解决某些问题。测试音乐播放器的目的有两个:第一,是要确保用户所需求的功能能够被完整的开发出来,也就是说,假如能够完成用户需求的目标,用户的确能够利用这些功能所提供的服务和解决问题;第二,要保证程序在被使用的情况下,假如使用者不按照所设计的使用说明在使用程序,那么它不应该应为任意的使用、或其它一些外部影响造成任何问题,包括出现BUG,数据的丢失、数据报错、甚至造成的系统崩
50、溃等等情况。为了完成两个不同的测试目的,我们在执行具体的测试时就要选择不同的测试方法。为了完成第一个目的,也是最主要的目的,最好的方法是根据目标设计的功能和使用说明,设计一个能够对应的测试方案,来验证这些功能或使用说明是能够完整无误的。这个测试方案称为或测试案例(Test Case)。要确保所有功能的确是完整无误地被开发出来,唯一的方法就是替每一个使用说明都设计大数据的、完整的测试案例,能够通过所有的测试案例就可以说明该款软件的确可以完成我们所设计的功能。所以测试案例全面性和完整性就决定了了测试的质量。RAD(Rap Application Development,快速应用开发)模型是软件开发
51、过程中的一个重要的模型,由于它的模型构图酷似字母V,所以又被称软件开发的V模型。这个模式通过开发和测试同时进行的方式来缩短软件的开发周期,提高软件开发效率。V模型大致可以划分为几个不同的阶段:先进行需求分析和概要设计,然后做出详细的设计,在做出详细的设计之后才进行代码的编写,代码编写成功后就可以做单元测试和集成测试、了,然后再做一个系统的测试,最后在软件投入市场前进行验收测试,这就是V模型软件开发的步骤。W模型由Evolutif公司提出,相对于 HYPERLINK :/baike.baidu /subview/249855/249855.htm t _blank V模型,W模型是使软件开发各阶
52、段同步做验证和确认。W模型像两个V字型模型拼凑而成,分别代表开发和测试的过程,表示开发与测试的同步的关系。W模型强调了测试会伴随着整个软件开发,并且测试的对象不再是程序,像需求、设计等同样要加入测试,换句话说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。V模型需要在整个项目开发中经历的不同测试的级别,但忽略了测试的对象不仅仅只是程序。而W模型做了补充,它指出也应该对需求、设计进行测试。但V模型和W模型都没有把一个完整的测试过程独立出来,作为一个独立的流程这不太适合当前软件开发中比较广泛应用的迭代模型。而在实际的测试工作中我们应该尽可能地区应用各模型中对项目有实用价值的方面,不能强
53、行的为实用模型而实用模型。尽管开发的这款音乐播放器不应该作为一个复杂的应用模块,但是我们要选择结构更加合理的W模型作为测试框架,在需求分析不断更改,我们也能将需求测试和设计测试进行更新这就很大程度上降低了软件的开发风险,在单元测试时我们也就能够更加合理地提供一个比较完备的测试用例为该模块做测试。综上考虑,我们选择的测试方法是:以W模型为框架,尽早的、尽全面的展开测试。5.1 测试方法Android的工程产品选择两种不同的方法进行测试,分别是白盒测试和黑盒测试。已知软件部的过程,可以通过测试来证明是否每个部操作符合要求,我们设计的所有部组件,通过检验,我们将测试这种方法称为白盒测试。白盒测试的程
54、序作为一个透明的包装盒,这是已经知道的程序结构和过程,白盒法全面了解程序部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子,在完全不考虑程序部结构和部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着重外部结构,不注意部存在的逻辑结构,这里只针对软件的界面和软件的功能做出测试。选
55、择合适的测试方法:在音乐播放器开发的进度上,我们将选择W模型下进行白盒测试。白盒测试的项目大体都是由开发者在进行编码后自动将对所有的代码进行测试。现在的大多数开发软件或开发工具都会带有部分的软件测试功能,开发人员可以利用开发工具自带测试功能对软件进行测试。5.2 功能测试功能测试和实现是指播放器整体功能的实现和播放器主要模块功能测试。播放器整体功能,主要是针对播放器的播放功能,上一首,下一首选择与媒体格式的支持等,表5.1为播放器的整体功能测试结果:表5.1 播放器整体功能的是实现测试容测试结果播放控制能正确的完成播放、暂停、进度条的拖动功能格式支持支持MP3格式上/下首歌曲选择能正确的选择“
56、上一曲”,“下一曲”表5.2 播放器主要模块功能测试测试模块测试结果用户图形界面用户友好的人机交互歌词同步显示歌词与歌曲同步比较准确表5.3 子菜单的显示以与快捷键测试测试容测试结果进入主界面,点击选择菜单能按照要求正常操作,能在艺术家、专辑、全部歌曲和我的列表中选择喜欢的歌曲进入播放界面,查看菜单能按照要求正常操作,能正常使用返回键、上一首、下一首、播放/暂停键和播放模式切换键测试过程中,在横屏里操作各种菜单能够正常操作,各个界面正常显示测试过程中,在竖屏里操作各种菜单能够正常操作,各个界面正常显示表5.4 测试音乐播放器主页面的显示与主要操作测试容测试结果无歌曲情况下进入播放界面查看无曲名
57、、无歌曲相关信息、时间量显示为0等显示正确有歌曲情况下进入播放界面查看有曲名,有歌曲相关信息、时间初始化为0播放后时间会更新,显示正确播放一首无歌词且歌名较长的歌曲,进行播放、暂停等操作,观察界面显示歌曲名能正确显示、播放进度条和播放时间能正确显示播放一首有歌词且歌名较长的歌曲,进行播放、暂停等操作,观察界面显示歌曲名能正确显示、播放进度条和播放时间能正确显示,播放歌曲时能正确显示歌词表5.5 测试音乐播放器的一些基本操作测试容测试结果音量调节音量大小可以调节,最小时无无声,音量图标显示正确拖动进度条快进或快退当拖动进度条歌曲会播放移到当前时间的播放容,反应比较灵敏用上一首、下一首切换歌曲当播
58、放或者暂停时按下上一首/下一首都会播放上一首/下一首歌曲切换播放模式在不选择其他模式时都会默认选择单曲循环表5.6 各种格式的歌曲支持测试测试容测试结果将手机所支持的所有格式音乐导入到播放器进行播放手机支持的格式歌曲均能正常播放表5.7 音乐播放器退出测试测试容测试结果在主界面按返回键是否会显示退出消息提示在主界面按返回键会显示退出消息提示,在提示消息选择“确定”时,会销毁该程序的活动,退出程序表5.8 播放大容量的歌曲是否延时测试容测试结果播放较大容量的歌曲时,从选中到开始播放的时间延时延时较短,用户体验良好根据传统的测试方法,把系统测试当作软件开发的一个开发阶段,系统测试工作会在系统开发完成后展开,但是这样不利于BUG的被与时发现。而有些BUG甚至会在后期才被发现,这时候的修复和维护成本将会提高。我们依据“W模型”的测试方法,在这个系统中将软件的开发和软件的测试紧密的联系在一起,不仅要充分地关注整个开发过程,也要对开发过程中出现的各种变化与时做出反应。若果在开发过程中由于进度的调整可能会导致测试进度和测试策略的随时做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论