1、xx 大学毕业设计(论文)题 目: 基于 Android 平台的音乐播放器 指导教师: xx 职称: 讲师 学生姓名: xx 学号:xx 专 业: 计算机科学与技术(软件开发) 院 ( 系 ) : 软件学院 完成时间: 2014 年 05 月 05 日 2014 年 05 月 05 日xx 大学毕业设计(论文)I目 录摘 要 .1ABSTRACT.2前 言 .31 Android 平台及开发工具介绍 .41.1 Android 平台简介 41.1.1 Android 平台架构 .41.1.2Android 的四大组件 .61.2 Android 的开发环境 81.2.1 Eclipse 81.
2、2.2 Android SDK .81.3 本章小结 .92 需求分析 .102.1 播放器的设计目标 .102.2 软件的可行性研究 .102.2.1 经济上的可行性 .102.2.2 技术上的可行性 112.2.3 操作上的可行性 112.3 播放器的功能需求分析 .112.3.1 播放器的基本功能 112.3.2 歌曲列表的功能 142.3.3 菜单的设置功能 162.4 本章小结 .183 总体设计 .193.1 设计原则 193.1.1 总体设计路线 193.1.2 系统功能结构图 .203.1.3 系统流程图 21xx 大学毕业设计(论文)II3.2 主要功能设计 .213.2.1
3、 歌曲列表模块 213.2.2 音乐播放模块 .223.2.3 专辑列表模块 .233.2.4 菜单设置模块 .243.3 系统的安全设计.243.4 本章小结 254 详细设计与实现 .264.1 欢迎界面 .264.2 歌曲播放界面 274.2.1 播放音轨 SeekBar.284.2.2 播放调节功能 .284.3 歌词显示界面 .294.4 列表显示界面 .304.5 菜单设置 .314.6 本章总结 .335 音乐播放器的测试 .345.1 测试模型 .355.1.1 V 模型 355.1.2 W 模型 .355.2 测试模型的选择 .375.3 测试方法 .375.3.1 白盒测试
4、 .375.3.2 黑盒测试 .385.3.3 测试方法的选择 .385.4 功能的测试与实现 .384.2.1 播放器整体功能的实现 .394.2.2 播放器主要模块功能测试 .405.5 测试结论 .405.6 测试过程与总结 .40xx 大学毕业设计(论文)III5.7 本章小结 .41结 论 .42致 谢 .43参考文献 .44xx 大学毕业设计(论文)1摘 要Android平台是Google 公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人
5、员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。本文以Android开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了Android开发平台的开发环境。之后对基于Android平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据Android开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是
6、功能的实现,主要是结合Android平台提供的资源和对音乐播放器的功能分析最终实现定义的功能。最后对基于Android开发平台的音乐播放系统进行功能测试与验证。关键词:Android 平台,Java ,音乐播放器xx 大学毕业设计(论文)2ABSTRACTAndroid platform is GoogleS latest launch of a mobile platform,the platform for procedures of mobile devices,includes an operating systems,a middle ware and some critical a
7、pplicationsThe platform does not require any chargesThe code is completely openDevelopers can quickly develop on the platform system and other developers can use the results of the work by other developersTherefore,It made greater flexibility for the development of mobile phone,less work,short cycle
8、,rapid prototyping and one-stop, meanwhile users can customize their mobile phones best to enrich the functions of their cell phones,competitiveness of mobile phones marketAndroid platform is based on Linux systems using the Window kernelThe software call speed up the rate of transplantationThis art
9、icle takes the Android developing platform as a foundationFirst it briefly introduces android platform development,as well as the current domestic and foreign development present situation.After the discussion of the rationale above,this article introduces the development environment of Android deve
10、loping platform in detail and makes a detailed demand analysis to Music player based on the Android developing platform.Then this article gives a detailed software design of Music player.Based on the Android developing platforms feature.I divide the Music players development into two parts to analyz
11、e and designOne part is the window design,mainly defines the window attribute and the connected window processing function;Another part is function realization,mainly unifies the resources which the Android platform provides and function analysis to the Music player to accomplish the function which
12、we definedFinally it carries on the function test based on the Music player of Android platform. Key Words:Android platform, Java,Music player xx 大学毕业设计(论文)3前 言随着手机市场的迅速发展,拥有智能手机已经不再是奢侈昂贵的象征。在智能手机的争夺战中,Android 不得不说是减低智能手机价格的一大功臣。Android 系统是谷歌公司开发的免费开源的移动终端操作系统适合于手机和平板电脑。开始动摇苹果手机走高端客户大局势。也动摇在手机市场在长久以
13、来在分割局势。在Android 系统飞速发展的今天,Android 以操作简单、免费、不受开发商限制等优点,Android 手机无疑越来越受到人们和开发商的喜爱,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来。手机的音乐播放功能已经是大家比较关注的一个部分了,不少人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。Android 平台是完全开放的平台,智能手机里的各种应用软件也越来越完备,在 Android 平台设计和开发
14、一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景。但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,而对于大多数普通用户,许多功能用不上,形同虚设。一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利但是不能满足用户的所有要求,所以开发一款个性化的音乐软件是非常有必要的,本项目就是综合以上因素设计开发的,具有基本的音乐播放功能以及个性化设置,易浏览易操作。xx 大学毕业设计(论文)41 Android 平台及开发工具介
15、绍基于 Android 平台的音乐播放系统是在 JDK6.0的环境下选用 Java 语言,采用 Eclipse 开发工具,并在 windows 系统 PC 机上安装 SDK4.0模拟器而开发的。本章对基于 Android 的音乐播放系统所涉及的体系结构、应用程序开发工具、数据库等方面的技术做了简要说明。1.1 Android 平台简介Android 一词本意是指“机器人”同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。在优势方面,Android 平台首先就是其开发性,开发的平台允许
16、任何移动终端厂商加入到 Android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。它还有丰富的硬件选择,这一点还是与 Android 平台的开放性相关,由于 Android 的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。Android 操作系统最初由 Andy Rubin 开发,最初主要支持手机。2005 年由Google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android 的主要竞争对手是苹果公司的 iOS 以及 RIM 的 Blackberry OS。2011 年第一季度,And
17、roid 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012 年 2 月数据,Android 占据全球智能手机操作系统市场 59%的份额,中国市场占有率为 68.4%。1.1.1 Android 平台架构Android 平台主要包括 Applications、Application Framework、Libraries、Android Runtime 和 Linux Kernel 几部分,如图 1.1 所示xx 大学毕业设计(论文)51.Applications(应用程序)Android 提供了一组应用 程序,包括 Email 酷虎段、SMS 程序、日历、地图、浏览器、通讯录等。这部
18、分程序均使用 Java 用语言编写。图 1.1 Android 平台架构2.Application Framework(应用程序框架)无论是 Android 提供的应用程序还是开发人员自己编写的应用程序,都需要使用 Application Framework(应用程序框架) 。通过使用 Application Framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。2. Libraries(库)Android 提供了一组 C/C+库,他们为平台的不同组件所使用。开发人员通过 Application Framework 来使用这些库所提供的不同功能。4. Android Ru
19、ntime(Android 运行时)Android 运行时包括核心库和 Dalvik 虚拟机两部分。核心库中提供了 Java 语言核心库中包含的大部分功能,虚拟机负责运行程序。Dalvik 虚拟机专门针对移动设备进行编写,不仅效率更高,而且占用更少的内存。5. Linux Kernel(linux 内核)xx 大学毕业设计(论文)6Android 平台使用 Linux2.6 版内核提供的核心系统服务,包括安全性、内存管理、进程管理等。1.1.2 Android 的四大组件Android 四大基本组件分别是 Activity,Service 服务,Content Provider内容提供者,Br
20、oadcastReceiver 广播接收器。1. Activity从字面上理解,Activity 是活动的意思。一个 Activity 通常展现为一个可视化的用户界面,是 Android 程序与用户交互的窗口,也是 Android 组件中最基本也是最复杂的一个组件。从视觉效果来看,一个 Activity 占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,需要派生一个 Activity 的子类,进而进行编码实现各种功能方法。2.Service服务是
21、运行在后台的一个组件,从某从意义上说,服务就像一个没有界面的Activity。它们在很多 Android 的概念方面比较接近,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事件,定义好需要接受的 Intent 提供同步和异步的接口。Android 中得服务其实与 windows 中得服务类似,它执行长时间运行的操作,或运程进程执行工作。服务不提供用户界面,例如在后台下载东西,播放音乐,在你播放音乐的同时还可以干其他事情,而不会阻塞用于与其他活动的交互。另一个组件,比如 Activity 可以启动一个服务,并运行或者绑定到它。3.Broadcast Receiver广播接收者,不执行任何
22、任务,广播是一种广泛运用的在应用程序之间传输信息的机制 。而 BroadcastReceiver 是对发送出来的广播进行过滤接收并响应的一类组件。Broadcast Receiver 不包含任何用户界面。然而它们可以启动一xx 大学毕业设计(论文)7个 Activity 以响应接受到的信息,或者通过 NotificationManager 通知用户。可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。在 Android 中还有一个很重要的概念就是 Intent,如果说Intent 是一个对动作
23、和行为的抽象描述,负责组件之间程序之间进行消息传递。那么 Broadcast Receiver 组件就提供了一种把 Intent 作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。4. Content Provider即内容提供者,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。 Android 有一个独特之处就是,在 Android 中,每个应用程序都是用自己的用户 ID 并在自己的进程中运行。这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常应用程序所影响,每个进程都拥有独立的
24、进程地址空间和虚拟空间。Android 的数据(包括 files, database 等)都是属于应用程序自身,其他的应用是不能访问到的,更无法直接进行操作。所以如果你想实现不同应用之间的数据共享,就不得不用 content provider 了。为了使其他程序能够操作数据,在 Android 中,可以通过做成 ContentProvider 提供数据操作的接口。其实对应用而言,也可以将底层数据封装成 ContentProvider,这样可以有效的屏蔽底层操作的细节,并且使程序保持良好的扩展性和开放性。Android提供了一些主要数据类型的 Contentprovider,比如音频、视频、图片
25、和私人通讯录等。可在 android.provider 包下面找到一些 android 提供的Contentprovider。可以获得这些 Contentprovider,查询它们包含的数据,当然前提是已获得适当的读取权限。如果我们想公开自己应用程序的数据,可以创建自己的 Content provider 。1.2 Android 的开发环境xx 大学毕业设计(论文)8Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机所以Google公司推荐使用主流的Java继承开发环境 Eclipse+ADT插件。有了Eclipse还不够,因为使用Java语言进行开发,应该有
26、由SUN公司提供的Java SDK,其中包含了JRE,JavaRuntime Environment。另外 Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK。有了这三个软件就可以开发Android应用程序了。1.2.1 EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(
27、Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。Eclipse 的安装比较简单,所以在这里就不做详细介绍了。1.2.2 Android SDKSDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件
28、的开发工具的集合。因此,Android SDK 指的是 Android 专属的软件开发工具包。Android SDK 不用安装,下载后,直接解压即可,但由于 Android SDK 采用了 Java 语言,所以需要先安装 JDK 5.0及以上版本。使用 Eclipse 进行 android 应用开发需要给 Eclipse 装 adt 插件,这样Eclipse 就可以和 android sdk 建立连接,可以在 Eclipse 中启动 android 模拟器进行程序调试等 ADT 插件安装这里不再累赘,插件的安装 URL 为:也可以下载adt 的 zip 包安装 安装完插件后,需要做一些简单的配
29、置:1、在 Eclipse 中,选择 Window Preference;2、从左侧的菜单中,选择 Android 项;3、设置 SDK Location,点 Browse 选择 SDK 的安装根目录;xx 大学毕业设计(论文)94、OK,完成。1.3 本章小结本章对 Android 的开发平台、开发环境进行了简要介绍,在优势方面,Android 平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,Android 平台也将很快走向成熟。开发性对于 Android 的发展而言,有利于积累人气,这里的人
30、气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争。xx 大学毕业设计(论文)102 需求分析软件需求分析是软件生存期中重要的一步,也是决定性的一步。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么” 这个问题,深入描述软件的功能和性能的需求 9。在这一节中主要就是围绕“Android开发平台的音乐播放器系统必须做什么”这个问题来分析说明的。2.1 播放器的设计目标本系统属于用户常用的音乐播放器。可以方便用户平时对音乐文件的操作。本系统应达到以下目标: (1) 软件采用人机交互的方式,界面美观友好。(2) 操作灵活、方便
31、、易上手。(3) 能够对音乐文件进行有效的管理。(4) 满足用户对播放器的个性化设置。(5) 系统应最大限度地实现易维护性和易操作性。2.2 软件的可行性研究2.2.1 经济上的可行性Android 是 Google 历经数年和投资数亿美元开发出来的智能手机系统,是 基于 Linux 内核的操作系统,是 Google 公司在 2007 年 11 月 5 日公布的手机操 作系统。随着各大移动终端生产商大力开发和生产基于 Android 的移动智能设备, Android 迅速得到业界和社会的认可,并成为整个产业的热点,基于Android 平 台的各类人才逐渐成为各大企业竞相争夺的焦点。 而且 An
32、droid 是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。xx 大学毕业设计(论文)112.2.2 技术上的可行性Google 发起了围绕 Android 的组织开放手机联盟, 其英文全称为 “Open Handset Alliance”。 它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层 Linux 内核只提供基本功能;其他的应用软件则 由各公司自行开发,部分程序以 Java 编写。 2.2.3 操作上的可行性本系统采用 Android 框架,可以在 eclipse 中安装 Android 开发插件,使用Android 模拟
33、器也可以使用任意 Android 终端。模拟器和真正的 Android 手机没有太大区别,人们对手机操作早已熟悉。2.3 播放器的功能需求分析根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述系统的功能需求,播放器的基本控制需求。2.3.1 播放器的基本功能在播放器运行时,首先进入的是欢迎界面,点击进入后进入主界面,主界面是扫描 SD 卡里的本地歌曲列表,对列表里的歌曲可进行播放、铃声设置、查看歌曲详细信息的操作、点击播放列表中的歌曲名可以跳转到播放界面,在播放界面可以控制歌曲的播放、暂停、上一首、下一首、进入播放列表、进入专辑列表、查看歌词、拖
34、动歌曲进度等,在主界面中还可以通过点击手机的菜单键弹出手机的个性化设置对话框,对手机进行睡眠模式设置、日/夜模式、查看软件关于信息、退出程序的操作。其用例图如图 2.1 所示xx 大学毕业设计(论文)12图 2.1 播放器用例图音乐播放器的用例描述如下:用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击“播放”按钮2.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停xx 大学毕业设计(论文)13基本事件流:1.用户单击“暂停”按钮2.播放器将暂停当
35、前的歌曲用例名称:上/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮2.播放器将播放上一首或下一首歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮2.播放器将播放上一首或下一首歌曲用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐列表”按钮2.播放器进入音乐列表xx 大学毕业设计(论文)14用例名称:专辑列表参与者:用户目标:使得用户可以进入专辑列表
36、前置条件:程序在运行基本事件流:1.用户单击“专辑列表”按钮2.播放器进入专辑列表2.3.2 歌曲列表的功能当用户选中列表中某一项歌曲,就能对歌曲进行播放、查看详细信息、铃声设置的操作,其用例图如图 2.2 所示:2.2 歌曲列表用例图歌曲列表的用例描述如下:用例名称:播放xx 大学毕业设计(论文)15参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在歌曲列表选项中基本事件流:1.用户长按列表中的歌曲名2.系统弹出操作对话框3.用户单击对话框中的播放按钮4.播放器进入播放状态用例名称:查看歌曲详细参与者:用户目标:使得程序显示歌曲详情前置条件:程序运行在播放菜单选项中基本事件流:1.
37、用户长按列表中的歌曲名2.系统弹出操作对话框3.用户单击“查看歌曲详细”按钮4.显示歌曲详细状态 用例名称:铃声设置参与者:用户目标:使对歌曲进行来电铃声、闹铃铃声、通知铃声设置前置条件:程序运行在播放菜单选项中基本事件流:1.用户长按列表中的歌曲名2.系统弹出操作对话框3.用户单击“铃声设置”按钮xx 大学毕业设计(论文)164.系统弹出铃声设置选择框5.用户选择要进行的设置 6.系统对铃声进行设置2.3.3 菜单的设置功能菜单里包含了对音乐播放器的基本设置,其用例图如图 2.3 所示:2.3 设置菜单用例图菜单设置的用例描述如下:用例名称:退出参与者:用户目标:使得程序停止并退出播放前置条
38、件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的常用按钮xx 大学毕业设计(论文)174.系统显示退出按钮5.用户点击退出按钮6.系统退出程序 用例名称:睡眠模式设置参与者:用户目标:用户可设置运行时间使系统自动关闭前置条件:程序运行在菜单对话框的工具设置下面基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的工具按钮4.系统显示睡眠模式按钮5.用户点击睡眠模式按钮6.系统弹出时间设置对话款程序 7.用户设置时间后点击确定8.系统提示设置是否成功用例名称:日/夜模式设置参与者:用户目标:用户可改变屏幕的明
39、暗度前置条件:程序运行在播放菜单选项中基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的工具按钮xx 大学毕业设计(论文)184.系统显示日/夜模式按钮5.用户点击日/夜模式按钮6.系统改变屏幕的明暗度用例名称:关于参与者:用户目标:查看播放器的有关说明前置条件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的关于按钮4.系统显示关于页面 2.4 本章小结本章对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标;画出了系统的用例图,让用户对系统的总体结构一目了然,对系统的功能进一步认识
40、。xx 大学毕业设计(论文)193 总体设计该音乐播放器的总目标是,实现内存卡内音乐的读取、对音乐播放的基本操作、实现歌词的同步功能、用户友好性操作的实现等,在实现这些功能的基础上要考虑到音乐播放器的 UI 界面的设计的友好性易操作。3.1 设计原则系统设计是一个把软件需求转换成用软件系统表示的过程。通过对目标系统的分析和研究,做出对音乐播放器的整体规划,这是全面开发系统的重要基础。下面介绍系统功能结构图和流程图。3.1.1 总体设计路线在 Android 的开发中界面的设计是很重要的,因为它区别于 web 的开发。它的界面小,又要在这么小的界面上竟可能多的去实现功能,所以在 UI 设计上,组
41、件的摆放问题以及屏幕之间滑动跳转问题都要都是在设计工程中中要考虑到的,其次,Android 程序主要应用在手持设备上,不论用户是单手操作还是双手操作,都必须考虑到组件摆放的易操作性,所以要考虑到组件摆放的区域问题,除此之外在 UI 设计的编写上也要考虑到代码的可更改问题,如果单纯的用 XML 文件实现,那么在软件的进一步更改开发上可能会遇到很大问题,所以该系统的大部分界面都是通过 xml 和 Java 代码共同实现的。在完成音乐播放器界面的设计后就是功能模块的具体设计了,功能这一块是根具需求来的,有怎么样的需求就对应怎样的功能设计,该音乐播放器所要实现的功能都是通过各个类之间的调用实现的,这样
42、就增加了代码的可读性,对于音乐播放器来说最主要的还是实现音乐播放功能,第一部分就是音乐文件读取、音频文件信息的读取,其次是对音乐的操作,然后就是播放器的个性化设置。所以要做好也是一件不简单的事情。3.1.2 系统功能结构图xx 大学毕业设计(论文)20系统主要分为四大模块,歌曲列表模块、歌曲播放模块、专辑列表模块、菜单设置模块,根据设四个模块的命名就可以知道这四个模块的基本功能了,歌曲列表模块就是在程序启动的时候自动扫描并获取添加歌曲到歌曲列表中,然后用户可以对列表内的歌曲进行一些操作,歌曲播放模块不仅要显示正在播放的歌曲信息而且要实现对歌曲的一些基本操作,在播放界面实现了一个类似 andro
43、id 的Luncher 划屏查看歌词的功能,还有是实现了歌曲图片的一个倒影效果显示,专辑列表模块主要考虑到内存歌曲过多时为方便用户找到自己喜欢的歌手而设置的一个网格列表,当你选种歌曲时它可以对歌曲就行播放。菜单设置模块呢,主要实现对音乐播放器的个性化设置,满足用户除了听歌曲以外的需求,主要有三个子功能,退出程序、睡眠模式设置、日夜模式设置,在日夜模式设置这块主要就是改变屏幕的明暗度,获取当前系统设置的明暗度,然后对其做改变。音乐播放器的系统功能结构图(如图 3.1 所示)图 3.1 系统功能结构图3.1.3 系统流程图xx 大学毕业设计(论文)21音乐播放流程图(如图 3.2 所示)图 3.2
44、 音乐播放流程图3.2 主要功能设计(功能模块介绍)3.2.1 歌曲列表模块用户启动播放器后进入的界面是歌曲列表界面,歌曲列表主要是自动读取手机内存里的歌曲信息,其中显示的有歌曲图片、歌曲名、演唱者、歌曲总时长,用户通过浏览歌曲列表可以对歌曲进行一些操作,其功能序列图如图 3.3 所示。该功能模块实现了以下几个子功能:a.歌曲的播放b.手机铃声设置xx 大学毕业设计(论文)22c.查看歌曲详细信息图 3.3 歌曲列表操作序列图3.2.2 音乐播放模块用户选中要播放的歌曲后跳转到音乐播放界面,音乐播放界面主要显示的有歌曲的信息,以及对音乐操作的按钮,播放、暂停、上一曲、下一曲、音乐进度条等,用户
45、还可以通过划屏查看歌曲的同步歌词,其功能序列图如图 3.4 所示。xx 大学毕业设计(论文)23图 3.4 歌曲列表操作序列图3.2.3 专辑列表模块用户点击专辑列表按钮后可以查看内存里所有的歌曲所属专辑,专辑列表主要显示专辑及专辑名、歌手名,选中要播放专辑后点击可以直接跳转到播放界面,对专辑内的歌曲可以进行播放的基本操作。如图 3.5 所示。图 3.5 专辑列表操作序列图3.2.4 菜单设置模块xx 大学毕业设计(论文)24菜单里主要是对播放器的设置,以满足用户的个性化需求,但考虑到本系统以简单易操作的前提下,所以用户的个性化设置不易太多。其功能序列图如图3.5 所示。该功能模块实现了一下几
46、个子功能。a.退出播放器b.休眠模式设置c.日/夜模式设置d.关于播放器图 3.6 菜单设置操作序列图3.3 系统的安全设计安全性是软件系统永恒的主题,其紧迫程度与功能的可拓展性成正比。越是可以灵活拓展的系统,越是需要一种强大的安全控制机制。世界上最安全的系统,就是一坨废铁,因为永远不可能有新功能加入,于是绝对安全。如果我们可以在其上编写程序,则需要提供一定程度的安全控制,这时程序有好有坏,也有可能出错。如果我们的软件,会通过互联网这样的渠道可以获得,则这种安全上需求xx 大学毕业设计(论文)25会更强烈,因为各种各样的邪恶用意都有可能存在。大体上说,安全性控制会有四种需求:(1)应用程序绝对
47、不能对系统造成破坏。作为一个系统,它的首要目标当然是共享给运行于其上的应用程序以各种系统级的功能。但如果这些应用程序,如果可以通过某种渠道对这个共享的系统造成破坏,这样的系统去运行程序就没有意义,因为这时系统过于脆弱。(2)应用程序之间,最好不能互相干扰。如果我们的应用程序,互相之间可以破坏对方的数据,则也不会有很好的可用性,因为这时单个的应用程序也还是脆弱的。(3)应用程序与系统,应用程序之间,应该提供共享的能力。在安全性机制下,我们也还是需要提供手段,让应用程序与系统层之间、应用程序之间可以交互。(4)还需要权限控制。我们可以通过权限来保护系统,一些非法的代码在没有权限的情况就无法造成破坏
48、。在给不同应用程序提供系统层功能、提供共享时,应用程序有权限才能执行,没有权限则会拒绝应用程序的访问。在本项目的开发过程中就遇到了应用程序与系统之间的问题,运行程序之后就使整个系统字库奔溃,同时还遇了权限问题,在 Android 中你想实现什么样的功能就必须给项目赋予什么样的权限,在本项目中需要给项目提供 SD 卡读写的权限,所以在编写程序的第一步就要考虑到权限问题,不然后面的工作都没法进行。3.4 本章小结本系统严格按照面向对象的思想设计,各功能模块设计由需求而确定,各模块之间只通过接口传递消息,满足了系统模块间“高内聚,低耦合”的要求,同时提高了系统的可拓展性和可维护性。xx 大学毕业设计
49、(论文)264 详细设计与实现详细设计主要是指在系统需求分析的基础上,对整个系统的架构、机器设备的配置、数据的存贮规律以及整个系统的规划等方面进行合理的安排。本章主要介绍系统的功能模块划分和详细设计实现部分,根据需求分析,对系统功能结构进行划分,并在此基础上逐步实现系统各项功能。4.1 欢迎界面欢迎界面模块主要是用于给用户一种友好的体验,让用户较容易接受本软件。进入系统后进入欢迎界面如图 4.1,两秒钟后自动跳转到选择进入界面如图4.2,图 4.2 页面设计采用了相对布局(RelativeLayout) 。图 4.1 欢迎界面 图 4.2 进入播放主界面图4.2中每张图片都执行的动画顺序,渐现、放大和渐隐,结束后切换图片