《毕业设计(论文)基于Android平台的音乐播放器.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android平台的音乐播放器.doc(45页珍藏版)》请在三一办公上搜索。
1、业设计(论文)资料第一部分 毕业论文本科毕业论文(设计)诚信声明本人郑重声明:所呈交的毕业论文(设计),题目基于Android平台的音乐播放器的设计与实现是本人在指导教师的指导下,进行研究工作所取得的成果。对本文的研究作出重要贡献的个人和集体,均已在文章以明确方式注明。除此之外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的责任。作者签名:日 期: 年 月 日摘 要当今,移动互联网如火如荼,不断地影响和改变着人们的生活。2015年12月,移动互联网智能终端设备活跃数达到8.99亿,各种移动APP正在给人们生活的方方面面带来方便和乐趣。尼尔森最近发
2、表了一份尼尔森中国音乐 360 报告,该报告表明72% 受访者每周听音乐的时间约为16小时,24%受访者表示会使用专业耳机听音乐。这些趋势在年轻人身上更为明显。有很大比例的( 66%)的人在用智能手机听音乐,网易云音乐、虾米音乐、QQ音乐等音乐播放软件日趋流行。可见,使用智能移动设备听音乐已成为当下一种普遍的娱乐网休闲方式。论文主要研究了在Android平台下的音乐播放器的设计与实现过程。应用系统实现了Android平台中播放本地和在线音乐文件等功能,能够满足人们对于Android端移动设备播放音乐的基本需求。应用使用AndroidStudio集成开发环境和Android软件开发工具包(ADT
3、)进行开发,主要采用Java语言,按照Android平台应用开发的一般方法开发完成,对于Android平台应用的开发有一定的参考价值。关键词:Android;移动开发;音乐;播放器ABSTRACTToday, the mobile Internet in full swing, continue to influence and change peoples lives. December 2015, the mobile Internet intelligent terminals reached 899 million active devices, various mobile APP
4、is to bring all aspects of peoples life easy and fun.Nielsen recently published a Nielsen Chinese Music 360 report, which showed that 72 percent of respondents weekly time listening to music about 16 hours, 24% of respondents said they would use professional headphones. These trends are more pronoun
5、ced in the young. A high proportion (66%) of people listen to music with a smart phone, Netease cloud music, shrimp music, QQ music music player software increasingly popular. Visible, using smart mobile devices to listen to music has become a universal moment of leisure entertainment network.Thesis
6、, the music player in the Android platform design and implementation process. Application System of the Android platform and online play local music files and other functions, to meet people for Android mobile end devices to play music basic needs. Applications using AndroidStudio integrated develop
7、ment environment and Android Software Development Kit (ADT) for development, mainly in Java language, according to the general method of Android application development platform developed for the Android platform application development has some reference value.Keywords: Android; Mobile development;
8、 Music; Player目 录第1章 绪论51.1 课题研究背景51.2 课题研究内容61.3 课题研究意义61.4 章节组织结构7第2章 技术背景82.1 Android应用系统介绍82.1.1 Android系统架构82.1.2 Android基本组件102.2 Android应用开发环境介绍112.2.1 AndroidStudio集成开发环境112.2.1 Gradle自动化建构工具122.3 SQLite数据库介绍122.3 JSON技术介绍122.5 本章小结13第3章 需求分析143.1 可行性分析143.1.1 经济可行性143.1.2 操作可行性143.1.3 技术可行性
9、143.2 功能结构说明143.2.1 本地音乐模块分析153.2.2 在线音乐模块分析153.3 用例图说明163.3.2 用户用例图分析163.3.2 系统管理员用例图分析173.4 本章小结17第4章 系统设计184.1 用户界面设计184.1.1 用户界面结构介绍184.1.2 用户界面跳转图184.2 系统架构设计194.3 系统详细设计224.3.1 组织结构模块设计224.3.2 通知管理模块设计244.3.3 活动管理模块设计254.4 数据库设计274.4.1 数据库表关系设计274.4.2 数据库逻辑结构设计274.4.3 服务端数据库设计334.5 本章小结35第5章 系
10、统实现365.1 系统开发运行环境365.2 服务端核心功能实现365.2.1 C端登录接口实现365.3 本章小结36第6章 系统测试376.1 测试概念376.2 测试用例376.2.1 功能测试376.2.2 自动化测试386.3 本章小结39结 论40参考文献41致 谢42第1章 绪论1.1 课题研究背景音乐作为一种普遍、大众化的娱乐方式,渗透在人们生活的各个角落中。以前,听音乐的方式主要依靠广播、电视、收音机、CD等。听音乐的时间不能自主或者自主性小。但是现在,网络音乐越来越流行,人们可以随时随地从网络获取下载音乐资源,或者在线听歌。而且,如今人们的生活越来越忙碌,生活节奏日益加快,
11、能够用于娱乐休闲的时间越来越少,利用好碎片化的时间越来越重要。由于智能手机的盛行,很多智能手机都能提供丰富的娱乐活动,人们可以充分利用碎片时间进行自娱自乐。所以,如果能在手机上听歌,必定是一个很好的娱乐方式。由于手机是人们随身携带的,人们可以在工作之余,学习之余,甚至上下班的路上利用碎片时间听歌,放松身心。目前,国外已经有很多类似的产品,比如QuickTime、Xmms、RealPlayer、Mplayer、Xmovie等。QuickTime是苹果公司出品的流式音视频解决方案,是早期流媒体文件格式。QuickTime文件扩展名为“.mov”,它由QuickTime Move电影、QuickTi
12、me媒体抽象层和QuickTime内置媒体服务系统三部分组成。Xmms是X-Window系统下最流行的多媒体播放器之一,支持MP3、MOD、WAV等文件格式。若有插件支持,还可以支持更多的多媒体类型。RealPlayer在低带宽下支持音频、视频的低损失传输,具有优秀流媒体在线播放能力,其后续版本增加了对微软音视频和便携式设备的支持。MPlayer是Linux上的电影播放器,能够播放MPEG、ASF、WMV、VOB、AVI和OGG 等文件,还可以播放VCD、SVCD、DVD和DivX等格式的电影,功能强大。Xmovie是最早作为电视节目的播放软件。播放界面简洁、支持MPG、MOV、VOB和MP3
13、等格式文件。在国内,音乐播放软件也在不断发展,特别是在移动设备领域,各种基于移动操作系统的音乐播放软件日趋流行。比如,网易云音乐、QQ音乐、酷狗音乐、多米音乐、虾米音乐等,各类播放软件如雨后春笋,不断蔓延到人们生活当中。通过调研发现,这些手机APP能够播放本音乐,并提供丰富的在音乐,还能够将喜欢的音乐收藏到云端。 随着Android操作系统的迅猛发展,它已经成为全球范围内最具有影响力的操作系统之一。Android操纵系统不仅仅用于只能手机,它还能用于平板电脑、电视、电子手表、数码相机等移动设备,未来还可能覆盖更多的领域。因此,Android操作系统将会有很大的发展空间。在智能手机高度普及的今天
14、,Android操作系统作为一款免费开源的系统,占据着智能手机操作系统的半壁江山。如今,智能手机的功能不仅仅局限于打电话、发短信等基本的通信功能,还具有丰富多次的娱乐功能,如听音乐、看电影、浏览新闻、网上购物等。人们对于智能手机的功能需求也越来越强烈。因此,Android应用开发势必会成为一个炙手可热的领域。作为软件工程的一个分支,Android应用程序开发也越来越受到人们的关注。在如今的移动互联网时代,智能手机已经成为人们生活中不可缺少的部分。Android操作系统正在不断改变人们的生活。本应用系统是一款基于Android智能手机平台的音乐播放器,旨在为人们提供一个简单、方便的能够在Andr
15、oid智能手机上播放音乐的应用,让人们随时随地都能享受音乐的乐趣。在Android操作系统如此普及的今天,开发一款基于Android平台的音乐播放软件,可以为更多的人带来随时随地享受音乐的便利。同时,开发一款用户量大的产品也能带来技术上的挑战和提升。1.2 课题研究内容课题主要研究基于Android平台的音乐播放器的设计实现,采用B/S架构,服务端使用Python编写,客户端使用Java语言,基于Android平台进行开发。研究的主要内容有:1) Android应用SQLite数据库的使用;2) 网络API的使用与实现方法;3) Android SDK的使用;4) 第三方库的使用;5) 系统界
16、面的设计;6) 自定义View的实现方法;7) 应用UML的设计;8) 音乐播放处理逻辑的设计这里整合成两段话,不要分这么多段。另外,这里篇幅不够,至少增加两倍内容1.3 课题研究意义自古至今,音乐都是一种修养身心、陶冶情操的娱乐方式,它可以调节枯燥紧张的生活,使人们精神愉悦,有益于人们的身体健康。它是反映人类生活情感的一类艺术,是人们的精神食粮,对于人们生活质量的提高有着不可或缺的地位。以前,人们欣赏音乐的主要方式为广播、收音机、CD、等。但这些方式或多或少的都有一些局限性。比如广播、电视和收音机等,我们是被动的接受,很难主动根据自己的喜好选择自己喜欢的音乐。而CD、黑胶唱片等方式又过于昂贵
17、,不适合大部分人们对于听歌的需求。如今,随着移动互联网的出现和只能手机的普及,一种新的听歌方式出现了。人们只需要在自己的智能手机上安装一个播放音乐的APP,就可以随时随地听歌了。我们可以在网络上寻找自己喜欢的音乐,还可以将它们下载到本地,即使在没有网络环境的情况下也可以听歌,享受音乐的美妙。人们的生活节奏日益加快,用于休息和娱乐的时间越来越少,用移动设备随时随地听歌,能最大地利用人们的碎片时间,在繁忙之余听听歌放松一下,是一种很好的娱乐方式。1.4 章节组织结构第1章,绪论。概括了论文的研究背景,课题主要研究内容以及课题的意义和对论文结构的介绍。第2章,开发背景。主要介绍了此应用系统主要使用的
18、技术,为之后的需求和程序实现做好准备。第3章,需求分析。从经济可行性、操作可行性、技术可行性等各个方面对应用程序开发的可行性进行分析,保证应用程序能够正常完成开发。第4章,系统设计。从宏观角度介绍系统的界面设计和功能设计,讨论系统的设计思想,通过相关流程图和类图进行描述和说明。第5章,系统实现。对系统的关键部分进行阐述,并借助相关的效果截图、关键代码和活动图进行描述和说明。第6章,系统测试。介绍测试的概念,并组织测试用例,对系统进行测试,保证系统的稳定性和健壮性。最后,对论文进行了总结和思考,列出了主要的参考文献,以及对导师和同学的致谢。第2章 技术背景2.1 Android应用系统介绍And
19、roid是全球最流行的用于移动设备和平板电脑的操作系统。它是一个开源的、基于Linux内核设计的操作系统,由谷歌创建的。Android 提供了一个内容丰富的应用框架,支持开发者使用 Java 语言为移动设备开发应用和游戏。Android完全开源,且该平台从底层操作系统到上层的用户界面和应用程序都不存在任何阻碍产业创新的专有权障碍。同时开源的最大好处是,使得Android平台会拥有越来越壮大的开发者队伍,并且随着用户与应用的日益丰富,必然会使得Android这个崭新的平台走向成熟与稳定。Android操作系统应用广泛,HTC、三星、摩托罗拉、LG、索爱、华硕、宏碁、华为、中兴、夏普、联想、魅族等
20、数百家巨头推出了基于Android操作系统的智能手机或平板电脑。2.1.1 Android系统架构Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,参见图2.1所示:图2.1 Android系统架构图Android系统各层介绍如下:1) 应用程序层Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是 用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更
21、加灵活和个性化。2) 应用程序框架层应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。Android应用程序框架图参见图2.2。图2.2 Android应用程序框架图3) 系统运行库层系统运行库层可以分成两部分,分别是系统库和Android运行时。系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvi
22、k虚拟机两部分。核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核 图2.3 Android标准库图心API,如android.os、android.media等等。Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化 以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编
23、译后的字节码,而是通过转换工具dx将Java字节码转成dex格 式的中间码。Andriod标准库图参见图2.3。4) Linux内核层Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。2.1.2 Android基本组件Android四大基本组件分别是Activity(活动),Service(服务),ContentProvider(内容提供者),BroadCastReceiver(广播接收器)。如表2.1。表2.1 Androdid四大组件组件描述Activity展示UI并处理用户与屏幕的交互Service处理与应用
24、相关的后台服务BroadCastReceiver处理操作系统和应用程序之间的通信ContentProvider处理数据和数据库管理问题1) Activity可以理解成应用程序的显示层,一个Activity就是一个显示界面,它拥有自己的生命周期,开发者可以在不同的生命周期中去完成不同的事情,防止内存泄露。对于不同界面的跳转也就是意味着不同Activity的跳转,通过Intent来作为信使实现,在Activity显示的视图中,View是具有层级关系的。开发者可以通过视图管理器去维护自己的视图,或者去管理触摸事件。2) Service相较于Activity,Service是没有视图界面的。通常Ser
25、vice一直处于后台情况允许,在内存不足的时候可能会被系统kill掉。Service用来做一些不需要用户界面但又需要进行数据处理的事情,比如后台进行网络联网下载,音乐播放器的后台播放,控制音乐的音量、上一首和下一首等等。Service只是一个载体,提供接口使用处理的数据,对于耗时的任务需要开启新的线程去执行;3) ContentProvider 即内容提供者。作为在Android系统中数据共享的实现,用户可以访问提供ContentProvider支持的应用的私有数据。使用ContentResolver便可以访问ContentProvider,随之进行增删改查。开发者也可以实现自己应用程序的Co
26、ntentProvider,制定一定的标准允许其他应用使用自己应用的私有数据;4) BroadcastReceiver即广播接收者。在Android系统中存在着各种各样事件的广播,开发者可以使用广播接受者去响应想要处理的广播事件,同时用户也可以去创建自定义的广播,并根据需求设置优先级发送出去,然后在特定的位置使用广播接收器去处理相关事件。2.2 Android应用开发环境介绍Android开发环境主要分两种,一种是框架层的,另外一种是应用层的。对于框架层的开发,以C+语言为主,根据需求定制驱动和具体框架层部分源码的阅读与修改,以达到需求。而更多的是在应用层的开发,也就是我们接触到的最多的APP
27、开发。这一层的开发语言可以使用Java也可以使用C/C+语言,前者Android开发我们称做JDK(Java Development Kit)开发,后者开发我们称之为NDK(Native Development Kit)开发。但是大多数情况下都会使用Java语言进行开发,而且加上Java跨平台的特性,使得Android开发环境变得相当容易11。目前传统的IDE环境还是以eclipse为主,但Google在去年IO大会上已经说明不再支持ADT的更新,转而主推基于IntelliJ IDEA,使用Gradle进行构建管理的AndroidStudio IDE,目前已更新到1.2稳定版。在这里,我们也是
28、使用全新的AndroidStudio 1.2版本进行开发的。2.2.1 AndroidStudio集成开发环境Android Studio是一个基于IntelliJ IDEA、类似Eclipse ADT的全新Android开发环境。目前Google已迎来了2.0稳定版本,通过之前多个测试版本的改进,各方面性能也大幅度提升,使用起来对于低配PC用户也没那么卡了,不过该版本也有很多值得关注的地方。比如智能代码编辑、用户界面设计、性能分析工具等。同时,该版本同时将SDK版本升级到22,使用Gradle进行构建管理,极大地提高了构建工程的灵活性,既可以局部构建所需要的部分,也可以整个工程构建。主要特点
29、有:1) 智能代码编辑,囊括了eclipse所具有的代码编辑特性,并在此基础上更加智能方便;2) 国际化编辑,AS能够很方便的提取和管理硬编码字符,在资源国际化方面,比eclipse方便多了;3) 用户界面设计,通过多设备屏幕的效果预览,实时编辑实时预览,能够方面的进行UI界面设计和多分辨率适配;4) 性能分析,内存和CPU监控可以实时看到调试机型的具体进程的运行情况和资源消耗情况,根据结果适当调优性能。2.2.1 Gradle自动化建构工具Gradle是一个开源的项目自动化建构工具。它与Maven不一样,它是一种基于特定领域语言来进行项目声明和设置,并不是XML。目前其支持的语言主要有Gro
30、ovy、Java和Scala,以后回支持更多的语言。主要特性:1) Gradle擅长进行多工程的构建,工程依赖是Gradle的主要元素,同时Gradle也支持局部构建;2) 多方式依赖管理的支持:包括从maven远程仓库、ivy仓库以及本地文件系统的jars;3) Gradle是第一个构建集成工具,与ant、maven、ivy有良好的相容相关性;4) 易于迁移:Gradle适用于任何结构的工程。使用Gradle可以在同一个平台上同时构建原工程和其他工程,对于单元测试的编写也相当方便,基于插件的构建可以尽可能的减少破坏性,同时这也是重构的最佳实践;5) Gradle的整体结构是以语言为导向的,并
31、非是一个严格死板的框架。2.3 SQLite数据库介绍SQLite,是一款迷你型的数据库,甚至比微软的Access数据库更易于使用。它占用内存不到几百K,显得更适合在嵌入式设备做数据库存储,同时它也跨平台的,对于常用的Windows系统、MacOS系统都能够良好的支持,对于多语言的支持也做的非常不错,一般的面向对象语言比如Java、C+都能很好的兼容,比起那些重量级的如SQLSERVER等数据库,它的主要优点就是处理速度快。在Android项目中,Google也是推荐使用SQLite作为数据库进行CRUD的。加上它的开源特性,受到越来越多的人欢迎,同时也促进了SQLite数据库的进一步完善和发
32、展。2.3 JSON技术介绍JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON是一种与编程语言无关的数据格式,与XML语言类似,只不过JSON在格式上会显得易于可读和高校传输,同时具有各类编程语言的支持,一些共同的特性使JSON成为良好的数据交换格式,将来可能会取代XML。它不仅易于自然语言的阅读,同时在解析和生成速度方面较于XML也是更胜一筹Error! Reference source not found
33、.。JSON主要有下面两种格式,即对象和数组,描述起来和JavaScript语言和类似,使用这两种基本的结构就可以表述更多的复杂格式。?这种空行不要出现?2.5 本章小结本章对系统开发所需要的相关技术进行了介绍,主要包括Android系统架构、Android基本组件、AndroidStudio开发环境、SQLite数据库、JSON等。使读者对本应用系统的技术背景能够有一定的认识。第3章 需求分析3.1 可行性分析3.1.1 经济可行性传统的基于C/S架构的应用程序,需要稳定的服务端和良好的网络环境才能保证应用程序的良好运作。对于大型应用或者访问量大的应用程序,一般会独立建立机房,购买服务器和网
34、络带宽,需要较大的费用。对于小型应用或者访问量比较小的 应用程序,可以借助IDC网络托管服务,省去了自建机房繁杂的步骤,同时也能省掉一部分经费。目前,市场上已经有很多IaaS(基础设施即服务:Infrastructure as a Service)和PasS(平台即服务:Platform as a Service)等各种云计算基础设施软件厂商(如VMware、微软、IBM和HP等),可以提供服务器、网络带宽和云服务等各种服务。我们只需购买我们所需要的服务,就可以灵活地配置服务器和网络带宽等。经过对市场上的各种IaaS和PaaS进行调研,最终决定使用Heroku云平台服务。Heroku是一个Ra
35、ils主机托管解决方案,提供的是“无需准备的部署服务”,因为操作和扩展是自动的,无需任何系统管理。Heroku提供免费服务方案,且Heroku提供的免费方案可以满足此应用程序访问量和网络带宽。所以,在项目的初步阶段,服务器和网络带宽的费用几乎为零。所以,总体来看,系统在经济上是可行的。3.1.2 操作可行性目前,市场上已经有一些比较成熟的移动端影音播放软件,例如国外的QuickTime、Xmms、RealPlayer、Mplayer、Xmovie等。国内的网易云音乐、酷狗音乐、QQ音乐、虾米音乐、多米音乐等。这些音乐播放软件已经有很多的用户在使用。通过对市面上的一些音乐播放软件进行调研,发现音
36、乐播放器的UI、交互等大体相同,已经能被大众所接受。系统参考市面上几款比较流行的音乐播放器, 整理出了一套切实可行的实现方案,因此,在操作上具有可行性。内容在增加至少5行3.1.3 技术可行性系统采用C/S架构,服务端使用Python语言作为后台语言,并采用fkask框架。客户端使用基于Java语言和Android平台的应用程序。移动端采用Android平台的技术已经相当成熟了,而且有很多的开源库可供使用,没有大的技术瓶颈。Python入门简单,是一种轻量级的后台开发语言,适合小型的后台应用程序。Python开发效率高,比如,完成同样一个任务,C语言可能要写1000行代码,Java需要些100
37、行代码,而Python可能只要20行。采用Python开发,开发时间和人力至少可以减少25%。从技术方面考虑,目前的技术方案是可行的。3.2 功能结构说明应用系统的结构主要分为本地音乐和在线音乐。线上音乐资源存储在服务器,以不同的分类、不同的专辑等形式展现给用户,用户可以根据自己的喜好播放在线音乐。用户播放线上音乐需要联网,用户的客户端联网后,用户还可以把在线音乐下载到本地,在离线的时候也能够播放自己喜欢的音乐,而且不需要耗费网络流量。客户端可以扫描本地SD卡,根据条件筛选音频文件,以列表的方式展现。播放本地音乐不需要联网。参见图3.4。图3.1 音乐播放器功能结构图3.2.1 本地音乐模块分
38、析本地音乐是用户通过本应用程序或其他应用程序下载到本地SD卡的音乐文件,或者是通过外接USB导入的音乐文件资源。应用程序会扫描本地SD卡,筛选出本地符合条件的音乐文件,扫描过程会自动过滤音乐时长过小的音频文件。扫描完成后,应用程序会读取歌曲文件的名称、专辑、歌手、时长等,并根据专辑和歌手进行分类。本地歌曲通过3各列表展示本地音乐,第二个列表显示所有过滤后的本地音乐,第二个列表显示专辑列表,第三个列表显示歌手列表。用户可以通过选择对应的专辑和歌手来快速找到自己喜欢的歌曲。3.2.2 在线音乐模块分析在线音乐主要分为排行榜、热门单曲、猜你喜欢和歌单几个部分。排行榜是根据网络用户播放在线音乐的频次对
39、网络歌曲进行排名,热门单曲列出了网络上最近比较热门的单曲,猜你喜欢是根据用户的使用习惯和平时播放音乐的类型推荐给用户的歌曲。歌单是对歌曲进行分类,某个类型的音乐形成一个歌单列表。用户可以根据自己喜欢的歌曲类型进行选择。3.3 用例图说明3.3.2 用户用例图分析用户用例图展示了普通用户可以进行的操作,参见图3.4。主要包括以下操作:1) 播放歌曲。包括播放本地歌曲和在线歌曲,同时,还可以进行播放上一曲、播放下一曲和暂停等操作。2) 收藏歌曲。用户可以点击收藏按钮来收藏自己喜欢的歌曲。收藏的歌曲可以在我的收藏中方便的找到。3) 移除收藏的歌曲。用户不喜欢某个歌曲了可以从我的收藏中移除该歌曲。4)
40、 设置。用户可以对播放器进行一些设置,包括设置是否启用摇一摇切歌,是否插入耳机自动播放歌曲,是否拔出耳机自动暂停播放歌曲。?这种空行不要出现,后面此类问题很多,不一一指出,自己改好图3.2 音乐播放器功能结构图图用visio画,直接全选后粘贴过来,不要像你这样截图这幅图的“连接线”画错了,你的包含、扩展关系的线都不对用例部分缺少问题说明,至少提供3段,每段不少与5行的文字,将每个用例的主要事件流进行描述3.3.2 系统管理员用例图分析系统管理员用例图展示了系统管理员能够进行的操作。参见图3.4。主要包括以下操作:1) 登录管理系统。2) 设置歌曲分类。管理员可以自定义歌曲的分类,例如设置排行榜
41、、设置热门单曲、设置猜你喜欢、设置歌单等。3) 添加歌曲。管理员可以添加音乐资源到服务器。图3.3 音乐播放器功能结构图图用visio画,直接全选后粘贴过来,不要像你这样截图这幅图的“连接线”画错了,你的包含、扩展关系的线都不对用例部分缺少问题说明,至少提供3段,每段不少与5行的文字,将每个用例的主要事件流进行描述3.4 本章小结本章主要对整个系统的需求进行分析,包括经济上的可行性分析、功能上的可行性分析,以及技术上的可行性分析。并且结合功能结构图和用例图对需求进行比较详细的分析,为应用系统的顺利实现提供保障。第4章 系统设计4.1 用户界面设计4.1.1 用户界面结构介绍应用系统的主界面由三
42、个部分组成:顶部的TitleBar、中间的导航面板和底部的播放控制栏。整个界面简洁清爽,用户导向明确。参见图4.1。图4.1 主界面结构图这截图缩小些,能看清楚就OK,此外,截图中间这大段空白,想办法处理,否则答辩时会被老师认为是态度不认真,在凑字数最后注意,第4章是做设计,你这里确是最后实现的效果图,根本不应该出现在这一章节。反而你的第五章,应该每个功能配上实现效果图,以证明当前介绍功能确是实现了并能顺利运行,而没看到第五章有几张图?1) TitileBar。TitleBar是整个界面的标题栏,主要用于显示界面标题。左边是返回按钮,右边是搜索按钮和其他快捷操作按钮。2) 导航面板。中间的导航
43、面板主要显示音乐的分类,便于用户方便快捷地找到自己喜欢的音乐。3) 播放控制栏。控制栏可以对音乐的播放进行控制,有播放/暂停按钮、播放下一首按钮和菜单按钮,点击整个控制栏可以进入播放界面。4.1.2 用户界面跳转图应用程序主要由主界面、播放界面、搜索界面和设置界面组成。各界面跳转关系参见图4.2。图4.2 用户界面跳转图4.2 系统架构设计整节内容中,没有看到能体现你自己的系统架构的抽象图。去参考下李维的这里整个应用系统使用C/S架构,基于RESTfule规范进行开发。REST(Representational State Transfer)是一种软件架构风格,提供一组设计原则和约束条件,主要
44、用于客户端和服务端交互的软件。基于这个风格设计的软件可以更简洁,更有层侧,更易于实现缓存等机制。RESTfule基本架构图参见图4.3。RESTful可以通过一套统一的接口API为Web、iOS、和Android提供服务。网络上所有的资源都由URI(统一资源定位符)来定义,所谓“资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实体。这些实体资源都可以用一个URI来指向。客户端可以通过一套统一的API来访问网路上的资源。API就是客户端和服务器端通信的中间人,设计优美的API会让客户端和服务器端之间的通信更便捷、更灵活
45、。RESTful符合以下特点:1) 明确地使用HTTP方法;2) 无状态;3) 把URI组织成目录形式;4) 采用XML和JSON格式传递数据;图4.3 RESTfule架构图客户端采用MVP结构模型。View层用来显示UI界面,Model层构建数据模型,Presenter作为View与Model中间的纽带,处理与用户交互的逻辑。MVP整体结构图参见图4.4。图4.4 MVP结构图4.3 系统详细设计4.3.1 数据处理模块设计数据处理模块主要实现本地数据库扫描、保存数据到数据库等功能。与数据处理相关的类有MusicDBHelper、MusicScanner、CursorAdaper、Musi
46、cListFactory、SongList等。个各类之间的关系参见图4.5。图4.5数据处理模块类图图不是很清晰,用Visio画图,然后直接全选整个图粘贴到这里图的表达不对,类图结构都是“类名”、“属性”、“方法”,你这里全反过来了各个类功能如下:1) MusicDBHelper:数据库辅助类,主要用于创建数据库、更新数据库等操作,将音乐文件等存储到本地SD卡,实现永久性存储;2) MusicScanner:主要用于扫描本地SD卡中的音乐文件,并对外提供接口,使其他类能方便地获取本地音乐列表;3) MusicListFactory:歌曲列表工厂类,根据不同的使用场景生成不同的歌曲列表;4) S
47、ongList:扫描音乐文件后生成的音乐列表,关于歌曲列表的信息存储在此类;5) CursorAdapter:Cursor适配器,查询系统媒体库,将与音乐列表数据库关联的 Cursor 转换成 与系统媒体库关联的 Cursor;4.3.2 音乐管理模块设计音乐管理模块主要是对本地音乐进行分类和管理,比如将歌曲按照专辑、歌手等进行分类,管理收藏音乐等,生成相应的音乐列表。与音乐模块管理有关的类有MusicListManager、BaseSongList、MusicListFactory、RecentSongList、LocalSongList、CloudSongList、FavoriteSongList等。各个类中间的关系如图4.6。图4.6音乐模块类图图不是很清晰,用Visio画图,然后直接全选整个图粘贴到这里图的表达不对,类图结构都是“类名”、“属性”、“方法”,你这里全反过来了各类功能如下:1) MusicListManager:对歌曲列表进行管理,比如添加歌曲、移除歌曲、获取和修改列表等;2) MusicListFactory:音乐列表工厂,生成各种歌曲列表;3) BaseSongList:歌曲列表基类,存储歌曲列表的基本属性
链接地址:https://www.31ppt.com/p-2394346.html