本科毕设论文-基于Android平台的点歌系统设计与实现_第1页
本科毕设论文-基于Android平台的点歌系统设计与实现_第2页
本科毕设论文-基于Android平台的点歌系统设计与实现_第3页
本科毕设论文-基于Android平台的点歌系统设计与实现_第4页
本科毕设论文-基于Android平台的点歌系统设计与实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Android平台的点歌系统设计与实现摘 要随着通信设备网络和计算机科学的不断发展,新一代的移动终端用户对移动设备的功能和性能有了更高的要求。因此,在移动终端开发出功能强大以及界面美观操作简易的手机应用程序具有广阔的市场前景。本文设计的点歌系统是基于Android平台而设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。Android平台以Linux系统作为平台的基础,使用Linux内核可以加快软件移植速度。目前适用于桌面操作系统的点歌系统发展较快,通常具有强大的音乐点播功能和友好的用户界面。而手机音乐点播器,由于其应用的特殊性,使其开发难度有所增加。 本文介绍了基于

2、Android平台应用程序开发的关键技术,对点歌系统做了详细的需求分析,并详细介绍了点歌系统的总体设计,包括架构设计、功能模块的划分、配置文件AndroidManifest.xml的设计。 本文通过对基于Android平台上点歌系统开发与实现的介绍,希望能为今后开发出功能更强大的移动设备多媒体播放软件提供有益的借鉴。该系统采用Android SDK,Eclipse作为开发工具。关键词:Android;点歌系统;音乐播放器摘要IAbstractII1绪论11.1课题背景11.2国内外手机操作系统应用开发情况11.3本文主要工作22 Android系统简介32.1 Android系统概述32.2

3、Android系统架构42.3 Android开发环境配置62.4 Android程序开发92.4.1 程序开发组件92.4.2 程序界面开发122.5 Android系统数据存储方式143 SQLite数据库143.1 SQLite主要语法153.1.1 结构新建153.1.2 结构删除153.1.3 数据操作153.1.4 事务处理163.2 SQLite内置函数163.3 SQLite常用操作173.3.1 数据库文件的打开和关闭173.3.2 数据库文件的查询184点歌系统的设计与实现214.1 系统功能设计224.1.1 数据库设计224.1.2 功能模块设计224.2 程序运行截图

4、285 总结与展望28参考文献30致谢301绪论1.1课题背景 随着社会的发展,经济水平的提高,手机越来越普及。据工信部统计数据,2014年一月底中国移动通讯用户达12.35亿,其中4.19亿(33.94%)为3G用户,8.38亿(67.80%)为移动互联网接入用户。同时伴随着移动互联网技术的发展,手机的功能也变得越来越丰富。从原来只具有简单通信功能的非智能手机到现在具有手机操作系统,除通话功能以外,还集上网、聊天、炒股、收发邮件等功能于一身的智能手机系统。基于Android平台应用程序的开发就更加具有市场价值智能手机具有五大特点:具有开放的操作系统,可以自由安装第三方应用,使系统功能得到无限

5、扩展;具有无线接入互联网的能力,即在GSM网络中需要支持GPRS,在CDMA网络中支持CDMA 1X或3G网络;具有PDA的功能,包括PIM(个人信息管理)、多媒体应用、浏览网页、日程记事等;功能强大,扩展性强,第三方支持多;人性化,可以根据个人需要扩展及其功能。随着Android平台的高速发展,Android平台下手机多媒体技术应用开发也越来越火。Android平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造力更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度

6、的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。Android平台以Linux系统作为平台的基础,使用Linux内核可以加快软件移植速度。目前适用于桌面操作系统的点歌系统发展较快,通常具有强大的音乐点播功能和友好的用户界面。而手机音乐点播器,由于其应用的特殊性,使其开发难度有所增加。1.2国内外手机操作系统应用开发情况 随着移动终端市场竞争的日趋激烈,越来越多的软件开发人员加入到手机操作系统应用软件的开发中来。能否快速满足用户的新需求,吸引新的用户群,寻求通信业务发展的新增值点,提供多样化、多层次化的业务,已成为各终端厂商在竞争中求生存、求发展的首要任务。目前全球比较流行的

7、移动操作系统平台有苹果公司的IOS、Google公司的Android、微软公司的Widows Mobile,诺基亚公司Symbian系统已逐渐被淘汰。目前大部分手机操作系统应用软件都是基于这几个操作系统平台之上开发的。 根据IDC2013年11月13日报告显示,谷歌的Android平台在全球智能手机出货量中的比例已经突破80,微软Windows Phone的出货量也增速惊人,苹果iOS和黑莓系统的市场份额则有所下降。IDC认为,Android之所以能够占据超过80的智能手机市场,主要是借助于其超高的“性价比”。虽然Android平台的手机价廉,但是其性能却一点也不低廉。Android平台简单实

8、用,无论是功能还是外观设计,都可以与苹果一决高下。 根据基于全球八大移动开发平台的调查,400多位开发者。从近年的数据来看,Android是最受欢迎的平台,有近70%的受访开发者最近从事过Android相关开发。从上述调查情况可以看出,Android操作系统是目前最火、前景最被看好的手机操作系统,因此,开发Android应用软件具有很好的市场价值。 目前市场上的音乐点播器一般都是在Windows或Linux下的的产品,对它们的使用,都需要承担一定的商业费用或签署相关的附加协议。而主流的嵌入式播放器都是基于WindowsCE或嵌入式Linux平台,因而其体积普遍教大, 而且对硬件设备要求较高。因

9、而开发出一个功能实用,运行速度快,占用空间小,对硬件设备要求较低,基于开源项目的手机音乐点播器就成为本次设计的出发点,也正是Android平台开发价值所在。1.3本文主要工作本文首先介绍了Android操作系统的四层架构及基于Android系统的应用程序开发方法。接下来以点歌系统的研发过程为例,详细阐述了开发Android系统应用程序的具体过程。本课题具体实现以下功能: 1)数据库设计; 2)能够添加、删除、查看歌曲的相关信息; 3)能对歌曲进行点播、编辑等相关操作; 4)设置不同的查询条件:名称、作曲、出版时间等。2 Android系统简介2.1 Android系统概述 Android一词本

10、意是指“机器人”,是Google公司推出的开源手机操作系统作为Google移动互联网战略的重要组成部分,Android操作系统借助于Google这个强大的推手和开放手机联盟的支持,由默默无闻变得备受瞩目,各种各样基于Android系统的设备相继问世。虽然Android系统从推出到现在不过短短几年时间,但作为移动终端设备操作系统中的重量级一员,它的影响力越来越大,吸引了越来越多的开发者、设备生产商和软件开发商等加入。作为一个推出不久的移动终端开发平台,为何会有如此强大的发展潜力和如此迅猛的发展速度,每个人都会有自己的答案。总结起来,可能包括以下几点: 1)系统的开源性和免费性:Android系统

11、是一个对第三方软件完全开放的平台,开发者在编写Android应用程序时具有更大的自由度。2)移动互联网的发展:Android采用WebKit浏览器引擎,与其它系统相比,更强调搜索功能,界面更强大,是一种融入全部Web应用的互联网络平台。3)相关厂商的大力支持:从组建开放手机联盟开始,Google一直向服务提供商、芯片厂商和手机销售商提供Android平台的技术支持,帮助他们开发出更好的Android设备。凡事都具有两面性,作为一个如此受欢迎的系统也不例外。Android系统也有自身的一些缺点,具体如下:1)技术需要进一步完善:每个系统都不是完美的,Android也不例外,系统自身的一些bug需

12、要进一步完善。尤其是Android系统作为一个开源的系统,面临的攻击会比其它封闭系统要多,这是Android系统要持续发展所必须解决的一个重要问题。2)开放手机联盟模式的挑战:Android由开放手机联盟开发、维护和完善,这种模式,是否会对Android未来的发展、定位起到阻碍作用,这些都不能下定论。3)其他技术的竞争:微软因为拥有PC操作系统市场最大的占有率,在未来手机与电脑互相联动并实现无缝对接方面Windows Mobile相比Android具有先天优势,此外,即使在智能终端自身的操作系统上,iOS系统也是Android的一个劲敌。这些都给Android系统的进一步发展带来了巨大挑战,如

13、果能很好的解决这些问题,也将会进一步促进系统的发展。2.2 Android系统架构Android系统采用了软件栈的设计结构,从上到下由四层组成,分别是Linux内核层、中间层、应用程序框架(Application Framework)和应用层(Applications)。如图2-1所示。图2-1 Android系统架构下面对每层进行具体的描述: (一)Linux内核:Android系统的内核在Linux2.6内核的基础上进行了相应的裁剪和改进,继承了Linux内核安全性、内存管理、进程管理、网络协议栈和驱动模型等。Linux内核同时也为硬件和软件之间提供了衔接,屏蔽了下层硬件的具体细节来为上层

14、提供服务。 (二)Android函数库:Android包含一个能被不同组件使用的C/C+库,这些库通过Android应用程序框架来为上层应用程序提供服务,下面是一些常用的核心库: 1)libc:系统C库,从BSD发展而来的标准C函数库,是专门为基于嵌入式Linux设备所定制的。 2)媒体库:基于PacketVideo OpenCORE,支持多种常用的音频、视频格式回访和录制,同时支持静态图像文件。 3)Surface Manager:管理显示子系统,为多个应用程序提供2D和3D图层的无缝融合。 4)SGL:底层的2D图形引擎。 5)3D libraries:基于OperGL ESI.OAPI实

15、现,可以使用硬件3D加速或高度优化的软件3D加速。 6)RreeType:位图和矢量字体显示。 7)SQLite:一个对所有应用程序可用的、功能强大的轻量级关系型数据库引擎。 (三)Android运行时:Android运行时环境由一个核心库(Core Libraries)和一个D alvik虚拟机组成,核心库为上层应用程序编程提供了Java语言核心库的大多数功能。Dalvik虚拟机是一个不同于其他标准虚拟机的虚拟系统,采用寄存器架构,能在一个设备中同时高效运行多个程序。它基于Linux内核的一些功能,如多线程机制和内存管理机制等。Dalvik虚拟机可以运行Android程序,这些程序需要使用d

16、x工具转换成.dex类型的可执行文件,该格式文件在大小方面往往比同样的.class文件压缩成的.jar文件更小,可以降低对内存的要求。 (四)应用程序框架:包含编写核心应用所使用的API接口,开发者可以使用这些接口来编写自己的应用程序,该程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,同时还可以使用其他程序发布的功能块(但是要遵循安全限制)。每个应用都会包括一系列的服务和系统,具体如下: 1)丰富而又可扩展的视图:构建应用程序时可以将这些视图进行各种组合来形成各式各样的应用程序界面。常用的视图包括:列表、网格、文本框、按钮和内嵌的浏览器等。 2)内容提供器:提供数据共享的

17、途径,如联系人数据库。 3)资源管理器:管理非代码资源,如字符串、图片和布局文件等并提供这些资源的访问方式。 4)通知管理器:帮助应用程序在状态栏中显示各自的提示信息,如收到短信 5)活动管理器:管理应用程序的生命周期,还提供导航或回退功能等。 (五)应用程序:包括电话、短信、口历、地图、浏览器、通讯录等核心应用程序。2.3 Android开发环境配置 由于Java语言具有强大的功能和与平台无关的特性,并且还具备强制类型安全,因此Google选择使用Java语言来开发Android系统下的应用程序。 Eclipse是一个开放源代码的、基于Java的且具有良好扩展性的开发平台。Eclipse本身

18、只是一个框架和一组服务,但是通过加入插件可以构建针对不同语言的开发环境,目前支持的主要开发语言有Java和C/C+。基于以上优点选择使用Eclipse来搭建Android程序的开发环境并详细介绍环境的配置过程。搭建Android开发环境有以下五个主要步骤:下载并安装JDK;下载并安装Eclipse;下载Android SDK;下载并安装ADT插件;配置Android AVD。 1)下载并安装JDK; JDK是Java SE Development Kit的简写,其中包括了Java运行环境、Java开发工具和一些Java核心类库等。在安装Eclipse之前,必须先下载和安装JDK。 JDK是由S

19、UN公司开发,因此要下载最新的JDK,只要登录SUN公司的官网,选择适合自己电脑的版本下载并按照提示安装即可,如图2-2所示。图2-2 下载安装JDK JDK安装完成后,还得配置相应的环境变量才能使用。环境变量的配置分为两部分,一是JAVA HOME变量的配置,二是CLASSPATH变量的配置,这两者的配置方法类似。2)下载并安装Eclipse;进入http://downloads/页面,选择合适的Eclipse版本下载,如图2-3所示。安装时注意选择合适的安装路径。图2-3 下载安装Eclipse 3)下载Android SDK;Android SDK是Andr

20、oid专用的软件开发包工具,包括程序开发中用到的函数库、编译程序等资源,是开发Android程序必备的工具之一。SDK的下载网址是http:/developer.A Location框中选择SDK的解压路径,点击Apply按钮,最后单击OK完成。如图2-4。图2-4 加载Android SDK4)下载并安装ADT插件; ADT是为方便Android应用而开发的插件,包含一系列强大的扩展功能,可以方便、快捷的创建、运行和调试Android程序。安装ADT的步骤如下:首先,打开Elicpse,选择Windows-Preference-Help-Software Updates然后选择Availab

21、le Software接着选择Add Sites,在弹出的地址框中输入http:/dl-5)配置Android AVD。 在Android SDK1.5版本以后的开发中,必须至少创建一个AVD来模拟一套虚拟设备运行Android应用程序。创建AVD有两种方式,一种是命令行方式,另一种是在Eclipse中创建,无论哪种方式,系统都会在默认文件路径下自动创建一个Android文件夹来保存与AVD有关的配置信息。这里只介绍在Eclipse中创建AVD的方法,步骤如下:打开Eclipse,单机Android小机器人打开Android SDK and AVD Manager;点击左侧面板的Virtual

22、 Devices,再点击右侧的New;填入Name,选择Target的API, SD Card大小任意;点击Create AVD即可完成AVD的创建。如图2-5。图2-5 配置AVD2.4 Android程序开发2.4.1 程序开发组件 一个Android应用程序通常由以下五个组件中的任意多个组成:活动(Activity )、意图(Intent )、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。 Activity负责应用程序的界面显示;Intent负责不同组件之间的交互;Service在后台运行,负责执行程序中比较费

23、时的任务;而Content Provider为不同的应用程序之间提供了一种数据共享方式。其中Activity组件是每个应用程序所必须用到的,因为任何一个应用程序都必须具备与用户交互的界面。 (一)Activity:最基本的应用程序组件,通常表示为一个单独的屏幕。每个Activity都是通过继承来被实现为一个单独的活动类,一个应用程序通常由多个Activity组成,每个Activity都具有自己的生命周期。Android系统中通过一个被称为Activity栈的东西来管理各个Activity之间的关系,当有新的Activity启动时,它被置于栈顶,之前的Activity被保留在栈中,不再出现在前台

24、,直到当前的Activity退出为止。打开前一个 Activity可以通过回退来实现。Activity的生命周期如图2-6所示,主要有以下4种状态,分别是:1)活动状态,此时Activity处于栈顶位置并可以与用户交互,具有可见性。2)暂停状态,此时的Activity失去了焦点,但是依然保持可见状态(非全屏或是透明)并保存所有的信息,在内存过低时可能被“销毁”。3)停止状态,此时的Activity由于被其他Activity所遮挡而处于不可见状态,但是依然会保存所有的信息,在系统内存过低时会被“销毁”。4)结束状态,此时的Activity已经被从内存中销毁,下一次启动时需要重置之前被保存的状态。

25、图2-6 Activity的生命周期 从上图可以看出,Activity有以下三个循环过程:1)一个Activity的生命周期从onCreate(Bundle)开始,到onDestroy()结束,在onCreate()中会设置所有的状态和资源,在onDestroy()中回收这些资源,例如一个Activity中由于存在比较耗时的任务,会重新开启一个后台线程,这个线程可以在onCreate()中创建,在onDestroy()中停止。2)在onStart()到onStop()之间,Activity处于生命周期的前两个状态,此时无论该Activity是否能与用户交互,都具有可见性,可以保存相关的信息。3

26、)从onResume()开始到onPause()结束,Activity处于活动状态,可以实现和用户的交互。Activity可以经常在resumed和paused状态之间切换,如当一个新的Intent被发送时。Activity的整个生命周期由以下几个函数定义,其中每个函数都可以重载。 public class Activity extends ApplicationContext protected void onCreate(Bundle savedlnstanceState); protected void onStart(); protected void onResume(); prot

27、ected void onPause(); protected void onStop(); protected void onDestroy(); (二)Service:没有可视化的用户界面,在后台运行,通常用来完成比较耗时的工作,并且可以与其它程序进行交互。最典型的Service应用是在后台播放音乐或是从网络上下载数据。有两种不同的方式可以来启动一个Service,第一种方式是通过调用Context.startService()来启动,调用Context.stopService()来结束,这种方式无论调用了多少次startService()方法,都只需要调用一次stopService()方

28、法来停止服务。第二种方式是建立一个到服务对象的链接,通过调用这个链接来获得服务。这个链接通过Context.bindService()方法建立,并通过调用Context.unbindService()方法来关闭。多个用户可以绑定至同一个服务提供对象。一个Service也具有一定的生命周期,如图2-7所示。图2-7 service的生命周期 从上图可以看出,service主要有以下两个循环过程: 1)完整的生命周期:从onCreate()开始到onDestroy()结束,在onCreate()函数中完成初始化,在onDestroy()函数中释放所有的资源。例如一个音乐播放程序,可以在onCrea

29、te()中创建音乐播放线程,在onDestroy()中终止这个线程。 2)活跃的生命周期:从onStart()开始,在这个函数中处理传递给startService()的Intent对象。例如对于一个音乐播放程序,会在Intent中找到需要播放的音乐曲目。(三)BroadcastReceiver:用来接收广播信息,并给出相应的处理结果。这些广播信息也许来自于系统自身,如电池电量低、拍摄照片、来电话或短信等;也许来自应用程序,比如下载完成时发送通知来告知用户。每个应用程序拥有的广播接收器没有限制,并且可以对任意感兴趣的通知进行响应,广播接收器也不具有用户界面。广播接收器的生命周期很短,只有在广播消

30、息抵达接收器并且接收器中的onReceive()函数被调用时处于活跃状态,一旦onReceive()函数返回后,广播接收器就处于失活状态。(四)Intent:协助前面提到的三种组件完成通信过程,一个Intent由动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展信息(Extra)等内容组成,系统根据Intent中所携带的不同描述信息来决定将此Intent交给哪个组件以及该组件获得Intent后要采取的动作。 (五)Content Provider:为应用程序之间共享数据提供了一个统一的接口并隐藏了具体的数据来源,Android系

31、统中为一些常见的应用(如联系人、音乐、图像等)定义了相应的Content Provider,调用者通过相应的URI来对数据进行访问。通常Content Provider将一个应用程序的数据封装,并向需要使用该数据的其他应用程序赋予权限,这样就可以使得数据在多个程序之间共享。需要注意的是,Content Provider是基于权限控制的,这种做法可以提高数据的安全性。2.4.2 程序界面开发 Android系统为开发者提供了丰富的可视化界面设计组件,包括菜单、对话框、按钮、文本框等,其中最主要的界面元素包括以下三类。 1)视图组件(View:是基类Android.view.View的一个实例,用

32、来存储屏幕上特定矩形内的布局和内容属性,由视图又衍生出了一个子类Widgets(窗体控件),用来处理屏幕区域的测量和绘制,常用的Widget包括Text, EditText, Button,CheckBox和ScrollView等。2)视图容器(ViewGroup:是基类Android.view.ViewGroup的一个实例,用来承载和管理一组下层的视图和其他视图组,通常称为View的容器。3)布局管理:Android使用布局管理器来管理应用程序中各用户界面的组件,这样做的好处是可以避免因手机分辨率、尺寸等的差异导致编写的应用程序无法移植,因为布局管理器能根据运行平台调整组件的大小。所有的布局

33、管理器都是ViewGroup的子类,图2-8表示布局管理器中各类的关系。图2-8 Android布局管理器的类图 1)LinearLayout(线性布局):该布局中元素之间成线性排列,常用的布局有水平布局和垂直布局。 2)RelativeLayout(相对布局):该布局中元素之间根据相对位置排列,即在指定一个元素位置时往往会以它的父元素或其它元素的位置作为参照,来决定当前元素的位置,这种布局方式相对随意,没有规律性,但必须保证在使用之前其参照物己经存在。 3)AbsoluteLayout(绝对布局):该布局中元素之间根据坐标排列,即将整个手机划分成坐标系,通过指定坐标系中的两个偏移量来决定元素

34、的位置。 4)FrameLayout(帧布局):该布局为每个加入的组件都创建了一个空白区域(一帧),这些帧会根据gravity属性自动对齐,这样会形成组件叠加的效果。 5)TableLayout(表格布局):该布局中元素之间的排列由表格决定,表格的行和列通过添加TableRow或其他组件来控制,通常加入一个TableRow或是一个组件都代表一行,表格的宽度取决于父容器的宽度,这种布局只是实现方式与表格类似,但元素之间并没有实际的分界线。Android中提供了两种方式来利用上面的组件设计布局,一是在XML布局文件中通过设置XML属性进行控制,二是在Java程序中通过调用函数进行控制,也可以将这两

35、种方法组合起来使用。Android推荐使用XML布局文件的方式来控制用户界面的显示,这样做不仅简单明了,还可以将视图控制逻辑从代码中剥离出来,放入一个单独的文件中进行控制,更好的体现了MVC原则。2.5 Android系统数据存储方式 Android系统一共提供了四种数据存储方式,分别是SharedPreferences(通过键值二元组存储简单数据)、文件(存储较大规模的数据)、SQLite数据库(存储结构化数据)和ContentProvider(用于应用程序之间的数据共享),下面详细介绍每一种方式的具体使用方法和使用场合。1) SharedPreferences:用键/键值形式的二元组来存储

36、数据,支持的数据类型有Boolean, string, float, long和integer,通常用来存储默认值、实例变量、UI状态和用户设置等。每个应用程序Context均有一个SharedPreferences对象,通过getSharedPreferences()函数来获取该对象,通过getBoolean(), getFloat()和getInt()等函数读取该对象中存储的数据,这些函数一共有两个参数,第一个参数为键/键值对中的键,第二个参数为指定键对应的键值,如果该键值不存在则以默认的函数返回值代替。修改SharedPreferences对象中的内容需要用到putBoolean() ,

37、putFloat()和putInt()等函数,并且在修改完后还要调用commit()函数,否则修改无效。2)文件操作:Android上层应用程序是用Java语言编写的,在Java的I/O包中提供了大量的文件读写函数,如java.io.BufferedReader, java.io.FileInputStream, java.io.FileOutputStream等,Android对这些函数都有良好的支持,除此之外,Android还提供了openFileInput和openFileOutput这两个函数用来简化对文件的读写操作,与Java I/O包中的函数所不同的是,这两个函数只能操作当前应用程

38、序所在目录的文件。3)SQLite数据库:SQLite是一种开源的、与底层无关的,轻量级的数据库,最大支持2048GB的数据存储,与其它大多数SQL数据库不同的是,SQLite没有独立的服务进程。SQLite中的数据库文件是跨平台的,可以在32位和64位系统之间,甚至Big-Endian和Little-Endian两种不同的架构之间自由的拷贝数据,SQLite数据库被用在大量的消费类电子产品中。SQLite数据库具有以下特点:1)无需配置:直接解压可执行文件即可运行。2)没有服务进程:不需要提交到服务器处理后再返回结果。3)单个数据文件:将用户数据存储在一个文件中。4)数据文件可跨平台移植:不

39、受操作系统位数和架构的限制。5)紧凑:不需要系统提供太大的资源,占用不到1M的内存空间就可运行。6)事务性:采用独立事物处理机制,遵守ACID (Atomicity, Consistency,Isolation, Durability)原则。使用数据库的独占性和共享锁处理事务,这样既允许多个进程并发读取数据库中的数据,又能保证最多只有一个进程写数据,可以有效地防止读脏数据、不可重复读、丢失修改等异常的发生。 3 点歌系统需求分析 为了开发出真正满足用户需求的软件产品,需要对开发产产品做需求分析。对软件需求的合理把握是软件开发周期中非常重要的一个环节,本章将对点歌系统做较为全面的需求分析。需求分

40、析的基本任务是定义“系统必须做什么”这个问题。在这一节中主要就是围绕“Android手机开的点歌系统必须做什么”这个问题来分析说明的。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。3.1 概述 随着手机功能的不断增强,音乐播放器己成为智能手机重要软件之一。开发一款符合广大用户需求的音乐播放器有很好的市场前景和意义。 1)需求分析目标和任务 本软件的目标是开发一款基于Android平台符合用户使用需求的点歌系统。本系统支持MP3格式的文件。用户可以通过播放器从音乐库里选择自己喜爱的歌曲,新建播放列表,播放或暂停歌

41、曲,选择上一首歌曲,下一首歌曲,调整歌曲播放的进度,选择播放队列里播放的歌曲等。本软件要求具有美观简洁便于用户使用的触摸界面,这也是Android操作系统不同传统的Windows mobile等系统上应用软件的优势之一。 2)用户特点 本软件最终用户是购买手机使用点歌系统的普通用户。 3)假定和约束 本软件的开发工作是基于假定手机硬件完好,具有一定存储空间。3.2 点歌系统需求分析3.2.1 功能需求 作为Android平台上开发的应用软件,它必须具备与用户交互的界面,界面简洁美观易于操作。因此,对点歌系统的功能规定可从点歌器的界面来划分。点歌系统的用户操作界面可分为以下三部分:音乐播放主界面

42、、音乐库主界面、播放队列界面。本小节通过用例图和用例说明分别对这三个界面进行功能需求分析。 1)音乐播放主界面 音乐播放主界面是用户进入点歌系统的主界面,即用户点击HomeScreen中点歌系统的图标,便会打开此界面。此界面实现的主要功能包括播放、暂停音乐,选择播放队列里上一个歌曲,选择播放队列里下一首歌曲,控制音量,定位音乐进度条,显示歌曲播放进度,进入音乐库主界面,进入播放队列主界面。音乐播放主界面用例图如下图3-1所示。图3-1 播放主界面用例图 下面对音乐播放主界面进行用例说明。 1)播放歌曲,如表3-1所示。表3-1 播放歌曲用例说明参与者用户概述用户点击播放/暂停按钮,音乐开始播放

43、前置条件音乐播放器已准备好音乐库已扫描完成用户从音乐库或者播放队列里选择要播放的歌曲用户已暂停歌曲详细描述用户点击进入播放主界面用户点击播放/暂停按钮系统开始播放音乐,并刷新播放界面后置条件系统开始播放音乐 2)暂停歌曲用例,如表3-2所示。表3-2 暂停歌曲用例说明参与者用户概述用户点击播放/暂停按钮,音乐开始播放前置条件播放主界面正在播放音乐详细描述用户点击进入播放主界面用户点击播放/暂停按钮系统暂停播放音乐,并刷新播放界面后置条件音乐已暂停 3)选择上一首歌曲用例说明,如表3-3所示。表3-3 选择上一首歌用例说明参与者用户概述用户点击播放播放上一首歌曲按钮,开始播放上一首歌曲前置条件音

44、乐播放器已准备好音乐库已扫描完成用户从音乐库或者播放队列里选择要播放的歌曲播放主界面正在播放音乐详细描述用户点击进入播放主界面用户点击播放上一曲按钮系统加载播放队列中找到上一首歌曲信息系统开始播放音乐,并刷新播放界面后置条件系统成功播放上一首音乐 4)选择下一曲用例说明如表3-4所示。表3-4 选择下一首歌用例说明参与者用户概述用户点击播放播放下一首歌曲按钮,开始播放下一首歌曲前置条件音乐播放器已准备好音乐库已扫描完成用户从音乐库或者播放队列里选择要播放的歌曲播放主界面正在播放音乐详细描述用户点击进入播放主界面用户点击播放下一曲按钮系统加载播放队列中找到下一首歌曲信息系统开始播放音乐,并刷新播

45、放界面后置条件系统成功播放下一首音乐 5)拖动播放进度条用例说明,如表3-6所示。表3-5 拖动播放进度用例说明参与者用户概述用户拖动播放进度条,歌曲定位到新的位置前置条件音乐播放器已准备好音乐库已扫描完成用户点击进入播放主界面jinru播放主界面正在播放音乐详细描述用户拖动播放进度条系统定位到歌曲新的位置点歌系统跳到歌曲新的位置,开始播放音乐后置条件歌曲成功定位到新的位置 音乐库主界面 用户点击音乐库按钮便可跳转到音乐库主界面。音乐库可认为是便于用户浏览、挑选音乐的仓库。该界面包含两个子列表,分别为全部歌曲列表,播放列表。 1)全部歌曲列表 以列表形式显示SDcard里所有歌曲的名称及艺术家

46、名,便于用户浏览和挑选歌曲。用户选中某首歌曲,点击该条目,软件便自动跳到音乐播放主界面播放该首歌曲。 2)播放列表 播放列表里包含我的列表和智能列表两个子条目。在我的列表里用户可以创建和删除列表,该列表里包含的条目还有用户自己创建的列表。智能列表包含新增歌曲列表和最常播放歌曲列表。新增歌曲列表是用户最近一次存入歌曲的列表。最常播放歌曲列表是软件根据统计用户播放歌曲的次数,统计出的最常播放歌曲的列表。音乐库主界面用例图3-2所示。图3-2 音乐库主界面用例图4点歌系统的设计与实现4.1 系统功能设计4.1.1 数据库设计 本系统共设计了两张数据库表,分别用来存放歌曲信息和分类信息,具体见表4-1

47、和表4-2。表4-1 musictableidprymary keyfilenamenot nullmusic namezuozhedatelei表4-2 fenleitableidprymary keyleinot null4.1.2 功能模块设计 本系统主要实现了以下功能:能够添加、删除、查看歌曲的相关信息;能对歌曲进行点播、编辑等相关操作;设置不同的查询条件:名称、作曲、出版时间等。1)主界面设计包含了歌曲界面,播放界面以及添加删除界面等,主界面部分代码如下:import java.io.File;import java.util.ArrayList;import .addmusic.b

48、a;import DAO.DBAdapter;import android.app.Activity;import android.content.Intent;import android.database.Cursor;import android.widget.Spinner;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity Button addmusic; ListView musi

49、clist; ListView leilist; ArrayList al=new ArrayList(); ArrayList al3=new ArrayList(); Spinner sp; Button searchbutton; DBAdapter db; EditText search; BaseAdapter ba; BaseAdapter ba2; Button fenlei; public static String musicname; public void onCreate(Bundle savedInstanceState) super.onCreate(savedIn

50、stanceState); setContentView(R.layout.main); addmusic=(Button) findViewById(R.id.addmusic); sp=(Spinner) findViewById(R.id.sp); searchbutton=(Button) findViewById(R.id.searchbutton); search=(EditText) findViewById(R.id.search); fenlei=(Button) findViewById(R.id.addfenlei); addmusic.setOnClickListene

51、r(new OnClickListener() public void onClick(View v) startActivity(new Intent(addmusic); ); fenlei.setOnClickListener(new OnClickListener() public void onClick(View v) startActivity(new Intent(addfenlei); ); musiclist=(ListView) findViewById(R.id.musiclist); leilist=(ListView) findViewById(R.id.leili

52、st); db=new DBAdapter(getApplicationContext(); db.open(); Cursor cursor=db.getmusic();2) 添加分类 主要是歌曲的分类,由于本人水平有限,本系统设计成了添加歌曲之前先添加分类。添加分类部分代码如下:public class MainActivity extends Activity Button addmusic; ListView musiclist; ListView leilist; ArrayList al=new ArrayList(); ArrayList al3=new ArrayList();

53、 Spinner sp; Button searchbutton; DBAdapter db; EditText search; BaseAdapter ba; BaseAdapter ba2; Button fenlei; public static String musicname; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); addmusic=(Button) findViewById(R.id.addmusic); sp=(Spinner) findViewById(R.id.sp); searchbut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论