基于Android系统的MIDI音乐播放器的设计与实现.docx
《基于Android系统的MIDI音乐播放器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android系统的MIDI音乐播放器的设计与实现.docx(46页珍藏版)》请在冰豆网上搜索。
![基于Android系统的MIDI音乐播放器的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-12/27/4413d7c8-32d2-4c9d-afa6-f6eac2d3ea31/4413d7c8-32d2-4c9d-afa6-f6eac2d3ea311.gif)
基于Android系统的MIDI音乐播放器的设计与实现
内蒙古科技大学
本科生毕业设计说明书(毕业论文)
题目:
基于Android系统的MIDI音乐
播放器的设计与实现
摘要
随着3G时代的来临,3G、Android、iPhone、Google、苹果、手机软件、移动开发等词越来越充斥于耳。
随着3G网络的大规模建设和智能手机的迅速普及,移动互联网时代已经微笑着迎面而来。
自1983年世界第一款商用手机发布到现在,只经过了仅仅不到30年的时间,全球手机用户已达23亿之多。
消费者对手机产品在商务和娱乐方面的要求越来越高,让手机日益成为便携式的商务或娱乐终端。
在硬件的推动下,用户对手机软件的功能需求也越来越高。
Android系统也在不断更新以满足需求,因此手机多媒体技术的开发也就不可避免称为热点。
Android:
Google公司于2007年公布的开放式源代码手机系统,它的开放性优于其它封闭式的手机系统,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
本设计为一款基于Android2.2操作系统及以上版本的音乐播放器,以Java作为基础编程语言,采用Android系统提供的标准数据库SQLite进行操作。
本设计的实现,囊括了Android大部分编程技术,用其友好的用户界面,实现了对音乐控制的基本功能:
播放、暂停、上/下首切换、歌词同步显示和各种播放模式的控制(单曲、循环、随机和顺序播放),也实现了对歌曲列表的搜索、添加和删除等功能。
关键词:
Android;Google;音乐播放器;Java;移动互联网
Abstract
Withthecomingoftheeraof3G,somewordscanbeheardmoreandmorefrequently,suchas3G,Android,iPhone,Google,Apple,Mobilephonesoftware,Mobiledevelopment.Asthe3Gnetwork’slarge-scaleconstructionandthesmartphone’srapidpopularization,mobileinternetagehascomewithasmile.
Sincetheissuanceoftheworld’sfirstcommercialmobilephonein1983,thetotalnumberofglobalmobilephoneusershasbeenmorethan2.3billioninthepastlessthan30years.Consumersdemandmoreandmoremobilephone’sperformanceinbusinessandentertainment,whichhasmademobilephonetheportableterminalforbusinessandentertainmentdaybyday.Beingmotivatedbyhardware,users’needsonmobilephonesoftware’sfunctiongoesincreasinglyhigh.Androidsystemisupdatingtosatisfytheneeds.Therefore,thedevelopmentofmobilemultimediatechnologyhasinevitablybecomethehotspot.
AndroidistheopensourcemobilesystempublishedbyGooglein2007.Forthereasonthatitsopennessissuperiortootherclosedmobilesystem,anyonecanrewriteallfunctionsinthemobilesystemasheorshelike,whichhasmademoreandmorepeoplepayattentiontothisoperatingsystem.
ThisdesignisamusicplayerusingJavaasthebasicprogramminglanguage,whichisbasedonAndroid2.2operatingsystemandaboveversion,andcanbeoperatedbythestandarddatabaseSQLitethatofferedbyAndroidsystem.Thoughthisdesignisnotbig,itcontentsAndroid’smostprogrammingtechnology.Itsfavorableuserinterfacecanconducetotherealizationofitsbasicfunctioninmusiccontrolling(start,pause,switchingbetweenupanddownmusic,lyricssynchronizeddisplay)andplaymodecontrolling(singleplay,singlecycle,randomplayandallcycle).Besides,italsorealizesthefunctioninsongincludingsearch,add,deleteandsoon.
Keywords:
Android;Google;musicplayer;Java;mobileinternet
第一章绪论
随着Android手机的普及,Android应用的需求势必会越来越大,消费者对手机产品在商务和娱乐方面的要求越来越高,让手机日益成为便携式的娱乐终端。
其中媒体播放器也扮演着重要的角色,本设计的完成可以让人们在忙碌的工作之余,只需一部Android手机,尽情的欣赏音乐,缓解压力。
一.1设计背景及意义
现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现主要功能是播放Mp3格式的音乐文件,并且能够控制播放、暂停、停止、上一曲、下一曲、音量调节、视觉外观、播放列表的搜索、添加和删除操作等多种播放控制功能,界面简明,操作简单。
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。
使人们的生活更加多样化。
也使设计者更加熟练Android的技术和其它在市场上的特点。
一.2Android国内外发展的状况
国外Android市场正在如日中天的扩展,据市场调研机构NPDGroup最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销量中所占比例达到28%,首度超越苹果iPhone,苹果iPhone约为21%,相信在不久的将来会有更多的用户选择Android系统的手机或是无线终端设备。
目前中国拥有世界上最大的手机用户群,再加上3G的推出对整个行业的巨大推动作用,全世界所有大中小型手机制造商几乎都在招聘Android工程师。
然而每天有超过16万台的Android设备出货,一年后全球可能会有超过1亿台的Android设备,以后将有可能超越iPhone成为智能手机平台的旗舰。
Android在中国的前景十分广阔,首先是有成熟的消费者,Android社区十分红火,这些社区为Android在中国的普及做了很好的推广作用。
国内厂商和运营商也纷纷加入了Android
阵营,包括中国移动、中国联通、中兴通讯、华为通讯、联想等大企业,同时不仅仅局限于手机,国内厂家也陆续推出了采用Android系统的MID产品,比较著名的包括由Rockchip和蓝魔推出的同时具备高清播放和智能系统的音悦汇W7和2010年推出的原道N5,我们可以预见Android也将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。
另一方面,由于国内政策的限制,导致Android的部分功能(如Androidmarket)在国内无法正常使用,目前常用的解决方法是使用VPN服务来访问。
第二章开发工具相关简介
2.1Android概述
Android一词本意是指“机器人”,当然现在大家都知道它是Google推出的开源手机操作系统。
Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
它是一个由30多家科技公司和手机公司组成的“开放手机联盟”共同研发的,这将大大降低新型手机设备的研发成本。
完全整合的全移动功能性产品成为“开放手机联盟”的最终目标。
Android平台是OpenHandsetAlliance的成果,OpenHandsetAlliance组织由一群共同致力于构建更好的移动电话的公司组成。
这个组织由Google领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。
从软件开发的观点看,Android正处在开源领域的中心位置。
市场上第一款支持Android的手机是由HTC制造并由T-Mobile供应的G1。
这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的SDK发行版。
随着G1发行日的临近,Android团队发布了SDKV1.0,用于这个新平台的应用程序也浮出水面。
为了鼓励创新,Google举办了两届“AndroidDeveloperChallenges”,为优胜的参赛作品提供数百万美金的奖励。
G1问世几个月之后,随后就发布了AndroidMarket,它使用户可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。
经过大约18个月,一个新的移动平台进入公众领域。
Android操作系统是Google最具杀伤力的武器之一。
苹果以其天才的创新,使得iPhone在全球迅速拥有了数百万重视“粉丝”,而Android作为第一个完整、开放、免费的手机平台,使开发者在为其开发程序时拥有更大的自由。
与WindowsMobile、Symbian等厂商不同的是,Android操作系统免费向开发人员提供,这样可节省近三成成本,得到了众多厂商与开发者的拥护。
Android系统具有如下5个特点:
Ø开放性。
Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Ø应用程序无极限。
Android上的应用程序可以通过标准API访问核心移动设备功能。
通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。
Ø应用程序是在平等的条件下创建的。
移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
Ø应用程序可以轻松地嵌入网络。
应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。
Ø应用程序可以并行运行。
Android是一种完整的多任务环境,应用程序可以在其中并行运行。
在后台运行时,应用程序可以生成通知以引起注意。
随着Android平台的扩张,引发了Android人才荒,2010年移动开发人才需求20万,未来人才需求缺口将达百万。
3G人才全球紧缺,实用人才培养已迫在眉睫。
在国内三大运营商如火如荼的3G营销战持续升温,再加上3G的推出对整个行业的巨大推动作用,无疑将引爆3G手机开发工程师这个黄金职位。
但符合条件的Android工程师屈指可数,在未来几年内,Android开发工程师将成为3G行业炙手可热的岗位之一。
2.2Android开发技术简介
Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。
考虑到Java虚拟机的效率和资源占用,Google重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。
本设计也是使用Java语言设计与实现的。
2.2.1Android程序框架介绍
本节将介绍一下开发Android项目的项目目录结构,如图2.1所示,这是MIDI音乐播放器的项目目录结构。
与一般的Java项目一样,src文件夹是项目的所有包及源文件(.java),res文件夹中则包含了项目中所有的资源,比如:
程序图标(drawable)、布局文件(layout)、常量(values)等。
ØR.java是在建立项目时自动生成的,这个文件是只读模式,不能更改,R.java是定义该项目所有资源的索引文件。
ØAndroidManifest.xml文件则包含了该项目中所用的Activity、Service等组件,它是一个功能清单文件。
图2.1MIDI音乐播放器目录结构
2.2.2用户界面介绍
Android平台提供的控件是非常完美的,控件的使用与网页的设计类似。
Android的界面需要写在“res/layout”下面的布局文件,一般情况下,一个布局文件对应一个界面。
设计Android的界面有点像写HTML代码,要先给Android定框架,然后再往里面添加控件。
Android生成屏幕有三种方式:
xml配置生成;通过用户界面接口生成;直接用代码生成。
在一个Android应用中,用户界面是由View和ViewGroup对象构建的。
View和ViewGroup都有很多种类,而它们都是View的子类。
开发者可以对View和ViewGroup进行组合,来完成应用程序界面设计。
1)View
任何一个View对象都继承android.view.View类。
它是一个存储屏幕上特定的一个矩形布局和内容属性的数据结构。
作为一个基类,View类为Widget服务,Widget是一组用于绘制交互屏幕元素的完全实现子类。
Widget处理自己的测距和绘图,所以可以快速地用它们去构建UI。
可用到的Widget包括Text、EditText、Button、RadioButton和Checkbox等。
2)ViewGroup
ViewGroup是一个android.view.Viewgroup类的对象。
顾名思义,ViewGroup是一个特殊的View对象,它的功能是装载和管理一组下层的View和其他Viewroup,ViewGroup可以为UI增加结构,并且将复杂的屏幕元素构建成一个独立的实体。
作为一个基类,ViewGroup为Layout(布局)服务,Layout则是一组提供屏幕界面通用类型的完全实现子类,一个Activity界面可以包含多个ViewGroup和View,,通过这样的组合可以实现更复杂、更完美、更满足开发者需要的界面。
2.2.3Android四大组件简介
本节介绍Android非常重要的几个组件,Android有四大组件:
Activity、Service、BroadcastReceiver、ContentProvider。
1)Activity
在Android中使用频率最高,实质就是一个可视化界面;一般一个Android应用由多个Activity组成,多个Activity组成Activity栈(stack),当前活跃的Activity在栈顶Activity上面是一个Window对象,Window之上通常是一个布局容器对象(LinearLayout等),在上面是我们所要展示的各个组件(如按钮、文本框等)Activity有自己的生命周期,由Android系统来控制新建的Activity要在清单文件AndroidManifest.xml中注册。
2)Service
Service顾名思义服务,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而服务理机制是系统级别的,这个组件是没有用户界面的。
到目前为止可以使用Intent来启动一个程序组件,还可通过使用
startService()方法来发起启动一个程序中的服务。
同时在应用程序中实现Service来监听和响应这些服务的Intent。
本应用MIDI播放器对歌曲的控制全都做在了Service里,后续会详细说明。
3)BroadcastReceiver
指广播接收器,广播事件处理机制是系统级别的系统中定义了很多标准的BroadcastAction来响应系统广播事件,如:
ACTION_BOOT_COMPLETED(系统启动完成后出发),ACTION_BATTERY_CHANGED(电量低时出发)也可以自定义BroadcastReceiver接收广播事件注册广播接收器可以使用代码注册,也可在清单文件AndroidManifest.xml中注册。
4)ContentProvider
用来保存和检索数据的,并且是应用程序之间相互访问数据成为可能,他是跨应用程序共享数据的唯一方法Android为常用的数据类型(如:
视频、音频、图片)提供了大量的ContentProvider,它们被放在android.provider下面,使用时要注意权限问题。
2.2.4Android数据库SQLite介绍
SQLite第一个Alpha版本诞生于2000年5月,它是一款轻型数据库,它的设计目的是嵌入式的,而且目前已经在很多嵌入式产品中使用,它占用的资源非常少,在嵌入式设备中,可能只需要几百KB的内存就够了。
也许这正是Android系统要采用SQLite数据库的原因之一。
SQLite数据库是D.RichardHipp用C语言编写的开源嵌入式数据库,支持的数据库大小是2TB,SQLite是一个开源的关系数据库,可以存储大量数据,并且可以很容易的进行增删改查。
SQLite数据库不像其他的数据库(如Oracle),它没有服务器进程。
所有的内容包含在同一个单个文件中。
该文件是跨平台的,可以自由复制。
基于其自身的先天优势,SQLite在嵌入式领域得到广泛应用。
Android也没有重复发明“轮子”,而是直接是用了SQLite数据库。
目前在Android系统中集成的是SQLite3版本,SQLite不支持静态数据类型,而是使用列关系。
这意味着它的数据类型不具有表列属性,而具有数据本身的属性。
当某个值插入数据库时,SQLite将检查它的类型。
如果该类型与关联的列不匹配,则SQLite会尝试将该值转换成列类型。
如果不能转换,则该值将作为其本身具有的类型存储。
SQLite支持NULL、INTEGER、REAL、TEXT和BLOB等数据类型。
Android提供了创建和使用SQLite数据库的API。
SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供了更简洁的功能。
在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。
关于这个SQLiteOpenHelper类在后续章节中会详细讲到,它的出现能够更好地管理和维护数据库。
2.3Java语言介绍
Java是一种简单的、跨平台的、面向对象的、分布式的、结实的、健壮的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。
它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。
Java编程语言的风格十分接近C、C++语言。
Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长度参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。
但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。
与传统程序不同
,Sun公司在推出Java之际就将其作为一种开放的技术。
全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。
这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。
这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。
AndroidGoogle选择用Java语言作为它十分流行的Android移动操作系统的编程语言。
这个选择在整个件研发人员的社区中引起了新的关注。
Android程序编译过程比普通Java程序要多经过一个步骤,将JVM二进制码转换成Dalvik二进制码。
Google已经可以利用Eclipse为软件研发人员提供一个成熟的编写Android应用的开发环境。
Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。
考虑到Java虚拟机的效率和资源占用,Google重新设计了Android的Java,以便能提高效率和减少资源占用。
第三章系统分析
3.1可行性分析
3.1.1操作可行性
随着时代的发展,3G时代已经来临,人们对于手机的操作已经很熟练了,而对于Android手机,更是由于简单的操作,行云流水的触摸感觉,已经赢得了世人的青睐。
对于本应用而言,操作方面不对存在障碍,简洁大方的用户界面设计,只需用户轻轻点击,即可完成所有的对音乐播放的控制等操作。
3.1.2经济可行性
本系统开发经费在经济上是可以接受的,现在电脑和手机已经普及,而手机更是人人都拥有,而Android手机更是主流手机