




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 设 计院 系 专 业 题 目 安卓音乐播放器下载和设置模块的设计与实现 年 级 学 号 学生姓名 指导教师 职 称 论文提交日期 本科生毕业论文(设计)中文摘要毕业论文题目:安卓音乐播放器下载和设置模块的设计与实现 院系 专业 级本科生姓名: 指导教师(姓名、职称): 摘要:随着人们生活水平的提高,音乐作为生活需求之不可或缺的因素也已经深入到日常生活中的每个角落。人们不断追求着便捷地使用音乐来娱乐、放松自己,这大大促进了移动端媒体播放软件的发展。诸如QQ音乐、酷我音乐盒、天天动听、网易云音乐等音乐播放软件数不胜数。一款好的安卓音乐播放器不仅能够提供音乐播放功能,更应使用户贴心方便、随心所欲地进行操作。我们研究音乐播放器功能的实现,掌握开发其所需要技术,对更好地把握主流的市场需求、了解安卓软件的开发步骤很有帮助。本论文提供了一个C/S实现的安卓在线音乐播放系统来提供了一个移动端音乐播放的解决方案。本系统实现了音乐播放控制、SD卡扫描、搜索下载歌曲、系统设置、歌词显示等子功能模块。整个系统的开发包括了安卓端应用程序设计和后台代码两部分。本文旨在研究安卓音乐播放器,首先描述了安卓音乐播放器的背景和时下其技术研究发展的现状。再者,本文简要概述了本系统所运用到的相关软件和技术。本系统使用Java语言实现,服务器由Tomcat部署,后台使用SSH框架(Spring 3+Struts 2+Hibernate 3)搭建,Hibernate则实现了将数据库映射到Pojo,从而使系统能够方便地调用后台数据。再然后,本文结合实体关系图、用例图、系统功能模块图等对系统进行了系统功能需求和概要设计的分析。最后,文章介绍了系统中音乐下载和系统设置模块的详细设计与实现。本论文作者在该项目中负责音乐下载模块和系统设置模块的编写。承担的工作包括需求的获取,后台数据库的搭建,具体逻辑的实现等。关键词:安卓音乐播放器,歌曲下载,SSH 本科生毕业论文(设计)英文摘要THESIS: Design Of Android MP3 Players Download And Settings DEPARTMENT: SPECIALIZATION: UNDERGRADUATE: MENTOR: ABSTRACT: After silence, that which comes nearest to expressing the inexpressible is music, As Aldous Huxley says. With the improvement of peoples living standards, demand for music as an indispensable element of life has also been deep into every corner of peoples daily life. People keep pursuing the easy access to music for their entertainment, and to relax themselves, which greatly promoted the development of the mobile terminal media player app. Such as QQ music, Kuwo music, Netease cloud music after another, the competition is very fierce. A good android music player not only can provide music playback, but also should enable users to easily close the system, and freedom to operate. We study realizing music player functionality, and trying to master the development of the technology, to better grasp the mainstream market demand. Android is helpful to understand the software development process.This paper provides a C / S achieved Android music player system to offer solutions to a music player. The system realizes the music playback control, SD card scanning, searching and downloading songs, system settings, lyric display and so on sub-function modules. The whole development of the system includes the Android client application design and code on server behind two parts.For studying the Android music player, this paper first describes the background and nowadays the developing status of its technology research and development. Furthermore, this paper, the use of the system to a brief overview of the relevant technology. The server system is Internet-based, using Java language, and the server uses Tomcat deployment, the background using SSH framework (Spring 3 + Struts 2 + Hibernate 3), and the database uses Hibernate mapped to Pojo, making it easy to call the background data. Then again, this paper with user case diagram, entity relationship diagrams and so on, is analyzed by functional requirements and outline design. Finally, the article describes the detailed design and implementation of downloading music and system settings module.The author is responsible for music downloading module and system settings module in the project, including requirements of the work undertaken to acquire, build, background database specific logic implementation.KEY WORDS: Android Music Player, File Download, SSH目 录图目录VI表目录VII第一章 引言11.1 项目背景11.2 国内安卓音乐播放器技术研究现状11.3 论文的主要工作和组织结构2第二章 技术概述42.1 SSH技术42.1.1 Struts框架42.1.2 Spring框架52.1.3 Hibernate框架62.2 Android技术72.3 其他技术92.3.1 SVN版本控制技术92.3.2 SQLite数据技术92.3.3 Tomcat介绍102.3.4 Servlet介绍102.4 本章小结11第三章 安卓音乐播放器系统的需求分析与概要设计123.1 音乐播放器系统的整体概述123.2 音乐播放器系统的需求分析123.2.1 系统功能分析123.2.2 流程分析133.2.3 功能性需求分析143.3 项目的概要设计193.3.1 体系结构设计193.3.2 体系模块划分203.4 数据库设计21第四章 音乐下载和系统设置模块的详细设计与实现244.1 音乐下载模块244.1.1 下载模块概述244.1.2 下载模块的详细设计244.1.3 搜索的实现264.1.4 下载的实现284.2 系统设置模块294.2.1 系统设置模块概述294.2.2 系统设置模块的详细设计294.2.3 系统设置模块的实现314.3 本章小结33第五章 总结与展望345.1 总结345.2 展望34参考文献35致谢36图目录图2.1 Struts框架构成图5图2.2 Spring框架构成图6图2.3 Hibernate框架构成图7图2.4 Android框架8图3.1 Android音乐播放系统用例图13图3.2 Android音乐播放系统活动流程图14图3.3 Android音乐播放系统模块划分20图3.4 Android音乐播放器音乐下载模块框架结构图21图3.5 E-R图22图4.1 Android音乐播放系统的下载模块流程图25图4.2 Android音乐搜索的类图26图4.3 搜索歌曲的时序图27图4.4 MusicServlet类代码27图4.5 SearchMusicTask类代码28图4.6 Android音乐下载的类图29图4.7 DownloadMusicTask类代码30图4.8 Android扫描SD的类图31图4.9 ShakeDetector类代码31图4.10 MenuScanFragment 类代码32图4.11 Android扫描SD的类图32表目录表3.1 播放音乐用例15表3.2 暂停播放用例15表3.3 停止播放用例15表3.4 上一首/下一首用例15表3.5 选择播放列表用例16表3.6 显示播放列表用例16表3.7 列表中的播放歌曲用例16表3.8 设定播放模式用例16表3.9 歌词显示用例17表3.10 歌词下载用例17表3.11 搜索歌曲用例17表3.12 下载歌曲用例18表3.13 播放模式用例18表3.14 摇一摇换歌用例18表3.15 系统休眠用例18表3.16 更换背景用例19表3.17 扫描SD卡用例19表3.18 music表结构2236第一章 引言 1.1 项目背景音乐是人们生活中必不可少的调味剂,有些人徜徉在音符的世界便能放松、娱乐自己,更有甚者将音乐视为自己的第二生命。在这个物欲横流的社会,音乐能让心灵保持一片净土,在人们心中也越发变的重要了。当今社会正处在网络时代,信息化的大潮无时无刻地不在席卷着全球,移动端也正以前所未有的速度迅速普及开来。根据专业研究分析,2011年中国国内移动端网民的规模为3.56亿人。到了2014年,移动网民的规模则达到约5.56亿人,较2011年增长了56.2%。保守预计2015年国内移动端网民的数量可能突破6亿人,届时移动网民的渗透率将达到91%10。庞大的移动端网民基数为移动互联网产品的发展提供了十分巨大的市场机遇,也为移动互联网进一步稳步的发展提供了保障。现如今市场上三大主流的手机操作系统-Windows Phone,IOS,以及谷歌的Android系统,其中Android以其开放源代码、庞大的用户群众等优势在信息化、网络化过程中占有重要的地位,并有着巨大发展前景。而就移动端软件而言,在各类软件应用的使用率排行分析中音乐播放类应用以77.2%的使用率名列第四,在所有休闲娱乐类软件中遥遥领先,排在第一位9。由此可见,网民在移动互联网上除了基本的交互和资讯获取等需求外,对于音乐的需求较高。结合移动端用户的发展趋势及网民对音乐的强需求,设计开发一款安卓音乐播放器对互联网移动开发来说十分关键,这也正是本文和本系的意义所在。目前很多巨头企业都开发了自己相对应的安卓音乐播放软件。诸如腾讯、网易都在不断推广其企业移动音乐播放器系统,从而实现自己的战略目标,抢占更大的市场份额。本文所述系统正是一个实现了基于Android手机平台的音乐播放器系统,能独立运行于Android系统中。本项目旨在开发出实现了基本功能的安卓音乐播放器系统。按照时下热门音乐播放软件的需求,开发一整套界面优美、功能完备的音乐软件,使用户可以使用本系统方便自由地享受音乐、享受生活。1.2 国内安卓音乐播放器技术研究现状当前国内移动端音乐播放器层出不穷,数不胜数。根据调查结果显示。移动端音乐软件产品拥有的活跃用户排名前十的软件依次是:酷狗音乐、网易云音乐、QQ音乐、虾米音乐、唱吧、酷我音乐、天天动听、百度音乐和千千静听。不仅播放器软件数量众多、竞争激烈,实现的功能也是花样繁多,诸如摇一摇换歌、听歌识曲、电台荐歌、榜单排行、音乐评论、在线K歌、音乐发现等功能令人眼花缭乱。移动音乐的飞速发展,促成了包括QQ音乐、酷狗音乐、酷我音乐等在内的用户全覆盖型音乐软件的发展,也催生了网易云、虾米等在内的有较高用户针对性的产品的产生。天天动听和酷狗音乐作为全覆盖型软件,是移动端音乐软件的霸主。而随着用户需求的变更,网易云音乐之类具有高用户针对性的软件也后来居上,抢占了不少市场份额。就用户评分排行而言,虾米音乐以其优秀的人机交互、界面设计以及资源的丰富性获得较高的用户满意度。用户除了对音乐本身的质量要求外,主要的关注点就集中在了APP本身功能,尤其是音乐社交和音乐推荐功能。功能开发、使用习惯和界面设计也正是当前主流移动端音乐软件的设计和研究方向。在这样火热的背景下,本人旨在研究移动端音乐播放器技术,这对我们而言可以更好的了解移动音乐的市场需求和整个项目的开发流程,争取做到精益求精。相信这也为以后更人性化、更优美迷人软件的开发打下良好的基础。为了用户更方便地进行音乐的享受与交流,本人在SSH和JAVA技术的结合之下开发了这个友好、实用、界面整洁的在线音乐播放系统。本系统采用的客户端-服务器,即C/S结构来设计软件。这种设计思路具有安全性好,运行效率高,服务器端压力小,结构严谨等优秀的特点,被广泛运用于各种局域网中。1.3 论文的主要工作和组织结构本文主要介绍了Android在线音乐播放器系统设计的相关设计和实现,并对企用级别应用软件开发的理论知识进行了相关描述。系统的开发严格按照软件项目开发的流程来进行,对于在线音乐播放系统开发的技术使用、概要设计、需求分析、详细设计和实现本文中都有详细的论述和实现过程。本文尤其对Android在线MP3播放器的音乐下载和部分系统设置功能的模块的详细设计部分进行详细分析,这也是本文作者在该项目中的主要负责模块。论文组织结构如下:第一章:安卓音乐播放系统的概述和前言部分,主要是简述项目背景和分工,并描述论文的主要工作。第二章:系统所用相关技术的理论知识介绍,主要是SSH框架、Android系统以及其它涉及到的软件技术的概述。第三章:从系统的需求分析和概要设计两个方面,描述基于Android的音乐播放器的实现,对整个系统的功能性、非功能性需求和数据库进行了分析与总结。第四章:从详细设计角度,利用用例图、流程图等对系统中音乐下载和系统友好性设置模块进行了详细设计和实现的描述。第五章:总结该项目已经实现的特色和功能点,探讨项目的不足之处,并展望未来安卓音乐播放器系统的可扩展性、未来发展趋势和发展方向。第二章 技术概述2.1 SSH技术SSH 代表着Struts + Spring + Hibernate的集成框架,是一种目前较为流行的Web应用程序开源框架。系统集成SSH框架从职责上可以分为这四层:业务逻辑层、表示层、数据持久层和域模块层,以达到帮助开发人员在短期内搭建出可复用性好、维护方便、结构清晰的Web应用程序的目的2。其中,系统使用Struts作为整体基础架构,来负责MVC的分离。Struts框架的模型部分实现了控制业务跳转,再利用Hibernate框架对持久层提供相应支持,Spring则是起到管理struts和hibernate的作用。具体的做法是:根据需求用面向对象的分析方法设计出模型,将这些模型实现成基本的Java对象,然后再编写基本的DAO(Data Access Objects)接口,以及给出Hibernate的DAO实现,再采用Hibernate架构实现的DAO类来实现数据库与Java类之间的访问和转换,最后由Spring做相应的管理,管理Hibernate和Struts。在SSH框架中,Struts的作用是提供出一个MVC模型,将界面、数据和业务逻辑分离,从而提供了一个高可扩展的架构。Spring作为整个框架的核心,向上整合了MVC框架,向下整合了ORM框架。在使用Spring的IoC容器来管理各个组件之间的依赖关系时,Spring的声明事务将负责处理逻辑层组件的事务管理。而Hibernate则是提供了一个抽象数据服务,能够对用户访问数据库进行高度抽象的视图。2.1.1 Struts框架Struts是Jakarta Apache的一个开源项目,是目前创建Web应用最常见的表现层的MVC框架实现,它提供了对开发MVC系统的底层支持。利用定制标签库和控制器,基于Model 2的Struts框架能够实现应用中的模型和视图的分离,从而达到系统层与层间松散的耦合效果,同时也提高了系统的重用性、灵活性和维护性3。作为一个开源的项目,Struts经受了大量的实践检验,体系日臻完善,功能也越来越强大,并且对其他框架和技术显示出了良好的融合性。它采用的主要技术是JSP,Servlet和Custom tag library。其基本构成如图2.1所示。图2.1 Struts框架构成图Struts框架的优点有如下四点:(1)实现了MVC模式,结构层次清晰明确,开发人员只需要关注的是业务逻辑的实现。(2)Struts提供了丰富的拦截器实现。(3)丰富的标签库,大大节省时间,提高了开发的效率。(4)开发人员可以通过配置文件就能掌握整个系统各个部分之间的关系。2.1.2 Spring框架Spring是为解决企业应用开发的复杂性而由Rod Johnson所创建的。它的用途包括但不仅限于服务器端的开发。任何Java应用从简单性、可测试性和松耦合的角度来说都是能够从Spring中受益的。简单说来,Spring是一个轻量级的面向切面(AOP)和控制反转(IoC)的容器框架。Spring框架如图2-2所示。图2.2 Spring框架构成图Spring框架的优点有如下五点:(1)无入侵性(在业务逻辑的代码里使人感觉不到Spring框架的存在)。(2)无需开发人员自己实现singleton模式。(3)各组件之间的耦合很松散。(4)能够整合其他框架,如Hibernate框架和Struts框架。(5)通过AOP(面向切面编程),可以实现日志管理和事务管理。2.1.3 Hibernate框架Hibernate对JDBC 进行了轻量级的对象封装,是一种开放源代码的对象关系映射框架。它使得Java程序员能够随意地使用面向对象的编程思想来操纵数据库。一般而言,Hibernate都可以应用在任何使用JDBC的场合,它既能够在Servlet/JSP的Web应用中使用,也能够在Java的客户端程序中使用。最加突出的是,Hibernate能够在应用EJB的J2EE架构中取CMP而代之,以实现数据的持久化,这是具有革命意义的4。Hibernate框架的构成如图2-3所示。图2.3 Hibernate框架构成图Hibernate框架(ORM框架)的优点有如下四点:(1)对象/关系数据库映射使用时开发人员只需要操纵对象,使整个开发过程体现了面向对象的思想。(2)简洁的HQL语句,减少了SQL与JDBC操作数据库的代码量。(3)无入侵性。(4)移植性好。2.2 Android技术Android是由Google和开放手机联盟OHA开发的一个针对移动设备的软件平台和操作系统。据说Android系统之父安迪鲁宾(Andy Rubin)是效仿Linus Torvalds命名Linux系统的方式来给Android 系统命名的Android于2007年11月5日开放手机联盟成立时发布5。Android一词的本义指“机器人”,同时也代表了一个开源的基于Linux平台的手机操作系统的,该平台由操作系统、用户界面、中间件和应用软件组成,号称是首个真正为移动终端打造的完整、开放的移动软件1。Android是基于Linux内核的,源代码开放,且遵从Apache Software License(ASL) 2.0版本的协议。Android容许使用Java语言来开发和管理代码。Android的特点有如下几点:(1)应用框架可以重复使用,其组建也能够更换。(2)优化的图形能力支持2D、3D图形(OpenGL ES 1.0)。(3)SQLite作为结构化数据存储。(4)GSM Telephony (hardware dependent)。(5)Dalvik虚拟机针对移动设备进行了优化。(6)支持蓝牙Bluetooth,3G和Wifi。(7)丰富的开发环境。包括模拟机、内存运行监测、为Eclipse IDE所写的插件,以及调试工具等。(8)多媒体支持多种音频、视频格式。(9)支持照相机、GPS、加速度仪和指南针等传感器硬件6。图2.4 Android框架Android操作系统的系统架构像一个多层蛋糕,在移动设备的硬件和用户间是Android Software Stack,可分成很多层7。Android框架如图2.4所示。2.3 其他技术2.3.1 SVN版本控制技术SVN是一个开源的版本控制系统,简称为Subversion。相较于同类的CVS、RCS而言,它采用的是分支管理系统。本论文所涉及的项目中是通过运用Eclipse的SVN插件Subclipse,以及在局域网中的服务器实现项目组间代码的版本控制。SVN提供了包括版本分支、解决冲突和日志记录等强大的版本控制功能。SVN服务器有两种运行方式:借助Apache运行和搭建独立服务器。本论文所涉及的项目选择的是Apache。SVN有逻辑明确、管理方便、逻辑简单易懂、代码一致性高、安全性高、适合开发人数不多的项目组版本控制等许多优点,因而成为了一款主流的软件配置管理软件。当然,它也不可避免地存在一些问题。如果使用SVN来实现版本控制,同时会给服务器带来压力,系统对数据库容量的要求也相应变大 11。本论文所设计的系统使用的版本控制软件是开源的Tortoise SVN。Tortoise SVN是一款自由的、功能完善、直接集成了Windows Shell的开源SVN客户端软件,用户可以直接从Windows资源管理器中对其进行访问。通过Tortoise SVN开发人员可以达到分别跟踪各个项目,或者与任何基于单机或Web服务系统集成的目的。2.3.2 SQLite数据技术SQLite是一款遵守ACID的关联式数据库管理系统,它由D.Richard Hipp用C语言编写,是开源嵌入式的轻型数据库引擎。它占用的资源非常低,在嵌入式设备中可能几百K的内存就已足够。SQLite能够支持Windows/Unix/Linux等主流操作系统,同时它也能够跟很多的程序语言相结合,比如Tcl、Java、C#、PHP等。另外,SQLite的处理速度与PostgreSQL、MySQL这两款著名的数据库管理系统相比速度也更快。SQLite是目前世界上使用最广泛的免费数据库引擎,它是Android操作系统内置的数据库系统,在执行效率上超过目前常用的数据库系统8。在Android系统中为我们提供了一个名为SQLiteOpenHelper的抽象类。该类必须被继承后才能使用,主要是用于对数据库的管理。2.3.3 Tomcat介绍Tomcat是Apache的一个核心项目,是一个免费的开放源码的Web应用服务器。它属于轻量级的应用服务器,在中小型系统以及并发访问的用户量不多的场合下被较普遍的使用,也是开发和调试JSP程序的首选6。其中Tomcat的十大技巧尤为突出,分别是:配置系统管理、配置应用管理、部署应用、配置虚拟主机、配置基础验证、配置单点登录、用户定制目录。在Tomcat中有三种静态部署Java Web应用程序的方式:(1) 利用Tomcat自动部署。将服务器端应用文件夹目录拷贝到$CATALINA_BASE/webapps下,Tomcat启动时将自动加载应用。(2) 修改Server.xml文件部署。在Context标签中将其中的docBase指向应用文件夹的路径即可。(3) 增加自定义web部署文件。在$CATALINA_HOME/conf/Catalina/locaohost中添加一个docBase指向应用文件夹路径的xml。2.3.4 Servlet介绍Servlet这个词是在Java applet的环境中创造出来的,它是指在服务器上运行的小程序。服务器上往往在需要一些诸如根据用户输入访问数据库之类的程序时,通常是利用公共网关接口(CGI)应用程序。在通信量较大的服务器上Java Servlet的执行速度更快于CGI程序,这是Servlet的一个显著优点。Servlet 的主要功能在于修改数据和交互式浏览,从而生成动态Web内容。这个过程可分为这四步:(1)客户端发送请求至到服务器端。(2)服务器将请求信息发送到Servlet。(3)Servlet生成响应内容并将响应内容传给服务器。响应内容常常取决于客户端的请求,是动态生成的。(4)服务器将响应的信息返回给客户端。2.4 本章小结本章对安卓音乐播放器系统中运用到的关键技术进行了概要介绍,对相关技术的特点、优势以及在项目中的使用情况。系统主要涉及了Spring框架、Struts 2框架、Hibernate框架、SVN技术、Tomcat软件、Servlet技术以及MySQL和SQLite数据库。结合SSH框架技术开发基于Android平台的软件应用,保证了项目结构清晰,具有良好的可扩展性,能够较为有效地利用结构成熟的J2EE开发平台。SVN技术保证了团队代码的一致性和无冲突,实现了版本的友好控制,同时加深对企业级软件应用开发的理解与掌握,对今后个人软件开发技术的成熟完备相当有益。另外,使用技术先进、性能稳定的轻量级应用服务器Tomcat,也相当大程度减轻了系统测试调试的压力。第三章 安卓音乐播放器系统的需求分析与概要设计3.1 音乐播放器系统的整体概述移动端音乐播放技术在不断的发展变化,用户对音乐播放器的要求也在水涨船高。早期的音乐播放器只提供了最基本的音乐播放功能,用户满足于能够在线听歌就可以了。后来开始追加音乐评论、发现音乐等功能。在激烈的市场竞争中,众多的互联网巨头企业纷纷追加各种功能,简化完善系统界面,以提升自身产品的市场竞争力。更有的互联网公司专门开发面向因此,当下移动音乐播放器系统不仅包含了基本的音乐播放功能,还多出系统友好性、人机交互的相关设计等等。本系统中实现的音乐播放控制、歌词显示、音量调节、下载歌曲、系统设置这几个子功能模块,也正体现了这一点。另外,本系统服务器端有负责提供音乐文件上传的服务器页面,作用是讲本地音乐文件上传添加到服务器以供用户在安卓端搜索下载。主要使用了JSP技术进行编写。3.2 音乐播放器系统的需求分析3.2.1 系统功能分析本系统中只涉及一个用户角色,即移动互联网网民。用户具备的基本特征有三点:对移动端音乐有所需求、掌握最基本的安卓手机的操作、接受手机连接互联网网络,以及可能带来的运营商收费。面向此用户角色,本系统的功能总体而言主要包括本地歌曲播放控制、服务器音乐下载、系统设置、歌词显示这几个方面。用例图如图3.1所示。图3.1 Android音乐播放系统用例图其中每个方面又分为若干个子功能,比如本人负责的音乐下载模块包括服务器音乐模糊搜索、音乐精准搜索、音乐下载;本人负责的另一个系统设置模块则包括了扫描SD卡、系统休眠、系统换肤等功能。3.2.2 流程分析结合系统的功能模块,现设计本系统的全部流程如下:用户打开软件,可以选择歌曲列表、音乐下载、系统设置、歌手列表、最爱歌曲列表等按钮,选择指定按钮即打开相应的软件功能。用户点击歌曲列表,系统以列表形式将本地歌曲显示到界面上;用户点击音乐下载,输入目标歌曲后点击即可以下载指定歌曲;用户点击最爱歌曲,系统显示本地歌曲列表中用户的最爱;用户打开系统设置的侧滑界面,可以进行相关的系统设置,如摇一摇切歌、SD卡扫描等、系统休眠等;在设置内,用户可以点击退出按钮,从而退出整个系统;用户可以点击扫描SD卡,然后点击开始按钮将SD卡中符合条件的音乐文件加入到本地歌曲数据库中,并显示在歌曲列表中。整个系统的流程图如图3.2所示。图3.2 Android音乐播放系统活动流程图3.2.3 功能性需求分析通过分析项目的活动流程图,我们往往能够获得该音乐播放器项目的功能性需求。本音乐播放系统的整体功能需求主要可分为这四部分,即播放器的基本控制模块、歌词显示模块、下载歌曲模块和系统设置模块。以下从用例分析的角度分别对这些功能需求进行分析:1.播放器的基本控制模块播放器的播放控制模块主要分播放音乐、暂停播放、停止播放、上一首/下一首、选择播放列表、显示播放列表、列表中播放歌曲、播放模式设置这八个用例。用例的分析如表3.13.5所示。表3.1 播放音乐用例用例名称:播放音乐参与者:用户目标:用户可以播放列表中选中的歌曲前置条件:播放器正在运行状态基本事件流: 1.用户点击“播放”按钮; 2.播放器将播放信息和歌曲发送到后台; 3.播放器播放歌曲。表3.2 暂停播放用例用例名称:暂停播放参与者:用户目标:用户可以暂停歌曲的播放前置条件:歌曲正在播放状态并且未暂停或停止基本事件流: 1.用户点击“暂停”按钮; 2.播放器将当前歌曲播放的信息发送到播放的Service中; 3.播放器暂停歌曲的播放,并记录播放信息。表3.3 停止播放用例用例名称:停止播放参与者:用户目标:用户可以停止歌曲的播放前置条件:歌曲处于暂停或播放状态基本事件流: 1.用户点击“停止”按钮; 2.播放器将歌曲停止播放的信息发送后台; 3.播放器停止当前歌曲的播放。表3.4 上一首/下一首用例用例名称:上一首/下一首参与者:用户目标:用户可以听播放列表的上一首或下一首歌前置条件:播放列表中有两首或以上歌曲基本事件流: 1.用户点击“上一首”或者“下一首”按钮 2.播放器停止当前歌曲的播放,并开始播放列表中的上一首或下一首。表3.5 选择播放列表用例用例名称:选择播放列表参与者:用户目标:用户可以查看播放列表前置条件:程序处于运行状态基本事件流: 1.用户点击“播放列表”按钮; 2.播放器显示播放列表页面(歌曲继续播放)播放列表显示:用户点击播放列表,系统显示出列表内容。用户可以通过点击操作从而实现音乐的播放、播放模式的切换等控制的相关操作。具体用例分析如表3.63.8所示。表3.6 显示播放列表用例用例名称:显示播放列表参与者:用户目标:显示当前的播放列表前置条件:系统处于运行状态基本事件流: 1.用户点击“播放列表”按钮; 2.播放器跳转到当前的播放列表界面。表3.7 列表中的播放歌曲用例用例名称:播放歌曲参与者:用户目标:播放器播放选中的歌曲前置条件:当前程序处于运行状态基本事件流: 1.用户点击“播放”按钮; 2.播放器开始播放列表中的歌曲。表3.8 设定播放模式用例用例名称:设定播放模式参与者:用户目标:改变程序播放模式前置条件:当前程序处于运行状态基本事件流: 1.用户点击“播放模式”图标; 2.播放器修改歌曲的播放模式。2.歌词显示模块用户点击歌曲名来查看当前歌曲的歌词。若歌词已从网络下载到本地,则可以直接查看;否则用户点击下载歌词按钮,将歌词下载至本地,并显示到屏幕。用例分析如表3.9,3.10所示。表3.9 歌词显示用例用例名称:歌词显示参与者:用户目标:同步显示当前歌曲的歌词前置条件:系统正在播放音乐基本事件流: 1.用户点击当前正在播放的音乐名; 2.播放器跳转到当前的播放音乐的歌词界面。表3.10 歌词下载用例用例名称:歌词下载参与者:用户目标:从网络下载歌词到本地前置条件:系统正在播放音乐,且用户点击音乐名进入歌词界面基本事件流: 1.用户点击当前正在播放音乐的歌词界面; 2.用户在弹出的对话框中输入歌曲名和作者; 3.系统自动下载歌词到本地,并显示在界面上。3.下载歌曲模块用户点击在线下载按钮进入下载歌曲界面,输入目标歌曲然后点击确认提交,数据随后从服务器传来显示到屏幕。用户点击想下载的歌曲来打到目标。具体用例可分为搜索歌曲、下载歌曲两部分,如表3.11所示。表3.11 搜索歌曲用例用例名称:搜索歌曲参与者:用户目标:列出服务器上符合条件歌曲前置条件:系统处于运行状态基本事件流: 1.用户输入歌曲,点击搜索按钮; 2.系统显示搜索出的目标歌曲。表3.12 下载歌曲用例用例名称:下载歌曲参与者:用户目标:下载服务器目标歌曲前置条件:系统处于运行状态基本事件流: 1.用户点击搜索到的歌曲按钮; 2.播放器开始从服务器端下载歌曲。4.系统设置模块系统设置模块主要包括了系统的基本设置(摇一摇切歌、换肤、休眠、自动下载歌词等),当前播放列表的播放模式切换等。具体用例分析如表3.133.17所示。表3.13 播放模式用例用例名称:播放模式参与者:用户目标:程序能够修改设置播放模式前置条件:程序处于运行状态基本事件流: 1.用户点击“顺序播放”、“随机播放”和“单曲循环”按钮; 2.播放器系统进入所选中模式的播放状态。表3.14 摇一摇换歌用例用例名称:摇一摇换歌参与者:用户目标:摇动手机能使得播放器播放“下一首”歌曲前置条件:程序正在播放歌曲,且摇一摇换歌功能已打开基本事件流: 1.用户晃动手机,且幅度较大 2.播放器开始播放下一首表3.15 系统休眠用例用例名称:休眠参与者:用户目标:使程序N分钟后进入休眠状态(停止播放)前置条件:程序处于运行状态基本事件流: 1.用户点击“休眠”按钮; 2.播放器进入休眠倒计时,到时间系统自动退出。表3.16 更换背景用例用例名称:更换背景参与者:用户目标:使系统背景随用户喜好而变更前置条件:程序处于运行状态基本事件流: 1.用户点击“更换背景”按钮; 2.系统列出本地所含有的背景; 3.系统背景变成用户所选择的图片。用户在点击侧滑页面中点击扫描歌曲,然后点击开始扫描。系统将文件系统中扫描到的音乐文件(限制条件由用户自己设定,比如去除过小的音乐文件)添加到本地SQLite数据库中。具体用例如表3.17所示。表3.17 扫描SD卡用例用例名称:扫描SD卡参与者:用户目标:程序进入SD卡目录,将本地音乐文件加入系统的播放列表中前置条件:程序处于运行状态基本事件流: 1.用户点击“扫描SDcard”图标; 2.用户点击“开始扫描”按钮去; 3.播放器开始扫描SDcard文件,并将符合条件的歌曲文件加入播放列表。3.3 项目的概要设计 3.3.1 体系结构设计安卓音乐播放器系统基于client/server架构。前台采用了Android开发的相关技术,页面由Java编写,负责与用户之间进行的交互;服务器端采用了Spring,Hibernate与Struts 2框架编写,Struts 2框架控制请求响应,Spring框架负责各层次间的整合,由Hibernate这个对象关系映射框架来负责数据库中数据的存储与读取操作;前台向后台发送HTTP请求,后台在接收到请求后进行数据处理,返回相应格式的数据给前台。图3.4展示了安卓音乐播放器系统中本人负责的音乐下载模块的框架结构图。系统分为表示层,控制层、业务逻辑层、数据访问层、数据库。Android客户端的表示层主要通过若干Activity类来实现。Activity调用的网络方法实现了与服务器端的数据通信。Spring通过IoC容器实现对象间的依赖注入,将各层联系起来。安卓端发送过来的HTTP请求由Servlet处理并转发给相应的Service,处理完请求后将结果返回给安卓端。Service负责业务逻辑的实现,并实现与数据访问层的交互。数据访问层由DAO类借助Hibernate实现对MySQL数据库的访问操作。其中具体而言,com.dao包是实现数据库与Service之间的访问和转换的接口,而com.dao.Impl包是DAO层的具体实现,com.service.Impl是Service的具体实现,com.utils负责处理中文乱码的工具类,com.po则是系统的实体。3.3.2 体系模块划分图3.3表示了系统的模块划分。按功能分本论文所涉及到的系统可分为音乐播放模块、歌词显示模块和系统设置模块这四大模块。其中歌词显示模块需要音乐播放模块的支持。图3.3 Android音乐播放系统模块划分本论文只讨论音乐下载模块和系统设置模块的具体实现。从功能角度,音乐下载模块可以分为音乐搜索、音乐下载这两个功能点;系统设置模块可分为系统休眠、系统换肤、扫描SD卡、摇一摇切歌、系统退出这五个功能点。图3.4 Android音乐播放器音乐下载模块框架结构图3.4 数据库设计根据对移动端在线音乐播放器的分析,可以得出该系统涉及的实体为歌曲实体类。多个歌曲组成了歌曲列表,用户可以选择多个歌曲作为自己最爱歌曲。根据实体的属性可得出此音乐播放系统的E-R图,如图3.5所示。图3.5 E-R图表3.18描述了歌曲实体的数据库表设计,记录了歌曲信息。表名为music,主键为musicId,共包括7个字段。主要作用是保存服务器上歌曲的歌曲ID、歌曲名、歌曲文件大小、歌曲时长、作者、服务器端的存储路径、歌词路径。字段说明:musicId(歌曲ID),musicName(歌曲名),musicSize(歌曲文件大小),timeLenght(歌曲时长),author(作者),musicPath(歌曲路径),lyricsPath(歌词路径)。表3.18 music表结构属性数据类型允许空主键musicIdINTEGERNOT NULLPrimary keymusicNameVARCHARNULLmusicSizeDOUBLENULLtimeLengthINTEGERNULLauthorVARCHARNULLmusicPathVARCHARNULLlyricsPathVARCHARNULL3.5 本章小结本章主要从需求和整体设计两个角度对安卓音乐播放器的概要设计和需求分析进行了简单的分析和总结。需求分析基于用户,解释了系统开发的可行性,并分析了系统功能需求,提取出系统的主要功能点。而概要设计则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版购销合同协议书补充协议
- 2025年事业单位工勤技能-河北-河北计算机信息处理员五级初级历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北城管监察员二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西机械热加工五级(初级工)历年参考题库含答案解析(5套)
- 新解读《GB-T 36444-2018信息技术 开放系统互连 简化目录协议及服务》
- 2025年事业单位工勤技能-江苏-江苏检验员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广东-广东水利机械运行维护工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东家禽饲养员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东兽医防治员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽计算机操作员一级(高级技师)历年参考题库典型考点含答案解析
- 公共场所卫生知识培训材料
- 证据目录范本
- 标准档案盒脊背(格式已设置好)
- GB/T 21475-2008造船指示灯颜色
- 园林绿化工高级技师知识考试题库(附含答案)
- 安医大生殖医学课件04胚胎的培养
- 可下载打印的公司章程
- 关于推荐评审高级工程师专业技术职务的推荐意见报告
- Q∕GDW 10356-2020 三相智能电能表型式规范
- 教研工作手册
- CINV化疗相关呕吐课件
评论
0/150
提交评论