基于Android平台的手机音乐播放器的设计与实现模板Word格式文档下载.docx
- 文档编号:18949458
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:37
- 大小:1.83MB
基于Android平台的手机音乐播放器的设计与实现模板Word格式文档下载.docx
《基于Android平台的手机音乐播放器的设计与实现模板Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Android平台的手机音乐播放器的设计与实现模板Word格式文档下载.docx(37页珍藏版)》请在冰豆网上搜索。
本文主要是对Android系统上音乐播放器应用程序的设计与实现进行讨论。
采用了Android开源系统技术,利用Java语言和Eclipse编辑工具编写程序,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、播放模式设置等功能于一体,性能良好,在Android系统中能独立运行。
希望通过本次设计,了解音乐播放器的设计原理和实现的相关技术,掌握Android编程思想以及基本的应用组件,为以后从事Android开发打下基础。
关键词:
Android;
音乐播放器;
应用程序开发
Abstract
Withtheprogressofscienceandtechnology,thedevelopmentofthecommunicationtechnology,mobilephoneonPeople'
sDailylifeismoreandmoreimportant,evenfainthasatendencytogobeyondtraditionalPC.Androidasanopensourcesystem,hastheuniqueadvantages,hasformedthemainstreamofthecurrentindustrydevelopmenttrend.BasedontheAndroidplatformapplicationdevelopmentquickandeasy,hasgooduserexperience,willbecomethevaneofthemobileInternetera.ThisarticlemainlydiscussaboutthedesignandimplementationofamusicplayerapplicationontheAndroidsystem.UsedtheAndroidopensourcesystemtechnology,usingtheJavaprogramminglanguageandEclipseeditingtooltowriteprograms,andgivesthedetailedsystemdesignprocess,interfacediagramandmainfunctionoperationflowchart,themusicplayerhasplay,pause,stop,previous,Next,Playmodesettingsandotherfunctions,theperformancegood,canrunindependentlyintheAndroidsystem.Hopethatthroughthisdesign,understandthemusicplayerdesignprincipleandimplementationofrelatedtechnology,graspAndroidprogrammingideasandbasicapplicationcomponents,tolaythefoundationforengagingAndroiddevelopmentinthefuture.
Keywords:
Android;
Musicplayer;
Applicationdevelopment
1.引言
1.1选题目的及意义
随着科技的进步,通信技术的迅速发展,手机的功能越来越多,对我们日常生活的影响也是越来越大,甚至有着超越传统PC的趋势。
现如今的手机不再是只能拨打电话,发送短信的通讯工具,它还可以上网,玩游戏,播放音频、视频,甚至编辑文档等等。
随着手机的发展,各种手机播放器也紧跟着发展起来,但是目前很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费。
比如CPU,内存等的占用率过高,在用户需要多任务操作时,就会有不小的影响,给用户带来了许多不便。
对于大多数普通用户用来,许多功能是用不上的,形同虚设。
所以开发一款实用并且小巧玲珑的手机音乐播放软件是具有良好的市场和应用前景的。
当今时代是移动互联网时代,360董事长周鸿祎曾说过,“谁输在了移动互联网上,谁就输了未来,谁抓住了移动互联网的机会,谁就有了未来成功的门票。
”足见移动互联网的重要性。
所以本课题致力于开发一款基于Android平台的手机音乐播放器,抓住移动互联网的机会,以此学习并掌握Android移动平台应用开发的技能。
1.2国内外的研究现状
目前国内的Android开发还是主要以应用开发为主,主要分成3类:
为企业开发应用、开发通用应用以及游戏开发。
第一类开发者一般身处规模较大的公司,除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。
第二类开发者一般处于创业型公司或者是独立开发者,主要靠为国外公司进行外包开发和通过Google的移动广告点击分成。
理论上是通过付费下载的形式来盈利,现在国内鲜见成功者。
第三类开发者,目前和第二类开发者类似[1]。
1.3可行性分析
由于手机市场的庞大,手机操作系统也是各式各样。
其中比较有代表性的手机操作系统有四个,Windowsmobile,Symbian,IOS,以及谷歌的Android操作系统。
相比于Symbian的日落西山,以及苹果的封闭、WindowsPhone的前途未卜,Android无疑代表了当前行业发展的主流趋势:
开放平台取代了封闭平台。
让参与者均能通过自己的努力而获益[1]。
Android是Google公司历经数年和投资数亿美元开发出来并于2007年11月5日公布的智能手机操作系统。
随着各大移动终端生产商大力开发和生产基于Android的移动智能设备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。
而且Android是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。
Google公司于2007年11月5日宣布组建的一个全球性的联盟组织——开放手机联盟,Google、中国移动、T-Mobile、三星、高通、德州仪器等领军企业将通过开放手机联盟携手开发Android。
Android系统采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能;
其他的应用软件则由各公司自行开发,部分程序以Java编写。
本课题应用基于Android框架开发,可以在eclipse中安装Android开发工具,使用Android模拟器,也可以使用任意Android终端。
模拟器和真正的Android手机没有太大区别,人们对手机操作早已熟悉。
操作起来相当方便。
综合以上几方面,该应用的开发具有很高的可行性。
2.Android项目介绍
2.1什么是Android
2.1.1Android简介
Android一词最先出现于法国作家利尔亚当(AugusteVilliersdel'
Isle-Adam)于1886年发表的科幻小说《未来夏娃》(L'
è
vefuture)中,作者将外表像人的机器起名为Android。
据说Android系统之父安迪·
鲁宾(AndyRubin)是效仿LinusTorvalds命名Linux系统的方式来给Android系统命名的。
[2]同时,它也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。
该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的软件平台和操作系统[3]。
Android系统是一款基于Linux内核的综合系统平台,集合了应用程序、应用程序框架、系统核心库、Dalvik虚拟机、Linux内核等一系统功能模块。
采用了软件堆层的架构,由三个部分组成。
底层以Linux为操作系统内核,提供进程管理、存储管理等基本功能[4]。
其他各公司自行开发市场需求的应用软件,部分程序以java编写。
Android系统最初并不是由Google公司研发出来的,而是由安迪·
鲁宾带领的团队创立的。
他曾创立两个操作系统公司,Android为其中之一。
Google公司于2005收购了Android系统,安迪·
鲁宾则成为其工程部副总裁,继续负责Android项目的研发工作。
从此,Android系统踏上了飞速发展的道路。
2007年11月5日,Google公司正式向外界展示了Android系统,并在当天宣布建立一个全球性的联盟组织——开放手机联盟(OpenHandsetAlliance)。
该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商组成,支持Google发布的手机操作系统以及应用软件,并共同开发Android系统的开放源代码[5]。
随着时间的推移,Android系统逐渐壮大,目前在智能手机和平板电脑市场均处于霸主地位。
采用Android系统主要厂商包括HTC、SAMSUNG、LG、魅族、华为、中兴、联想、小米等。
目前最新SDK版本为Android4.4。
2.1.2Android的基本框架
Android的系统架构和其操作系统一样,采用了分层的架构。
从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
图1Android系统架构图
(1)应用程序层
Android不仅是操作系统,也包含了许多的应用程序。
其中包括诸如SMS短消息程序,email客户端,地图,浏览器,联系人管理,日历程序等等。
所有应用程序都是使用JAVA语言编写的,并且可以被开发人员所开发的其他程序替代。
(2)应用程序框架层
应用程序框架层是Android应用开发的基础,允许开发人员完全访问核心应用程序所使用的API框架。
该层简化了组件的重用,开发人员可以直接使用其提供的组件进行快速的应用程序开发,也可以通过继承实现个性化的拓展。
主要包括如下组件:
视图系统(ViewSystem)、内容提供者(ContentProviders)、资源管理器(ResourceManager)、通知管理器(NotificationManager)、活动类管理器(ActivityManager)、窗口管理器(WindowManager)、电话管理器(TelephonyManager)等等。
(3)系统运行库层
系统运行库层主要分为系统库和Android运行时环境两部分。
系统库
系统库是应用程序框架的支撑,同时也是连接应用程序框架层与Linux内核层的重要纽带,主要包含以下几部分:
执行多个应用时,管理显示与存取操作之间互动,也负责2D、3D绘图显示合成的SurfaceManager、多媒体库MediaFramework、关系型数据库引擎SQLite、绘图函数库OpenGLEs、提供点阵字与向量字描绘与显示的FreeType、浏览器引擎WebKit、底层2D图形渲染引擎SGL、安全认证SSL、C系统库函数Libc。
Android运行时环境
Android应用程序在Android运行时环境中执行,运行时环境可以分为核心库和Dalvik虚拟机两部分。
核心库提供了Java语言中所封装的大多数类和方法。
如android.os、、android.media等。
Dalvik虚拟机是Google公司自己设计的用于Android平台的Java虚拟机,主要有以下几个特征:
所有类文件编译完成的CLASS文件都会整合到一个DEX文件中,减少了文件大小,方便I/O操作,也提高了类的查找速度;
每一个Android应用程序都运行在一个相对独立的Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间;
Dalvik虚拟机是基于寄存器的,虽然硬件通用性比基于堆栈的虚拟机要差一些,但是代码的执行效率却更胜一筹,基于寄存器的虚拟机可以更有效地减少冗余指令的分发和减少内在的读写访问。
(4)Linux内核层
Android的核心系统服务依赖于Linux2.6内核,如安全性,网络协议栈,内存管理,驱动模型和进程管理。
Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。
同所有Linux内核一样,Android内核是介于硬件层和软件组之间的一个抽象层次。
2.1.3Android系统的四大组件
Android开发四大组件分别是:
Activity活动:
用于表现功能。
ContentProvider内容提供者:
支持在多个应用中存储和读取数据。
BroadcastReceiver广播接收器:
用于接收广播。
Service服务:
后台运行服务,不提供界面。
Activity
Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。
一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
一般一个Android应用是由多个Activity组成的。
多个Activity之间可以进行相互跳转和通信,主要是通过Intent(意图)来实现的。
ContentProvider
在Android中,数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他应用直接访问的。
如果一个应用需要使用其他应用的文件要怎么办呢?
这个时候就要用到ContentProvider了。
应用想对外提供的数据,可以通过派生ContentProvider类,封装成一枚ContentProvider,每个ContentProvider都用一个uri作为独立的标识,形如:
content:
//com.xxxxx。
这样,其他应用就可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据(相当于在应用外包了一层壳)。
BroadcastReceiver
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。
广播接收器没有用户界面。
然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。
通知可以有很多种方式来吸引用户注意力,一般来说是在状态栏上放一个持久图标,用户可以打开它获取消息。
同时,应用还可以通过使用Context.sendBroadcast()将它们自己的IntentBroadcasts广播给其他应用程序。
Service
相信熟悉Windows系统的人都知道Windows有许多的服务,Android中的服务与Windows中的服务非常相似。
准确一点来说,服务是可以在后台长期运行的没有界面的组件。
服务不能自己运行,需要通过Contex.startService()或Contex.bindService()启动服务,两种方式主要区别就是使用startService()启动的服务与调用者没有关系,就算调用者关闭了,服务还在后台一直运行,想要停止服务必须使用Contex.stopService();
使用bindService()启动的服务与调用者绑定,调用者一旦关闭,服务也就终止,而且通过绑定方式启动服务时,调用者可以执行服务中的一些方法。
通常情况下可以利用这两种方式混合启动服务,达到调用服务中的方法,而调用者关闭时服务又不会立刻终止的效果。
2.2Android开发环境的搭建
进行Android应用开发之前,我们首先要搭建一个Android应用开发环境。
下面介绍一下如何搭建Android应用开发环境。
Android由多个开发包组成的,其中最主要的开发包如下:
JDK(Java语言的软件开发工具包):
可以到网址
AndroidSDK(Android软件开发工具包):
可以到网址SDK和Eclipse的开发工具。
Eclipse开发环境需要JRE的支持,所以必须先安装JDK,双击我们下载到的JDK安装包开始安装,选择好安装路径,按照提示操作即可完成JDK及JRE的安装。
JDK安装完成后需要配置环境变量,右键点击我的电脑,选择属性,选择左边的高级系统设置,再在弹出的对话框中点击环境变量,在用户变量中新建一个变量,变量名为PATH,变量值中填上JDK和JRE的安装目录下bin文件夹的路径,中间以“;
”隔开。
不同系统设置可能有些许不同,但大体上是一致的。
具体过程如以下组图所示:
图2系统变量设置
图3系统变量设置
图4系统变量设置
图5系统变量设置
配置好环境变量后需要测试看JDK是否正确安装,按win+R键打开运行窗口,在对话框中输入CMD,在弹出的命令提示符窗口中输入java按下回车键,看是否能打印出信息,再输javac按下回车看是否能打印出信息,能得到如下图所示的信息说明JDK与JRE都已正确安装了。
图6验证JDK是否正确安装
图7验证JDK是否正确安装
安装完JDK之后,直接解压下载到的ADT工具包到你想安装的路径下即可得到Eclipse和AndroidSDK以及一个SDKManager应用程序。
解压完成后同样需要配置环境变量,双击用户变量中的PATH变量,将SDK中的tools和platform-tools路径添加到变量值中。
然后打开CMD,输入android–h按下回车键,若能打印出帮助信息则说明SDK已经正确配置,可以使用了。
双击打开SDKManager.exe或者打开CMD,输入命令android打开SDK管理器,在这里下载安装好开发时需要用到的Android系统版本以及工具。
图8SDK管理器
安装好需要的Android系统版本文件后,在CMD中输入命令androidavd打开AVD管理器,配置Android模拟器,点击New新建一个模拟器,选择好系统版本、屏幕大小、CPU、RAM大小以及SDCard大小后点击OK即可,屏幕、RAM以及SDCard大小建议不要设置太大,以免造成模拟器运行卡顿。
图9AVD管理器
2.3Android音乐播放器工程结构
Android工程基本结构目录包括:
src(源代码)、gen(Android系统自动生成的常量)、Res(资源文件):
主要存放程序界面的布局配置(.xml)文件和图片资源。
AndroidMainfes.xml是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。
Android资源的类型和布局如下图:
图10Android资源类型和布局
下面组图为音乐播放器代码结构和各界面的配置文件,图像资源等,图11为一个Android工程所必须的结构,图12为该播放器的类文件,图13为播放器所用到的字符串,字体大小,字的颜色等配置文件,图14为该播放器的各种界面的布局配置文件,图15为该播放器的图片资源。
图11
图12图13
图14图15
3.系统需求分析
本项目目的是开发一个可以播放MP3格式音乐文件的播放器,并且能够控制播放、暂停、上一首、下一首、随机播放、列表循环、单曲循环等播放模式设置,具有来电自动暂停,挂断电话自动继续播放功能,具有歌曲列表功能,具有较好的视觉外观,界面简明,操作简单。
根据项目目标,我们可以获得系统的基本需求。
下面将介绍系统需求。
3.1构成模块
本项目构成模块如右图所示。
对模块的具体说明如下。
(1)歌曲列表模块
此模块将自动扫描扩展卡中MP3格式的文件并
显示出来,用户点击某一歌曲后将会跳转到播放界。
(2)播放控制模块
此模块功能是控制音乐的播放。
具体功能如下。
播放
用户点击播放按钮时,播放器将播放选中歌曲。
图16模块结构
暂停
播放器正在播放时,用户点击暂停按钮,将暂停播放。
上一首/下一首
用户点击上一首或下一首按钮时,播放器将自动播放上一首或下一首歌曲。
播放模式
播放器默认播放模式为顺序播放,另有三个按钮,分别为随机播放、列表循环、单曲循环,用户按下相应按钮,播放器播放模式将切换到相应的播放模式。
3.2系统流程
音乐播放器系统流程图如下图所示。
图17系统流程图
3.3系统结构
音乐播放器系统的完整功能结构如下图所示。
图18功能结构图
3.4系统需求
3.4.1系统界面需求
播放器界面要求布局合理,有较好的视觉外观,界面简明,操作简单,为减少开发工作量,图片素材均为网上下载到的素材。
3.4.2系统性能需求
由于Android手机系统要求的无响应时间为5秒,故有如下性能要求:
当歌曲列表与播放界面相互跳转时,程序响应时间最长不能超过5秒。
当要求歌曲播放时,程序响应时间最长不能超过5秒。
当要求歌曲暂停时,程序响应时间最长不能超过5秒。
当要求歌曲播放上一首、下一首歌曲时,程序响应时间最长不能超过5秒。
3.4.3运行环境需求
运行系统:
Android2.1~Android4.3版本
开发环境:
Eclipse4.2.1ADT22.3.0
4.详细设计及功能实现
本音乐播放器可用2个Activity和1个Service来实现,通过Activity来显示歌曲列表和播放界面,使用Service在后台播放音乐,通过一个Application类来存放全局变量,用于Activity间以及Activity和Service之间数据的传递。
4.1播放器界面的设计
4.1.1歌曲列表界面设计
程序启动时首先进入歌曲列表界面,该界面通过一个RelativeLayout布局来实现,上方使用一个Textview来显示标题“歌曲列表”,下方是一个Listview控件,用于显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 平台 手机 音乐 播放 设计 实现 模板