ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:742.98KB ,
资源ID:9371539      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9371539.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(nadroid平台开发的一款较具个性媒体音乐播放器.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

nadroid平台开发的一款较具个性媒体音乐播放器.docx

1、nadroid平台开发的一款较具个性媒体音乐播放器1 引言11 项目背景随着科技的进步,人们对手机功能的要求也越来越高,不仅需要方便携带,更需要娱乐消遣。手机操作系统也不断改进,而今当下主要有Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。而本文的音乐播放器就是基于谷歌Android手机平台的播放器。Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作

2、品音乐播放器就是基于Android平台的。从最早的所谓的“大哥大”发展到现在的商务PDA手机,智能手机,音乐手机等等,功能也从单纯的打电话发展到了发短信,听音乐,上网,甚至游戏.显而易见,手机和我们的生活联系愈来愈紧密,手机的功能也越来越成为很多人关注的焦点。相信在不远的将来,手机会比电脑的用户更多!目前手机的音乐播放器功能已经是大家比较关注的一个部分了,作为一个音乐爱好者,在自己准备买手机的时候,我也会比较注重这部分,当然也会有许多像我一样的消费者,这也足以看出目前大家对音乐播放器功能的重视,所以一款性能好的手机音乐播放器软件一定会受到追捧。一款专业的音乐播放软件是手机中必不可少的要素,几乎

3、市场上所有的手机都拥有一个自带的音乐播放软件,来满足广大用户的需求,所以网上出现了各种各样的手机音乐播放软件,以满足用户的不同需求。不同手机平台的手机,所支持的音乐播放软件也是各不相同,而现在最流行的手机平台就是google的Android手机平台,所以本课题就致力于开发一款基于Android手机平台的音乐播放器,来满足用户的使用需求。此设计是针对当前市场上比较受Android系统手机用户关注的音乐播放器功能的实现,使其拥有上一曲,下一曲,快进,快退,显示歌词等功能较全面的音乐播放器。更好的符合大众品味,使之界面更人性化。12 编写目的随着社会的不断进步,人们所面对的社会压力也愈来愈大,而音乐

4、就是舒缓情绪缓解压力的一种方式,而此设计的目的就是是针对当前市场上比较受Android系统手机用户关注的音乐播放器功能的实现,它可以让你随时随地的让你享受到音乐,舒缓压力。它是一款拥有上一曲,下一曲,快进,快退,显示歌词等功能的音乐播放器,操作简单方便,更贴近大众化。本设计是在当下很受欢迎的Android平台开发的一款较具个性媒体音乐播放器,它使用灵活,与人们的生活更加接近,是人么的生活更加丰富多彩。2 Android项目介绍2.1 Android简介Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的以Linux为基础的开放源码操作系统,主要使用于便携设备。

5、目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,Android分

6、为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等)

7、,还有其他诸如:Qt(qt for Android)、Mono(mono for Android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。而在Android系统底层方面,Android使用C/C+作为开发语言。目前最新SDK版本为Android

8、4.0。2.1.1 Android 特性 Android系统有如下的几大特性:应用程序框架 支持组件的重用与替换 Dalvik虚拟机 专门为移动设备做了优化 内部集成浏览器 该浏览器基于开源的WebKit引擎 优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES SQLite 用作结构化的数据存储 多媒体支持 包括常见的音频、视频和静态印象文件格式,如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF) GSM电话(依赖硬件) 蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件) 照相机,GPS,指南针,和加速度计 (依赖于硬件)

9、丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表, 和Eclipse集成开发环境插件。2.1.2 Android基本框架(Android Architecture) 图 2.1 Android Architecture(1)ApplicationsApplication Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。(2) Application FrameWork 开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何

10、一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。所有的应用程序都由一系列的服务和系统组成,包括: 可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器。内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串

11、,图形,和分层文件(layout files )。通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(3)Libraries库 Android 包括一个被 Android 系统中各种不同组件所使用的 C/C+ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:系统 C 库- 一个从 BSD 继承来的标准 C 系统函数库( libc ),专门为基于 embedded linux 的设备定制。 媒体库- 基于 Pack

12、etVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。 LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。 SGL - 一个内置的2D图形引擎 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType - 位

13、图(bitmap)和向量(vector)字体显示。 SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。(4) Android RuntimeAndroid 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

14、Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。 (5)Linux kernel(Linux内核)Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。linux内核基础为linux平台,linux为C语言编写的内核,基于此内核又衍生出了具体的Red hat linux 、open suse linux等具体的操作系统,一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。由于Linux使用C编写而成,因此可以直接对

15、计算机的底层硬件进行操作。 Linux具有良好的可移植性,而且以linux为内核的GUI+CLI操作系统具有良好的安全性,因此很多的网络公司大多采用以linux操作内核的网络终端操作系统。相对于windows server系列linux的网络终端操作起来效率较高,相比于linux的前身Unix,Linux操作系统不仅优化了操作界面,和操作的简易性,更是提高效率一个优秀的操作系统内核。如果 Linux 内核的可移植性和效率还不够好,Linux 还提供了其他一些特性,它们无法划分到上面的分类中。作为一个生产操作系统和开源软件,Linux 是测试新协议及其增强的良好平台。Linux 支持大量网络协议

16、,包括典型的 TCP/IP,以及高速网络的扩展(大于 1 Gigabit Ethernet GbE 和 10 GbE)。Linux 也可以支持诸如流控制传输协议(SCTP)之类的协议,它提供了很多比 TCP 更高级的特性(是传输层协议的接替者)。Linux 还是一个动态内核,支持动态添加或删除软件组件。被称为动态可加载内核模块,它们可以在引导时根据需要(当前特定设备需要这个模块)或在任何时候由用户插入。Linux 最新的一个增强是可以用作其他操作系统的操作系统(称为系统管理程序)。最近,对内核进行了修改,称为基于内核的虚拟机(KVM)。这个修改为用户空间启用了一个新的接口,它可以允许其他操作系

17、统在启用了 KVM 的内核之上运行。除了运行 Linux 的其他实例之外, Microsoft® Windows® 也可以进行虚拟化。惟一的限制是底层处理器必须支持新的虚拟化指令。2.1.3 Android项目介绍在Android系统中,为我们提供了四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见

18、的,它们只在系统的后台运行。各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转。下面分别介绍四大组件:(1)Activity 在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。(2)Service 顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简

19、单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service 。(3)Broadcast Receiver Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组

20、件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent。 (4)ContentProviderContent Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在Android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。

21、当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问。一个Android基本应用程序的实现不仅需要组件,也需要开发者选择其应用程序的布局方式,而Android拥有五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)。五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类。Android配置文件:Andro

22、idManifest.Xml及res资源文件中各种属性布局方式引用的资源等。Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)(图2.2),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。图2.2 Android模拟器2.1.4 Android应用程序构成Android应用程序基本有以下几个构成:A、src源代码目录:src目录中包含了一个Android应用程序中所需的全部程序代码文件。B、gen目录:gen目录下面的R.java文件是ADT自动产生的,R.java中定义了一个R类,它包含了与用户界面、图

23、像、字符串等各种资源与相应的编号id。C、Res资源目录:定义了drawable:用于存放.png/.jpg等图片文件,通过resource.getdrawable(id)获得资源。Layout:描述应用程序的用户界面布局格式为.xml。Values:参数目录包含了所有使用了.xml格式的参数描述文件。D、Androidmanifest.xml:它是系统的控制文件,它告诉系统如何处理你所创建的所有顶层组件(尤其是Activity、service、intentReceiver以及ContentProvider)。具体图如下图:图2.3 Android应用程序构成2.2 Android数据存储方式

24、在播放器正常运行时,由于各界面存在相互跳转,为了避免数据在界面跳转的过程中丢失,我们需要将一些数据进行临时存储或者永久存储。Android作为一种手机操作系统,提供了如下几种存取数据的方式:Preference(配置)、File(文件)、SQLite数据和网络 。另外,在Android中各个应用程序组件之间是相互独立的,彼此的数据不能共享。为了实现数据的共享,Android提供了Content Provider组件来实现应用程序之间数据的共享。2.2.1 SharedPreferencesPreference Preference提供了一种轻量级的数据存取方法,一般数据比较少,一些简单的配置信

25、息。它以“键-值”(是一个Map)对的方式,将数据保存在一个XML配置文件中 使用到的接口:Android.content .SharedPreferences提供了保存数据的方法android.content .SharedPreferences.Editor提供了获得数据的方法下面以播放器中的播放模式存取为例:(1).xml配置文件的读取我们仍以播放模式读取为例:当需要用到播放模式的确定时,我们将读取.Xml文件,同样用共享文件类SharedPreferences通过用方法getSharedPreferences(SET_MSG,MODE_WORLD_READABLE),并且是只读方式获得

26、.Xml的文件内容。SharedPreferences的对象调用方法getString(sigle_Play, null),方法返回一个String类型的值,即是我们以前存储进去的String值。此方法当该标记不存在时会默认返回一个null值。获得成功后我们就可以运用当前的值再对程序进行操作了。(2).xml配置文件的存储类SharedPreferences。它有一个方法getSharedPreferences(参数1,参数2),参数1为写进时的标记,便于在从其中读取出来时的标记,参数2为读取模式,有只写模式(MODE_WORLD_WRITEABLE)和只读模式(MODE_WORLD_READ

27、ABLE),在写之前将其置入编辑状态,用静态方法SharedPreferences.Editor editor = sp.edit();然后对象editor可以存入一个HashMap类型的键值,即putString(KEY, VALUES),这样,我们可以将List中的对象转化成一样长的字符中放进配置文件中。当写入成功时,Android系统会自动在目录data/data/工程包名/shared_prefs/目录下生成一个配置文件2.2.2 File存储方式我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件、PDF文件、音视频文件和图片等。Android提供了文件读写的方法 :方

28、法Context.openFileInput()获得标准Java文件输入流(FileInputStream)Context.openFileOutput()获得标准Java文件输出流(FileOutputStream)Resources.openRawResource (R.raw.myDataFile)方法返回InputStream。2.2.3 SQLiteDatabase数据库SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高效的数据库引擎 SQLite数据库不像其它的数据库(如:Oracle),它没有服务器进程。所有的内容包含在同一个单文件

29、中。该文件是跨平台的可以自由拷贝。基于其自身的先天优势,SQLite在嵌入式领域得到了广泛应用 SQLiteDatabase类 SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法 常用方法(图2.4)方法名称方法描述OpenOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)打开或创建数据库Insert(String table,String null ColumnHack,Content Values values)添加一条记录Delete(String table,String wher

30、e clause,String where Args)删除一条记录Query(String table,String columns,String selection,String select Args,String groupBy,String having,String orderBy)查询记录Update(String table,content Values values,String where clause,String where Args)修改记录execSQL(String sql)执行一条SQL语句Close()关闭数据库图 2.4 数据库的常用方法SQLiteOpenH

31、elper类 SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承之,并实现其两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)两个抽象方法来创建和更新数据库常用方法(如图2.5)图2.5 创建和更新数据库常用方法方法名称方法描述SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory f

32、actory,int version)构造一个方法,一般是传递一个要创建的数据库名称name参数onCreate(SQLiteDatabase db)创建数据库时调用onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion )版本更新时调用getReadableDatabase()创建或打开一个只读数据库getWritableDatabase()创建或打开一个读写数据库 Android的三种数据存储方式则让我们可以轻松方便的进行程序编写和数据的访问,更不会让不该消失的数据消失,这对我们进行程序书写有很大帮助。2.3 搭建Android开发环境任何事物要运行,都要有

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1