Android毕业设计论文音乐播放器.docx
《Android毕业设计论文音乐播放器.docx》由会员分享,可在线阅读,更多相关《Android毕业设计论文音乐播放器.docx(34页珍藏版)》请在冰豆网上搜索。
Android毕业设计论文音乐播放器
XXXX
本科生毕业设计(论文)
学院(系):
XX
专业:
软XX
学生:
XX
指导教师:
XX
完成日期年月
XXX本科生毕业设计(论文)
基于Android的音乐播放的设计与实现
DesignandImplementationof
theMusicPlayerSystemBasedonAndroid
总计:
毕业设计(论文)30页
表格:
8个
图片:
31个
XXXX本科毕业设计(论文)
基于Android的音乐播放的设计与实现
DesignandImplementationof
theMusicPlayerSystemBasedonAndroid
学院(系):
XX
专业:
XX程
学生姓名:
XX
学号:
0XX
指导教师(职称):
XX
评阅教师:
XX
完成日期:
XXX
基于Android的音乐播放的设计与实现
软件工程XX
1[摘要]本文旨在用于Android系统上的音乐播放器应用程序的设计与实现进行讨论。
Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。
同时论文给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,在Android系统中能独立运行。
由于本播放器只限于应用层程序的探讨,所以对具体的音乐压缩不作深究。
[关键词]Android;Eclipse;音乐播放器;智能手机;
DesignandImplementationof
theMusicPlayerSystemBasedonAndroid
SoftwareEngineeringMajorXXX
1Abstract:
Inthisthesis,designingofanapplicationforplayingmusicontheAndroidsystemwillbediscussed.Androidisanopensourcesystem,whichisbasedonLinux,thismusicplayerusesAndroidopen-sourcesystemtechnology,EclipsewillbeusedasthemainIDEandJavaisselectedastheprogramminglanguage.Thisthesisdescribesthesystemdesigningprogress,someflowchartfortherunningprogresswillalsobeprovided.Thisapplicationhasmanyattractivefeatures,includingplaying/pausing/stoppingmusic,changingtoprevioustrack/nexttrack,adjustingvolume,displayinglyricsetc.Itcanrunwellwithoutexternaldependencies.Astheplayerislimitedtotheapplicationlayer,codingformusicwon'tbediscussed.
1Keywords:
Android;Eclipse;Musicplayer;Smartphone
如果你周边有同学苦逼于毕设的话,果断推荐这个公众号给他吧!
分享朋友圈,截图发给这个公众号(ifreeTeam),可以在我的万套毕业设计源码中选择你合适的一套哦。
嘻嘻!
1背景与意义:
1.1Android基本情况
现在移动开发市场,而Android平台的发展迅猛,可以被誉为最有实力iPhone对抗的平台,而且其在市场占有率上已经超越了iPhone,成为市场第一。
一方面,Android的开放性和优秀的可伸缩化架构使其具备了被移植到多种平台上的能力,另一方面,Android产业链的全面发展夜是Android未来的发展被看好的原因之一。
在2011年开发者偏好调查中,Android、iPhone、JavaME和Symbian分别列前四位。
分析排名因素和终端市场的市场占有率有关。
Android的品牌覆盖度远超过了其他移动操作系统。
报道称有近60%的开发者最近从事过Android相关开发,这归功于Android更先进的框架,另外已经更加成熟的产业链也使得开发者热衷于开发Android应用。
目前手机操作系统处于Android、Symbian和IOS三足鼎立的阶段,这也和应用这些操作系统的终端设备的市场占有率直接相关,数据显示,这三者的市场占有率分别为33%、31%和16%。
然而从平牌来看,使用IOS操作系统的主要有iPhone和iPad系列,然而可以预见,IOS的仅限于苹果系列市场,并且始终保持封闭状态,其它公司无法使用IOS系统,除非苹果系列长期保持高市场占有率,否则IOS系统的长期发展前景将不会乐观;另一方面,Symbian和诺基亚的合作刚刚延续到2016年,然而随着诺基亚和微软的合作,为Symbian系统的前景蒙上了一层阴影,而且Symbian系统的程序开发复杂度也不符合手机操作系统的发展潮流,毫无疑问,Android系统是最具备竞争力也是未来最具前景的手机操作系统。
然而值得注意的是,从Android创立之初,其目的就不在于通过出售手机系统盈利,通过Android系统,吸引更多的投资者参与,从而驱动整个上下游企业链发展才是Google开发Android系统的真正目的。
据AndroidMarket统计,自2009年以来,Android产品开发者数量和应用数量均保持同比增长。
一方面Android用户对手机信息依赖度的提升加速了移动软件从游戏软件向多元化软件发展,另一方面,随着资本市场对Android市场的关注,也为开发商提供了开发的资金来源。
数据显示,在所有Android应用中,免费应用占比为62.6%,而在IOS系统应用中,付费应用占据大多数。
主要原因是Android为开源软件,移动软件开放商更容易打入市场,这也是当初许多Symbian应用软件商纷纷转投Android的原因之一。
免费是Android软件的亮点之一,然而在知名度提高之后如何创造盈利,比如在免费应用当中附加付费增值服务,是开发商所要考虑的问题。
传统互联网的发展历程告诉我们,应用软件的发展模式不是一成不变的,不了解客户的需求就注定被淘汰,如今移动互联网已经步入了第二个发展阶段,移动终端的功能也不再仅仅是通讯工具。
根据数据显示,目前客户主要的移动互联网需求以电子读物和小型移动游戏软件为主。
将来移动互联网的发展趋势将发展向移动付费、电子商务和生活服务等阶段。
虽然是Google创造了Android,但是在竞争力方面,国内Android论坛占据了市场份额的40%,超过了AndroidMarket的25%;终端市场国内以及台湾地区占比较大,国内的Android软件应用更符合中国客户的需要。
另一方面,GoogleMarket缺乏本土化,而其所提供的应用也以英文版的应用为多。
换句话说,谁更适应中国,谁就将成为中国市场的王者。
在Android应用比较方面,AndroidMarket属于大而全,应用软件则以英文版为主;而国内论坛的特色则是汉化版的软件应用和创新以及中文电子读物。
相对于国外Android论坛,国内论坛更加贴近用户,并且都提供了包括如手机使用技巧和品牌讨论等业务,让跟多的新手熟悉Android,也为开发者能够和用户交流的渠道。
相比其他手机操作系统,Android具有开发入门低、开源以及产业链完整等优势。
从市场角度看,Android增长率高于其他系统,覆盖终端设备比例也位居第一。
未来随着所覆盖手机品牌的市场占有率提升以及应用软件数量的增加以及技术的成熟,Android系统将进一步拉开和其它竞争对手的差距。
截至2010年,中国互联网网民突破4.5亿人,预计将于2015年超过传统互联网;在移动应用方面,移动互联网已经从基础应用阶段过渡到了娱乐应用阶段,电子书、社交网络和移动游戏成为当下的主要应用。
互联网增值服务业务也渐渐转移到了移动终端,让开发者看到了商机;预计将来移动应用将继续转向电子商务、支付等方面,移动互联网市场将更加广阔。
另一方面,中国互联网高涨的情绪、大量的投资、蜂拥的创业者,注定将把移动互联网推向黄金时代。
Android从诞生到现在也不过5年的时间,但是也就是在这短短的5年内Android创造了一个迅速被人们知晓并追捧的奇迹。
2007年11月5日,Google与其他33家手机制造商(包含摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬体供应商、电信业者所联合组成的开放手持装置联盟(OpenHandsetAlliance),发布了名为Android的开放手机软硬体平台。
该联盟的成员宣布日后都会在Android平台上开发他们的新的业务。
不久之后的2008年9月24日,T-Mobile公司首度公布第一台Android手机(G1)的细节,同日Google也放出了AndroidSDK1.0rc1。
这样Android进入了人们的视线。
Android以其特有的开放性优势越来越受到人们和智能手机厂商的关注[1]。
1.2Android的构架综述
Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。
作为一个层次结构的软件集,一定有一个层次的系统构架,下图为Android的构架图,如图1–1所示:
图1–1总揽Android
从图中明显的可以看出该系统从下到上包括Linux内核层、Libraries和运行时环境层、应用程序框架层、应用程序层四层结构。
在Android的最下层的操作系统基于Linux2.6内核,往上的中间件包括Libraries和运行时环境层和应用程序框架层两个层次,最上层则是应用程序层。
在Android构架中,可以很明显的看到,底层的Linux内核采用的是C语言,libraries采用C或者C++,但是应用程序层、应用程序框架层和运行时环境中的Android核心库采用Java语言编写,也就是说Android虽然底层用的是C或者C++但是应用程序的开发则用的是Java。
Google采用这样的模式可能是因为相对于C或者C++,Java的开发周期更短的缘故,这样的话就能在短时间内为Android提供大量的应用软件。
我们知道,作为一个智能手机平台,只有拥有了大量的源源不断的应用程序作为支持,才能受人们的欢迎,从而才能占领市场。
内核层
GoogleAndroid作为一个开源的操作系统其内核采用了同样开源的被业界认为是相当稳定的Linux作为其内核,其中Linux内核包括以下功能模块:
安全(Security)、存储器管理(MemoryManagement)、进程管理(ProcessManagement)、网络堆栈(NetworkStack)、驱动程序模型(DriverModel)等,另外也在给其上层的软件和下层硬件间建立起一个抽象层(AbstractionLayer)。
同时Android在Linux2.6的内核上进行了一些增加和删改,使Linux更加适应ARM平台。
⑴增加了一个基于ARM构架的GoldFish平台作为虚拟机的虚拟CPU。
⑵增加了YAFFS2FLASH系统文件,因此增加了对NANDFLASH支持。
⑶增加了Android相关的驱动。
例如Android的IPC(进程间通信机制)binder,使用这个能使运行的进程为其他进程提供服务;Android的日志系统(Logger)和内存控制台(Ramconsole);同时Google还重写了电源管理(Power)
⑷增加了新的共享方式Ashman(匿名共享内存),多个应用程序可以这种方式共享内存获取信息,为进程间提供大量共享内存,同时为内核提供回收和管理这个内存的机制。
1.3AndroidRuntime和函数库层
1.3.1函数库
Android包含一些C/C++库,Android系统中的各种不同组件都能够使用这些库函数。
这些库函数通过Android应用程序框架为开发者提供服务。
1.3.2AndroidRuntime
前面说到Android采用Java作为应用程序的开发语言,虽然使用的是Java语言,但是Google却没使用传统的JavaRuntime来执行应用程序而是采用Android自己特有的AndroidRuntime。
从Android的系统构架图中可以清楚的看到,AndroidRuntime由Android函数库(AndroidLibraries)和Dalvik虚拟机组成。
Android函数库中里包含了大部分Java程序语言所需要调用的函数库,如datastructure,network,utilities,filesystem等,其中很多代码是源于2005年的ApacheHarmony项目。
这样做的话能够使Android的虚拟机的类库与JavaSE的类库有非常大的相似性,进而提高了JavaSE类库的兼容性,最大限度的降低了一个程序员从Java平台开发到Android平台开发的难度,这样就降低了对Android开发的准备时间以及前期培训的费用,从而降低了Android应用程序开发的周期以及开发费用,这样的话短时间内就能让GoogleAndroid系统能够拥有大量的可执行的应用程序。
另外,使用ApacheHarmony类库还能完全摆脱Sun的束缚而走上完全开源的Java之路,这样也奉行了Google对Android完全开源的原则[2]。
上面的四个层次,下层为上层服务,上层需要下层的支持,调用下层的服务,这种严格分层的方式带来的极大的稳定性、灵活性和可扩展性,使得不同层的开发人员可以按照规范专心特定层的开发。
android应用程序使用框架的api并在框架下运行,这就带来了程序开发的高度一致性,另一方面也告诉我们,要想写出优质高效的程序就必须对整个applicationframework进行非常深入的理解。
精通applicationframework,你就可以真正的理解android的设计和运行机制,也就更能够驾驭整个应用层的开发。
1.4Android应用的组成
Android应用程序由一些松散连系的组件构成,遵守着一个应用程序清单(manifest),这个清单描述了每个组件以及它们如何交互,还有包含了应用程序的硬件和平台需求的元数据(metadata)。
以下六个组件提供了应用程序的基础部分:
Activites 应用程序的表示层。
应用程序的每个界面都将是Activity类的扩展。
Acitvities用视图(View)构成GUI来显示信息、响应用户操作。
就桌面开发而言,一个活动(Activity)相当于一个窗体(Form)。
Services 应用程序中的隐形工作者。
Service组件在后台运行,更新你的数据源和可见的Activities,触发通知(Notification)。
在应用程序的Activities不激活或不可见时,用于执行依然需要继续的长期处理。
ContentProviders 可共享的数据存储。
ContentProviders用于管理和共享应用程序数据库。
是跨应用程序边界数据共享的优先方式。
这表示你可以配置自己的ContentProviders以允许其他应用程序的访问,用他人提供的ContentProviders来访问他人存储的数据。
Android设备包括几个本地ContentProviders,提供了像媒体库和联系人明细这样有用的数据库。
Intents 一个应用程序间(inter-application)的消息传递框架。
使用Intents你可以在系统范围内广播消息或者对一个目标Activity或Service发送消息,来表示你要执行一个动作。
系统将辨别出相应要执行活动的目标(target)。
BroadcastReceivers Intent广播的消费者。
如果你创建并注册了一个BroadcaseReceiver,你的应用程序就可以监听匹配了特定过滤标准的广播Intent。
BroadcaseReceiver会自动开启你的应用程序以响应一个收到的Intent,使得可以用它们完美地创建事件驱动的应用程序。
Widgets 可以添加到主屏幕界面(homescreen)的可视应用程序组件。
作为BroadcaseReceiver的特殊变种,widgets让你可以为用户创建可嵌入到主屏幕界面的动态的、交互的应用程序组件。
Notifications 一个用户通知框架。
Notification让你不必窃取焦点或中断当前Activities就能通知用户。
这是在Service和BroadcastReceiver中获取用户注意的推荐技术。
例如,当设备收到一条短消息或一个电话,它会通过闪光灯、发出声音、显示图标或显示消息来提醒你。
你可以在你的应用程序中使用Notifications触发相同的事件。
通过解耦应用程序组件间的依赖,你可以和其他应用程序(你自己的和第三方的)共享和交换单独的组件,如ContentProviders、Services甚至Activities。
1.5Android开发工具
前面说过,Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境Eclipse。
有了Eclipse还不够,因为使用Java语言进行开发,应该有由SUN公司提供的JavaSDK(其中包含了JRE:
JavaRuntimeEnvironment)。
另外,Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的AndroidSDK。
有了这三个软件就可以开发Android应用程序了。
1.5.1准备文件
(1)ADT-0.9.6.ZIP
(2)Android-sdk-windows-2.1_r3.zip
(3)Eclipse3.4.1.zip
(4)Jdk-6u14-windws-i586,exe
1.5.2安装
安装JDK
运行Jdk-6u14-windws-i586,exe
按照安装界面的默认提示点击接受,依次下一步,直到完成,如图1–2所示。
图1–2安装JDK
安装Eclipse
直接解压Eclipse.3.4.1.zip到指定目录如:
D:
\Android\eclipse
运行eclipse.exe,设置Workspace,指定一个开发目录给它就可以了.
Eclipse安装完毕
安装android-sdk-windows-1.5_r3.zip
AndroidSDK同Eclipse一样,直接解压缩就可以,我把解压缩到文件夹D:
\Android中,将AndroidSDK中的tools绝对路径添加到系统PATH中,如图1–3设置环境变量所示。
图1–3设置环境变量
添加环境变量PATH值为SDK中tools的绝对路径,如图1–4所示。
图1–4设置PATH
重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。
安装AndroidDevelopmentTools(ADT)
打开EclipseIDE
进入菜单中的"Help"->"SoftwareUpdates",如图1–5所示。
图1–5Eclipse
http:
//dl-
图1–6完善Eclipse插件
勾选"AndroidDDMS"和"AndroidDevelopmentTools","Install",如图1–7和图1–8所示。
图1–7安装ADT
图1–8更新ADT
一路Next,注意Accept许可,直到完成。
设定"SDKLocation"
打开EclipseIDE
进入菜单中"Window""Preferences",如图1–9所示。
图1–9设置Eclipse
打开"Preferences"窗口,选中"Android",如图1–10所示。
图1–10完善Eclipse开发环境
2系统分析
根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成两部分来概括,即播放器的基本控制需要,播放列表管理需求。
以下分别描述:
2.1播放器的基本功能
如图2–1所示。
图2–1播放器主要功能
用户可以根据自己的需要,按照上图所描述的功能,去操作该播放器,满足自己的需求。
表2–1播放用例
用例名称
播放
参与者
用户
目标
使得用户可以播放在播放列表中选中的歌曲
前置条件
播放器正在运行
基本事件流
用户单击"播放"按钮;播放器将播放列表中的歌曲。
表2–2暂停用例
用例名称
暂停
参与者
用户
目标
使得用户可以暂停正在播放的歌曲
前置条件
歌曲正在播放且未停止和暂停
基本事件流
用户单击"暂停"按钮;播放器将暂停当前的歌曲。
表2–3暂停用例
用例名称
停止
参与者
用户
目标
使得用户可以停止正在播放的歌曲
前置条件
歌曲正在播放或暂停
基本事件流
用户单击"停止";播放器将停止当前播放的歌曲。
表2–4上一曲/下一曲用例
用例名称
上一首/下一首
参与者
用户
目标
使得用户可以听上一首或下一首歌曲。
前置条件
歌曲正在播放或暂停
基本事件流
用户单击"上一曲或下一曲"按钮;播放器将播放上一曲或下一曲歌曲。
2.2播放清单
当用户选中列表中某一项歌曲,进入播放列表时,就可以对歌曲进行一系列的操作,具体如图2–2所示。
表2–5播放清单
用例名称
播放
参与者
用户
目标
使得程序播放选中的歌曲
前置条件
程序运行在播放菜单选项中
基本事件流
用户单击"播放"按钮;播放器进入播放状态
表2–6添加歌曲
用例名称
增加
参与者
用户
目标
使得程序进入手机扩展SD卡
前置条件
程序运行在播放菜单选项中
基本事件流
用户单击"增加"按钮;播放器进入手机扩展SD卡
表2–7移除/全部移出表
用例名称
移除/全部移除
参与者
用户
目标
使选中的歌曲被移除
前置条件
程序运行在播放菜单选项中
基本事件流
用户单击"移除/全部移除"按钮;播放器移除选中歌曲/全部移除歌曲
表2–8设定歌曲
用例名称
设定
参与者
用户
目标
使得程序进入播放器设定状态
前置条件
程序运行在播放菜单选项中
基本事件流
用户单击"设定"按钮;播放器进入设定界面
图2–2播放器功能
这就是该播放器的主要功能,这些功能也足以满足用户的需要了。
3