1、齐齐哈尔大学毕业设计(论文)齐 齐 哈 尔 大 学毕业设计(论文)题 目 基于 Android 平台的音乐播放器设计与实现 学 院 计算机与控制工程学院 专业班级 计本 113学生姓名 高明祥指导教师 张宏烈成 绩 2015 年 06 月 20 日摘要摘 要Android 平台是 Google 公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度
2、的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。本程序设计以 Android 开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了 Android 开发平台的开发环境。之后对基于 Android 平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据 Android 开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合Android 平台提供的资源和对音乐播放器的功能分析最终实现定义
3、的功能。最后对基于 Android 开发平台的音乐播放系统进行功能测试与验证。关键词:Android 平台,Java ,音乐播放器齐齐哈尔大学毕业设计(论文)IAbstractAndroid 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 applicationsThe platform does not require
4、 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,rapid prototyping and one-stop, meanwhi
5、le 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 article takes the Android developing platfo
6、rm 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 developing platform in detail and makes a de
7、tailed 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 analyze and designOne part is the window desig
8、n,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 we definedFinally it carries on the func
9、tion test based on the Music player of Android platform. Key Words:Android platform, Java,Music player 摘要II齐齐哈尔大学毕业设计(论文)III目 录摘 要 .IAbstract II第 1 章 绪 论 .11.1 课题研究的目的和意义 11.2 国内外研究现状 11.3 本文主要工作 2第 2 章 Android 平台及开发工具介绍 32.1 Android 平台简介 32.1.1 Android 平台架构 32.1.2 Android 的四大组件 42.2 Android 的开发环境 6
10、2.2.1 Eclipse.62.2.2 Android SDK62.3 本章小结 7第 3 章 需求分析 .83.1 需求分析目标: 83.2 用户特点 83.3 假定和约束 83.4 播放器的功能需求分析 83.4.1 音乐播放主界面 83.4.2 歌曲列表的功能需求分析 .113.4.3 性能需求分析 .123.4.4 菜单的设置功能需求分析 .123.5 本章小结 .15第 4 章 总体设计 16摘要IV4.1 设计原则 .164.1.1 总体设计路线 .164.1.2 系统功能结构图 .164.1.3 系统流程图 .174.2 主要功能设计 .184.2.1 音乐播放模块 .184.
11、2.2 列表模块 .194.2.3 菜单设置模块 .204.3 系统的安全设计 .214.4 本章小结 .22第 5 章 详细设计与实现 235.1 欢迎界面 .235.2 歌曲播放界面 .245.2.1 播放音轨 SeekBar .245.2.2 播放调节功能实现 .255.3 歌词显示界面 .265.4 列表显示界面 .265.5 菜单设置界面 .285.6 本章小结 .29第 6 章 音乐播放器的测试 306.1 测试模型 .316.1.1 V 模型 316.1.2 W 模型 316.3 测试方法 .336.3.1 白盒测试 .336.3.2 黑盒测试 .336.3.3 测试方法的选择
12、.346.4 功能的测试与实现 .346.4.1 播放器整体功能的实现 .34齐齐哈尔大学毕业设计(论文)V6.4.2 播放器主要模块功能测试 .356.5 测试结论 .366.6 测试过程与总结 .366.7 本章小结 .37结 论 38致 谢 39参考文献 39摘要0第 1 章 绪 论1.1 课题研究的目的和意义选题的依据、意义和理论或实际应用方面的价值:现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,手机上能实现在线听歌。但是方便的同时问题也来了,在线听歌的歌曲信息,图片,等一些不必
13、要的缓存同时会下载到手机里,使得手机的内存越来越小,如果不经常清理的话手机会越来越卡,所以我设计的是一款基于 Android 手机平台的音乐播放器,可以在用户退出后自动清理缓存垃圾,使手机显得更生动灵活化,与人们更为方便,让机主随时随地处于音乐的旋律之中。本设计解决的主要问题是歌曲信息缓存问题,可以播放 Mp3 格式的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。也使设计者更加熟悉 Android 的技术和其它在市场上的特点。1.2 国内外研究现状目前中国拥有世界上最大的手机用户群,Android 在中国的前景十分广阔,首先是有成熟的消费者,。国内厂商和运营商也纷纷加入
14、了 Android 阵营,包括中国移动、中国联通、中兴通讯、华为通讯、联想等大企业,同时还不仅仅局限于手机,国内厂家采用 Android 系统的 MID 产品。Android 也将会被广泛应用在国产智能上网设备上,将进一步扩大 Android 系统的应用范围。国外主要分成 3 类:为企业开发应用、开发通用应用(放到 Android Market 或者其他 App Market 销售) 以及游戏开发(放到 Android Market 或者其他 App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行
15、定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是 2 种:为国外公司进行外包开发,或者通过 Google 的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。齐齐哈尔大学毕业设计(论文)11.3 本文主要工作本文的主要内容是研究,分析和实现基于 Android 手机平台的音乐播放器系统,包括以下几个部分:第 1 章简要介绍了 Android 音乐播放器项目背景和国内外研究现状。第 2 章研究了基于 Android 平台的软件开发环境,主要包括 Android 平台的产品支持。第
16、 3 章详述进行基于 Android 手机平台的音乐播放器的开发的整个过程,包括对软件的需求分析。第 4 章介绍了软件的总体设计路线和系统功能结构图。第 5 章主要讲播放器的详细设计,包括主要模块功能实现。第 6 章是对音乐播放器的软件测试,主要是对其功能验证,确定是否符合软件规格要求,最后对全文进行一个总结。第 1 章 标题 2第 2 章 Android 平台及开发工具介绍基于 Android 平台的音乐播放系统是在 JDK6.0 的环境下选用 Java 语言,采用Eclipse 开发工具,并在 windows 系统 PC 机上安装 SDK4.0 模拟器而开发的。本章对基于 Android
17、的音乐播放系统所涉及的体系结构、应用程序开发工具、数据库等方面的技术做了简要说明。2.1 Android 平台简介Android 一词本意是指“机器人”同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。在优势方面,Android 平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到 Android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。它还有丰富的硬件选择,这一点还是与 Android 平台的开放性相关,由于
18、Android 的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。Android 操作系统最初由 Andy Rubin 开发,最初主要支持手机。2005 年由Google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android 的主要竞争对手是苹果公司的 iOS 以及 RIM 的 Blackberry OS。2011年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年 2 月数据,Android 占据全球智能手机操作系统市场 59%的份额,中国市场占有率为 68.4%。2.1.1 Android 平台架构Android
19、 平台主要包括 Applications、Application Framework、Libraries 、Android Runtime 和 Linux Kernel 几部分,如图 2.1 所示1.Applications(应用程序)Android 提供了一组应用 程序,包括 Email 酷虎段、SMS 程序、日历、地图、浏览器、通讯录等。这部分程序均使用 Java 用语言编写。齐齐哈尔大学毕业设计(论文)3图 2-1 Android 平台架构2.Application Framework(应用程序框架)无论是 Android 提供的应用程序还是开发人员自己编写的应用程序,都需要使用 App
20、lication Framework(应用程序框架)。通过使用 Application Framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。3.Libraries(库)Android 提供了一组 C/C+库,他们为平台的不同组件所使用。开发人员通过 Application Framework 来使用这些库所提供的不同功能。4.Android Runtime(Android 运行时)Android 运行时包括核心库和 Dalvik 虚拟机两部分。核心库中提供了 Java语言核心库中包含的大部分功能,虚拟机负责运行程序。Dalvik 虚拟机专门针对移动设备进行编写,不仅效率
21、更高,而且占用更少的内存。5.Linux Kernel(linux 内核)Android 平台使用 Linux2.6 版内核提供的核心系统服务,包括安全性、内存管理、进程管理等。2.1.2 Android 的四大组件Android 四大基本组件分别是 Activity,Service 服务,Content Provider 内容提供第 1 章 标题 4者,BroadcastReceiver 广播接收器。1.Activity从字面上理解,Activity 是活动的意思。一个 Activity 通常展现为一个可视化的用户界面,是 Android 程序与用户交互的窗口,也是 Android 组件中最
22、基本也是最复杂的一个组件。从视觉效果来看,一个 Activity 占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity 需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,需要派生一个 Activity 的子类,进而进行编码实现各种功能方法。2.Service服务是运行在后台的一个组件,从某从意义上说,服务就像一个没有界面的 Activity。它们在很多 Android 的概念方面比较接近,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事件,定义好需要接受的 Intent 提供同步和异步的接
23、口。Android 中得服务其实与 windows 中得服务类似,它执行长时间运行的操作,或运程进程执行工作。服务不提供用户界面,例如在后台下载东西,播放音乐,在你播放音乐的同时还可以干其他事情,而不会阻塞用于与其他活动的交互。另一个组件,比如 Activity 可以启动一个服务,并运行或者绑定到它。3.Broadcast Receiver广播接收者,不执行任何任务,广播是一种广泛运用的在应用程序之间传输信息的机制 。而 Broadcast Receiver 是对发送出来的广播进行过滤接收并响应的一类组件。Broadcast Receiver 不包含任何用户界面。然而它们可以启动一个 Acti
24、vity 以响应接受到的信息,或者通过 NotificationManager 通知用户。可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。在 Android中还有一个很重要的概念就是 Intent,如果说 Intent 是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么 Broadcast Receiver 组件就提供了一种把Intent 作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。4.Content Provider即内容提供者,作为应用程序之间唯一
25、的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。 Android有一个独特之处就是,在 Android 中,每个应用程序都是用自己的用户 ID 并在自己的进程中运行。这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常应用程序所影响,每个进程都拥有独立的进程地址空间和虚拟空间。Android 的齐齐哈尔大学毕业设计(论文)5数据(包括 files, database 等)都是属于应用程序自身,其他的应用是不能访问到的,更无法直接进行操作。所以如果你想实现不同应用之间的数据共享,就不得不用 content provid
26、er 了。为了使其他程序能够操作数据,在 Android 中,可以通过做成 ContentProvider 提供数据操作的接口。其实对应用而言,也可以将底层数据封装成 ContentProvider,这样可以有效的屏蔽底层操作的细节,并且使程序保持良好的扩展性和开放性。Android 提供了一些主要数据类型的 Contentprovider,比如音频、视频、图片和私人通讯录等。可在 android.provider 包下面找到一些 android 提供的Contentprovider。可以获得这些 Contentprovider,查询它们包含的数据,当然前提是已获得适当的读取权限。如果我们想公
27、开自己应用程序的数据,可以创建自己的 Content provider 。2.2 Android 的开发环境Android的上层应用程序是用Java 语言开发的,同时需要基于Dalvik虚拟机所以Google公司推荐使用主流的Java 继承开发环境 Eclipse+ADT插件。有了Eclipse还不够,因为使用Java语言进行开发 ,应该有由SUN公司提供的Java SDK,其中包含了JRE,JavaRuntime Environment。另外Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK。有了这三个软件就可以开发Android
28、应用程序了。2.2.1 EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提
29、供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。Eclipse 的安装比较简单,所以在这里就不做详细介绍了。2.2.2 Android SDKSDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。第 1 章 标题 6因此,Android SDK 指的是 Android 专属的软件开发工具包。Android SDK 不用安装,下载后,直接解压即可,但由于 Android SDK 采用了Java 语言,所以需要先安装 JDK 5.0及以上版
30、本。使用 Eclipse 进行 android 应用开发需要给 Eclipse 装 adt 插件,这样 Eclipse 就可以和 android sdk 建立连接,可以在 Eclipse 中启动 android 模拟器进行程序调试等ADT 插件安装这里不再累赘,插件的安装 URL 为:也可以下载 adt 的 zip 包安装 安装完插件后,需要做一些简单的配置:1、在 Eclipse 中,选择 Window Preference;2、从左侧的菜单中,选择 Android 项;3、设置 SDK Location,点 Browse 选择 SDK 的安装根目录;4、OK,完成。2.3 本章小结本章对
31、Android 的开发平台、开发环境进行了简要介绍,在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到 Android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,Android 平台也将很快走向成熟。开发性对于 Android 的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争。齐齐哈尔大学毕业设计(论文)7第 3 章 需求分析软件需求分析是软件生存期中重要的一步,也是决定性的一步。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统
32、必须做什么”这个问题,深入描述软件的功能和性能的需求。在这一节中主要就是围绕“Android 开发平台的音乐播放器系统必须做什么”这个问题来分析说明的。3.1 需求分析目标:(1) 软件采用人机交互的方式,界面美观友好。(2) 操作灵活、方便、易上手。(3) 能够对音乐文件进行有效的管理。(4) 满足用户对播放器的个性化设置。(5) 系统应最大限度地实现易维护性和易操作性。3.2 用户特点本软件最终用户是购买手机使用音乐播放功能的普通用户。3.3 假定和约束本软件的开发工作是基于假定手机硬件完好,具有一定的存储空间。3.4 播放器的功能需求分析根据项目的目标,我们可获得项目系统的基本需求,以下
33、从不同角度来描述系统的需求,并且使用用例图来描述系统的功能需求,播放器的基本控制需求。第 1 章 标题 83.4.1 音乐播放主界面音乐播放主界面是用户进入音乐播放器的主界面,用户点击应用图标后,便会打开此界面。此界面实现的主要功能包括播放,暂停音乐,选择播放队列里的上一个歌曲,选择播放队列里下一首歌曲,定位音乐进度条,显示歌曲播放进度,进入播放队列主界面。音乐播放主界面用例图如下图 3-1 所示。图 3-1 播放器用例图音乐播放器的用例描述如下:用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击“播放”按钮齐齐哈尔大学毕业设
34、计(论文)92.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮2.播放器将暂停当前的歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮2.播放器将播放上一首或下一首歌曲用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐列表”按钮2.播放器进入音乐列表第 1 章 标题 10用例名称:专辑列表参与者:用户目标:使得用户可以
35、进入专辑列表前置条件:程序在运行基本事件流:1.用户单击“专辑列表”按钮2.播放器进入专辑列表3.4.2 歌曲列表的功能需求分析当用户选中列表中某一项歌曲,就能对歌曲进行播放、查看详细信息、铃声设置的操作,其用例图如图 3-2 所示:3-2 歌曲列表用例图歌曲列表的用例描述如下:用例名称:播放参与者:用户齐齐哈尔大学毕业设计(论文)11目标:使得程序播放选中的歌曲前置条件:程序运行在歌曲列表选项中基本事件流:1.用户长按列表中的歌曲名2.系统弹出操作对话框3.用户单击对话框中的播放按钮4.播放器进入播放状态用例名称:查看歌曲详细参与者:用户目标:使得程序显示歌曲详情前置条件:程序运行在播放菜单
36、选项中基本事件流:1.用户长按列表中的歌曲名2.系统弹出操作对话框3.用户单击“查看歌曲详细”按钮4.显示歌曲详细状态 3.4.3 性能需求分析1.时间特性要求软件的速度要在用户可接受的范围内。2.灵活性软件基于 Android 操作系统,是基于逐渐的开发方式,适应于以后对软件功能的扩张需求。3.4.4 菜单的设置功能需求分析菜单里包含了对音乐播放器的基本设置,其用例图如图 3-3 所示:第 1 章 标题 123-3 设置菜单用例图菜单设置的用例描述如下:用例名称:退出参与者:用户目标:使得程序停止并退出播放前置条件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮2.系统弹
37、出菜单对话框3.用户单击对话框中的常用按钮4.系统显示退出按钮5.用户点击退出按钮6.系统退出程序 齐齐哈尔大学毕业设计(论文)13用例名称:睡眠模式设置参与者:用户目标:用户可设置运行时间使系统自动关闭前置条件:程序运行在菜单对话框的工具设置下面基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的工具按钮4.系统显示睡眠模式按钮5.用户点击睡眠模式按钮6.系统弹出时间设置对话款程序 7.用户设置时间后点击确定8.系统提示设置是否成功用例名称:日/夜模式设置参与者:用户目标:用户可改变屏幕的明暗度前置条件:程序运行在播放菜单选项中基本事件流:1.用户点击菜单按钮2.系统
38、弹出菜单对话框3.用户单击对话框中的工具按钮4.系统显示日/夜模式按钮5.用户点击日/夜模式按钮6.系统改变屏幕的明暗度第 1 章 标题 14用例名称:关于参与者:用户目标:查看播放器的有关说明前置条件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮2.系统弹出菜单对话框3.用户单击对话框中的关于按钮4.系统显示关于页面 3.5 本章小结本章对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标;画出了系统的用例图,让软件系统的总体结构一目了然,使得开发更有效率。齐齐哈尔大学毕业设计(论文)15第 4 章 总体设计该音乐播放器的总目标是,实现内存卡内音乐
39、的读取、对音乐播放的基本操作、实现歌词的同步功能、用户友好性操作的实现等,在实现这些功能的基础上要考虑到音乐播放器的 UI 界面的设计的友好性易操作。4.1 设计原则系统设计是一个把软件需求转换成用软件系统表示的过程。通过对目标系统的分析和研究,做出对音乐播放器的整体规划,这是全面开发系统的重要基础。下面介绍系统功能结构图和流程图。4.1.1 总体设计路线在 Android 的开发中界面的设计是很重要的,因为它区别于 web 的开发。它的界面小,又要在这么小的界面上竟可能多的去实现功能,所以在 UI 设计上,组件的摆放问题以及屏幕之间滑动跳转问题都要都是在设计工程中中要考虑到的,其次,Andr
40、oid 程序主要应用在手持设备上,不论用户是单手操作还是双手操作,都必须考虑到组件摆放的易操作性,所以要考虑到组件摆放的区域问题,除此之外在 UI 设计的编写上也要考虑到代码的可更改问题,如果单纯的用 XML 文件实现,那么在软件的进一步更改开发上可能会遇到很大问题,所以该系统的大部分界面都是通过xml 和 Java 代码共同实现的。在完成音乐播放器界面的设计后就是功能模块的具体设计了,功能这一块是根具需求来的,有怎么样的需求就对应怎样的功能设计,该音乐播放器所要实现的功能都是通过各个类之间的调用实现的,这样就增加了代码的可读性,对于音乐播放器来说最主要的还是实现音乐播放功能,第一部分就是音乐
41、文件读取、音频文件信息的读取,其次是对音乐的操作,然后就是播放器的个性化设置。所以要做好也是一件不简单的事情。4.1.2 系统功能结构图系统主要分为三大模块,歌曲列表模块、歌曲播放模块、菜单设置模块,根据设定三个模块的命名就可以知道模块的基本功能了,歌曲列表模块就是在程序启动第 3 章 标题16的时候自动扫描并获取添加歌曲到歌曲列表中,然后用户可以对列表内的歌曲进行一些操作,歌曲播放模块不仅要显示正在播放的歌曲信息而且要实现对歌曲的一些基本操作,,实现了歌曲图片的一个倒影效果显示,歌曲列表模块主要考虑到内存歌曲过多时为方便用户找到自己喜欢的歌手而设置的一个网格列表,当你选种歌曲时它可以对歌曲就
42、行播放。菜单设置模块呢,主要实现对音乐播放器的个性化设置,满足用户除了听歌曲以外的需求、音乐播放器的系统功能结构图(如图 4-1 所示)图 4-1 系统功能结构图4.1.3 系统流程图音乐播放流程图(如图 4-2 所示)齐齐哈尔大学毕业设计(论文)17图 4-2 音乐播放流程图4.2 主要功能设计4.2.1 音乐播放模块1.用户选中要播放的歌曲后跳转到音乐播放界面,音乐播放界面主要显示的有歌曲的信息,以及对音乐操作的按钮,播放、暂停、上一曲、下一曲、音乐进度条等,其功能序列图如图 4-3 所示。(1)暂停播放音乐按钮:用于播放和暂停音乐。如果按钮未播放图标,按下该按钮,则开始播放音乐,图标刷新
43、为暂停的图标。如果按钮原显示为暂停图标,按下此按钮,则暂停播放音乐,图标刷新显示为播放图标。(2)下一首按钮:用户点击此按钮,应用程序 开始切换到下一首歌曲,并播放该歌曲。第 3 章 标题18(3)上一首歌按钮:用户点击此按钮,应用程序开始切换到上一首歌曲,并播放该歌曲。(4)音乐进度条:表示歌曲播放的进度。应用程序定时刷新界面。用户可以拖动该进度条实现对歌曲的定位。(5)播放队列按钮:切换到播放队列界面。2.歌曲列表:用户点击该条目,转入歌曲选择界面。3播放队列主界面:显示正在播放歌曲集合的列表。用户可以从该播放队列中选择播放的歌曲。4,.后台服务控制:实现后台服务远程通信。用户接受客户端传
44、来的意图,并转发给后台音乐服务。图 4-3 歌曲列表操作序列图4.2.2 列表模块用户点击专辑列表按钮后可以查看内存里所有的歌曲所属专辑,专辑列表主要显示专辑及专辑名、歌手名,选中要播放专辑后点击可以直接跳转到播放界面,对专辑内的歌曲可以进行播放的基本操作。如图 4-4 所示。齐齐哈尔大学毕业设计(论文)19图 4-4 专辑列表操作序列图4.2.3 菜单设置模块菜单里主要是对播放器的设置,以满足用户的个性化需求,但考虑到本系统以简单易操作的前提下,所以用户的个性化设置不易太多。其功能序列图如图 4-5 所示。该功能模块实现了一下几个子功能。a.退出播放器b.休眠模式设置c.日/夜模式设置d.关
45、于播放器第 3 章 标题20图 4-5 菜单设置操作序列图4.3 系统的安全设计安全性是软件系统永恒的主题,其紧迫程度与功能的可拓展性成正比。越是可以灵活拓展的系统,越是需要一种强大的安全控制机制。世界上最安全的系统,就是一坨废铁,因为永远不可能有新功能加入,于是绝对安全。如果我们可以在其上编写程序,则需要提供一定程度的安全控制,这时程序有好有坏,也有可能出错。如果我们的软件,会通过互联网这样的渠道可以获得,则这种安全上需求会更强烈,因为各种各样的邪恶用意都有可能存在。大体上说,安全性控制会有四种需求:(1)应用程序绝对不能对系统造成破坏。作为一个系统,它的首要目标当然是共享给运行于其上的应用
46、程序以各种系统级的功能。但如果这些应用程序,如果可以通过某种渠道对这个共享的系统造成破坏,这样的系统去运行程序就没有意义,因为这时系统过于脆弱。(2)应用程序之间,最好不能互相干扰。如果我们的应用程序,互相之间可以破坏对方的数据,则也不会有很好的可用性,因为这时单个的应用程序也还是脆弱的。齐齐哈尔大学毕业设计(论文)21(3)应用程序与系统,应用程序之间,应该提供共享的能力。在安全性机制下,我们也还是需要提供手段,让应用程序与系统层之间、应用程序之间可以交互。(4)还需要权限控制。我们可以通过权限来保护系统,一些非法的代码在没有权限的情况就无法造成破坏。在给不同应用程序提供系统层功能、提供共享时,应用程序有权限才能执行,没有权限则会拒绝应用程序的访问。在本项目的开发过程中就遇到了应用程序与系统之间的问题,运行程序之后就使整个系统字库奔溃,同时还遇了权限问题,在 Android 中你想实现什么样的功能就必须给项目赋予什么样的权限,在本项目中需要给项目提供 SD 卡读写的权限,所以在编写程序的第一步就要考虑到权限问题,不然后面的工作都没法进行。4.4 本章小结本系统严格按照面向对象的思想设计,各功能模块设计由需求而确定,各模块之间只通过接口传递消息,满足了系统模块间“高内聚,低耦合”的要求,同时提高了系统的可拓展性和可维护性。