毕业设计(论文)-基于安卓开发的多媒体设计.doc_第1页
毕业设计(论文)-基于安卓开发的多媒体设计.doc_第2页
毕业设计(论文)-基于安卓开发的多媒体设计.doc_第3页
毕业设计(论文)-基于安卓开发的多媒体设计.doc_第4页
毕业设计(论文)-基于安卓开发的多媒体设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

题 目: 基于安卓开发的多媒体设计 姓 名: 学 院: 数 理 学 院 专 业: 计算机科学与技术 班 级: 计算机120 学 号: 指导教师: 职称: 讲师 2015 年 7月 2日XXVIII目录1 引言11.1项目研究背景21.2研究目的及意义21.3论文主要内容及设计31.3.1 论文主要内容31.3.2项目的设计方法42 Android系统特点与架构52.1 Android系统62.2 Android平台的特点72.2.1Android的优点72.2.2 Android的特点82.3 Android的架构分析9 2.3.1 类库92.3.2 Android运行时的组件93 Android系统开发103.1 Android应用开发语言103.2 Android应用程序结构103.2.1 Android中的API114 音乐播放器设计124.1项目介绍124.1.1UI界面设计144.1.2项目程序结构144.1.3项目Manifest.xml文件144.2创建项目及具体结构分析154.2.1项目的创建154.2.2界面设置164.2.3 结构分析164.3 设计成果及分析174.3.1 设计成果174.3.2问题及分析175 结论18参考文献18基于Android的多媒体设计李兵1881120007摘要:随着城市发展的速度不断变快,人们的生活节奏也随之加快。在现如今这样一个生活压力倍增的社会下,手机的多功能化成为一种趋势。在这样一个社会背景下,Android手机应运而生。 Android是基于Java并运行在Linux内核上的操作系统,这个操作系统具有强大的开发环境,是现下颇受青睐的手机操作系统。 本论文是基于Android系统对音乐播放器的设计,实现了集播放、暂停、停止、上一首、下一首、音量调节为一体的多功能音乐播放系统。文章首先介绍了Android系统的背景及优特点,继而对Android的架构进行了分析并且详细介绍了Android系统开发的语言和一些关键的组件。对于本项目的开发,基于从上到下原则,在对项目需求作了全面的分析后,逐步完成每一模块程序的编写。在论文的最后,展示了本设计的成果并分析了在项目调试中所遇见的各种问题及解决方法。关键字: Android特点与架构,Android核心技术,音乐播放器1 引言Android一词,原意指机器人。此处的Android指的是OHA(开放式手机联盟,Open Handset Alliance)。在2007年10月12日命名的手机开放式源代码平台。这个平台是首歌完整的开放式资源的手机软件平台,包含了开发系统,中间设备,用户界面和核心应用软件。正是因为安卓的开放性使这些第三方开发者更容易操作,这也是使安卓被许多开发者予以重视的原因。安卓开放,易于操作,开发自由且容易,正因为如此,基于安卓的强大的音乐播放器应运而生。Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java 构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。本章主要介绍了本项目的研究背景,研究目的及意义,并且还主要概述了项目的内容及设计方法。通过对于Android的学习与研究,研究目的和意义着手开始对于音乐播放器进行设计。旨在学习研究Android的特点构架以及开发流程及方法。本项目是在Android系统下开发一款多媒体播放器,并学习开发语言Java,多媒体技术,熟悉软件开发流程。1.1项目研究背景Google公司在2007年推出Android以来,一直受到使用者的欢迎。Android是基于Linux内核的软件平台和操作系统,其包含了移动电话正常工作所需要的全部软件,且无专有权的限制。看似平凡的音频和视频资源已成为人们生活中必不可缺少的一部分。于是各种手机音乐播放器也紧跟着发展起来。但很多的播放器一味追求外观花哨,功能庞大,对手机用户来说,这其实造成了很多的资源浪费。在用户需要多任务操作时,带来了诸多不便于影响。是否能在自己手机里装一个简单实用,有自己个性的音乐播放器呢?本文的音乐播放器就是基于Android手机的音乐播放系统设计。特别研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别文件格式,分析各种编码方式的优缺点,以及各种播放器本身的缺点和特点,编写出功能实用,使用方便快捷的播放器。1.2研究目的及意义Android播放器是近年来手机当中比较流行的音乐播放软件。通过结合自己所学的知识来设计和开发Android音乐播放器,可以深入学习Android多媒体框架结构和多媒体框架核心Open Core,并通过对Open Core的学习进一步的认识和理解Android多媒体播放机制,而且还可以在开发软件实物的过程中,熟悉软件开发流程,掌握Android领域小应用开发的方法,学习校内的计算机硬件及架构知识。Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java 构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。1Android平台是完全开放的手机平台,智能手机里的各种应用软件也越来越完备。在Android平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且有很广阔的前景。而本项目的目的是开发一个可以播放MP3文件格式的播放器,并且可以控制播放,暂停,停止,上一首,下一首,音量调节,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。本项目所设计的此款基于Android手机平台的多媒体播放器,使手机显得更生动灵活,与人们的生活更为贴近。这项目设计的实现不仅丰富了使用者的音乐生活,也是令设计者更加熟悉了基于Android平台的应用布局及开发模式的特点,为以后实现更复杂的应用打好基础。1.3论文主要内容及设计本文通过对于Android的学习与研究,研究目的和意义着手开始对于音乐播放器进行设计。旨在学习研究Android的特点构架以及开发流程及方法。1.3.1 论文主要内容在Android系统下开发一款多媒体播放器,并学习开发语言Java,多媒体技术,熟悉软件开发流程。课题主要内容如下:1. Android多媒体框架播放机制。包括了对Open Core,Packet Video(PV) 的学习以及对本项目结构的设计与分析和项目整体的设计流程等内容。2. UI设计与制作包括了对动态界面的布局设计,浮动控制栏的设计,自定义对话框的设计等。其中还包括了各个按钮及进度条的设计。整体设计以布局简单大方为主。3. 媒体文件播放与控制包括对音频文件的暂停,播放,前一首,后一首等功能的控制以及后台播放媒体文件等。4. 媒体文件的信息管理包括媒体文件信息的扫描,存取与获取等。该播放器可以搜索内存卡内所有的歌曲并添加到播放器列表中去。5. 播放信息和用户配置参数的保存与加载。此处所指对播放信息和用户配置参数的保存与加载是指在用户改变音量,歌曲进度等参数后,在下次启动该播放器时自动开启上次关闭时的设置参数。6. 在Android模拟器/真机上实现对媒体文件的播放。在Android模拟器上对现有程序进行调试模拟,在模拟器上模拟成功后,导入平板上再次对该播放器进行真机播放,反复检验设计结果。其中,第二部分详细介绍了安卓系统的特点与架构,主要包含对Android系统的简单介绍,Android平台的特点,Android架构的详细分析等。其三部分别列出了Android系统开发的几个核心技术点,分别包括Android应用程序的开发语言,Android应用程序的主体结构,也包含了对API的介绍。第四部分则开始详细介绍本项目的需求,从项目的基本介绍及控制需求,到项目的设计流程,再到项目设计的各个环节的详细介绍,全面的展示了整个音乐播放器设计的过程及关键点。第五部分展示了设计成果,包含对歌曲的控制,如播放,添加音乐等功能。还分析了设计过程中的几个技术问题以及解决方法并提供了修改方向及意见。1.3.2项目的设计方法本项目的具体设计方法如下:(1) UI设计包括播放视频的表面视图空间,自定义控制条和播放列表。播放列表显示当前列表名称,媒体标题,表演者和时长。在每次进入播放器的时候,获取用户的配置信息和播放器前一次的播放状态,并根据这些信息设置当前的UI。在离开播放界面的时候,自动保存这些信息。UI设计的页面以视觉效果简单大方,功能按钮简洁易操作为主。(2)后台设计使用Android自带的数据库存储媒体数据。管理用户播放列表的操作,包括扫描搜索SD卡上的音视频文件,新建,保存,清除,删除和打开列表。在退出音乐播放器界面后,系统依然可以在后台播放。并且可以通过音量键来随时调节歌曲音量。(3) 播放控制设计对播放器的控制,包括快进/快退,上一曲,下一曲,暂停/播放,打开当前播放列表等。对播放器配置的管理,包括播放模式,音效,显示歌词,通知栏显示等。2 Android系统特点与架构Android一词,原意指机器人。此处的Android指的是OHA(开放式手机联盟,Open Handset Alliance)。在2007年10月12日命名的手机开放式源代码平台。这个平台是首歌完整的开放式资源的手机软件平台,包含了开发系统,中间设备,用户界面和核心应用软件。正是因为安卓的开放性使这些第三方开发者更容易操作,这也是使安卓被许多开发者予以重视的原因。安卓开放,易于操作,开发自由且容易。2本章节主要介绍了Android平台的架构以及特点,还简单介绍了Android应用软件使用的语言Java。安卓有五大优势:开放性,不受运营商束缚;硬件选择丰富;不受限制的开发商;无缝结合的Google应用。Android架构分析包括了Android的应用程序框架,类库,Android运行时的组件。分析Android的架构能够更加清晰的了解整个Android架构的工作原理,对于程序设计起到积极的作用。本节的目的也就在于向读者大致介绍Android 的架构情况以及主要几个部分的功能。2.1 Android系统Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一的中文名称,大多数人称之“安卓”。Android操作系统最初由Andy Rubin开发,最初主要支撑手机。2005年有Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域中。3简单理解,Android是基于Java并运行在Linux内核上的操作系统,这个操作系统是轻量级的,但是功能却很全面。Android采用的是Java虚拟机技术,并具有强大的开发环境,包括一个设备模拟器,调试工具,内存和性能检测,以及Eclipse IDE( Integrated Development Environment)集成开发环境的开发插件。2.2 Android平台的特点 众所周知,安卓有五大优势:开放性,不受运营商束缚;硬件选择丰富;不受限制的开发商;无缝结合的Google应用。2.2.1Android的优点Android平台的五大优势特点:1. 开放性在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著地开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正事丰富的软件资源。开放的平台也会带来更大的竞争,如此一来,消费者可以用更低的价位购得心仪的手机。2. 挣脱运营商的束缚在过去很长一段时间,特别是欧美地区,手机应用往往受到运营商的制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市后,用户可以更方便的连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是营运商口中的笑谈。3. 丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,不会影响到数据同步,甚至软件的兼容问题。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中的优秀软件带到iPhone上使用,联系人等资料更是可以方便转移。4. 不受任何限制的开发商Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥,暴力,情色方面的程序和游戏如何控制正是留给Android的难题之一。5. 无缝结合的Google应用如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。42.2.2 Android的特点 Android系统有如下的几大特性:5(1)应用程序框架支持组件的重用与替换每一个应用程序都可以拆分成不同的部分,这些不用的部分不受限于在此应用程序内使用,也可以应用在别的应用程序中。(2)Dalvik虚拟机专门为移动设备做了优化对于Android应用程序的检验,可以首先在虚拟机上进行。不过,不同的应用程序所需要的虚拟器的版本不同,通常版本高的都可以兼顾到低版本的虚拟器。(3)内部集成浏览器 该浏览器基于开源的WebKit引擎Android自带的内部浏览器,基于开放源代码的WebKit, 灵活性更强,使用更方便。(4)优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 基于OpenGLES的Android自带图形优化库能使Android系统中所有照片的图像效果更为突出。(5)SQLite 用作结构化的数据存储Android系统将SQLite 用作结构化的数据存储,将整个存储系统安排的更加合理化,节省空间,增加内存使用率。(6)多媒体支持 包括常见的音频、视频和静态印象文件格式Android系统内部自带音频与视频播放器,例如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF等。(7)GSM电话(依赖于硬件)(8)蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)(9)照相机,GPS,指南针,和加速度计 (依赖于硬件)(10)丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件最后4点都是Android丰富多种的硬件选择,用户和开发商均可以按照自己的喜好及要求去添加自己需要的软,硬件。2.3 Android的架构分析Android架构分析包括了Android的应用程序框架,类库,Android运行时的组件。分析Android的架构能够更加清晰的了解整个Android架构的工作原理,对于程序设计起到积极的作用。本节的目的也就在于向读者大致介绍Android 的架构情况以及主要几个部分的功能。2.3.1 类库在Android中包含一些C/C+的类库,这些类库能被Android系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下: 8(1)surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如:在2D、2D显示上的合成、叠合动作。(2)3Dlibraries:主要是依openGLES1.0规范所定义的3D绘图引擎。该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最佳化的处理显示。(3)SGL:主要是处理有关显示2D方面的绘图引擎。(4)Media Frame work:主要是以packetVideo公司的OpenCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式(5)Free Type:主要是用来显示点阵图和处理向量字形的。(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为3.0。SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Proto col):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有:认证用户和服务器,确保数据发送到正确的客户机和服务器;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改变。(7)SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。(8)web Kit:是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的web视图,也可以让开发者利用这个引擎来做不同的应用。(9)lib c:就是一个BSD标准C类库。但是,针对Linux嵌入式装置进行过最佳化的调整。2.3.2 Android运行时的组件虽然Android是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。3 Android系统开发本章节主要对Android系统开发作了详细的介绍。Java是Android上的主流开发语言,各种支持也最完善。本项目的播放器实例也是用Java开发的。不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。另外,本章还介绍了以下四个组件的用途及功能:活动;意图接收器;服务;内容提供者。3.1 Android应用开发语言 Java是Android上的主流开发语言,各种支持也最完善。Android发布的API和SDK也都是主要面向Java开发人员的。本项目的播放器实例也是用Java开发的。虽然在大学里面没有相应Java的实用教程,但是在一学期的自学中也发现,其实Java并不难入手。Java语言和其他语言相比,最大的优势就是能够在所有的计算机上运行,这也是Java风靡全球的主要原因。Java之所以能做到这一点,是因为Java可以在计算机的操作系统之上再提供一个Java运行环境,即一个运行Java程序的平台,这个平台由Java虚拟机(Java Virtual Machine, JVM)、类库以及一些核心文件组成。9 3.2 Android应用程序结构Android应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以互相调用(需要在代码中设置相应权限)。例如我们需要编写一个内嵌有网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的Chrome Lite浏览器组件。又假如我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要在编写该功能。也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。3.2.1 Android中的API以下简单介绍Android中几个主要的API:(1)Activity一个Activity实际上表现出来的就是一个程序的界面。这个界面可能有许多不同的形式,比如有列表形式,有文字形式,有图像等形式。10一个应用程序也可能不止一个Activity。比如一个短消息程序,需要有列表显示所有消息的Activity,还至少需要一个编辑短消息的Activity(界面),还可能需要设置,菜单等界面。(2)ServiceService是一种没有界面的组件,与我们通常在Windows或Linux系统中所理解的“服务”一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service组件是至关重要的。以下载管理器为例,用户肯定希望能够在切换到其他程序时仍然在后台进行下载,这就需要用到service完成下载工作。而显示下载进度,已下载文件等信息则由Activity完成,同时我们还希望能控制下载过程,比如停止,继续等,这就需要Activity与Service之间进行通信。Android允许Activity连接或者绑定到Service上,这样就可以让用户在界面上控制Service的行为。11(3)Broadcast receiverBroadcast意为广播信息,Android系统自身会发出许多广播信息,如电量不足,用户修改了全局设置等,各个应用程序也可以向整个系统广播消息,例如文件下载完毕等。(4)Content providerContent provider 是一种为其它应用程序提供数据的组件。这些数据可以保存在文件中,也可以保存在SQLite数据库中,还可以以其他任何有效方式保存。Content Provider类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。其它应用程序在需要使用这些数据时,可以用ContentResolver对象,使用其中的方法。ContentResolver可以与任何Content Provider交互,获取其中的数据。12 (5)IntentAndroid中的Activity, Service以及BroadcastReceiver组件之间的通信全部使用的是Intent,但是各个组件使用的Intent机制不同。 (6)AndroidManifest.xml文件AndroidManifest.xml是每一个应用都必不可少的文件,位于应用根目录下,它描述了程序包的全局变量,包括暴露的应用组件(Activity,Service等等)和为每个组件的实现类,什么样的数据可以操作,以及在什么地方运行。134 音乐播放器设计本章具体介绍了本项目的基本设计需求,对项目的设计结构和流程进行了分析,具体且全面的描述了整个项目的设计要点,包括项目结构及用户界面上的,也包括程序结构上的一些关键点。也介绍了在项目创建过程中需要注意的事项。另外,还展示了音乐播放器实现的效果图,包括主界面和各个子界面。另外还分析了该项目开发过程中的3个问题。分别是模拟器在模拟过程中生成临时文件而占用内存而出现故障的问题,程序调试过程中出现的问题以及尚未解决的歌曲名称及SD卡有时不能显示出的问题。4.1项目介绍本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对设计过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、等功能于一体,性能良好,在Android系统中能独立运行。本设计简单实用,没有过于花哨的功能与界面,简单的功能不仅仅操作方便,还为系统资源节省空间。在Android系统下开发一款多媒体播放器,并学习多媒体技术,熟悉软件开发流程。Android多媒体框架播放机制,包括:Open Core,Packet Video(PV)。UI设计与制作,包括动态界面布局,浮动控制栏,自定义对话框等。媒体文件播放与控制,包括音视频文件的播放,后台播放媒体文件等。媒体文件的信息管理,包括媒体文件信息的扫描,存取与获取,数据库操作等。播放信息和用户配置参数的保存与加载。在Android模拟器/真机上实现对媒体文件的播放。4.1.1UI界面设计Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转20Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)。 21五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android数据库:在第三章已经介绍过了。这里不再介绍Android配置文件:AndroidManifest.Xml及res资源文件中各种属性 布局方式 引用的资源等。Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定,目前最大支持800X600的分辨率。4.1.2项目程序结构 Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。 下图4.4-4.7为音乐播放器代码结构和各界面的配置文件,图像资源等,图4.4 为一个Android工程所必须的结构,图4.5为该播放器的.Java文件,图4.6为播放器所用到的字符串,字体大小,字的颜色等配置文件,图4.7为该播放器的图片资源。 (图 4.3) (图 4.4) (图 4.5) (图 4.6)4.1.3项目Manifest.xml文件 Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。任何一个AndroidManifest.Xml文件的格式都应为:Android系统有一个编码的规定,支持的编码是utf-8,当程序中出现乱码是,我们须将其编码格式转化为utf-8.在 AndroidManifest.xml中会在第一行声明一句:。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=/apk/res/androidxmlns(XML namespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。4.2创建项目及具体结构分析本节着重分析项目结构中每一个功能的功能设计与创建方法。包括了项目的创建,界面的设计以及对项目结构的分析。4.2.1项目的创建可以使用Eclipse插件创建一个简单的Android程序。在创建新项目时需要注意输入以下信息:Project name(项目名称): chengcheng Music Player Build Target(需要的版本): Android 1.5Application name(应用名称): Music Player1Package name(包名): .karl.musicCreate Activity(Java项目名称): Music Player在实际程序中,我们可以定义自己的名称。其中软件包名称尤为重要。系统中的每个应用程序都必须具有唯一的软件包名。因为在很多地方都会用到软件包名,所以一旦设定好软件包名就不要随意修改它。4.2.2界面设置配置文件setting.Xml布局结构如下:最外层的LinearLayout里面嵌套多层LineaLayout,子LinearLayout里面嵌套着单选按钮RatioGroup 和开关按钮ToggleButton。RatioGroup 里面嵌套着3个RatioButton,即界面上显示的(单曲循环、随机播放、顺序播放)。播放模式用的是一个组件RadioGroup,这个组件有单项选择的功能,里面有RadioButton项,多个RadioButton项只能同时选中一个,该 播放器播放模式有单曲循环,随机播放,顺序播放等功能。MediaPlayer有一个监听器,它监听着歌曲是否正在播放或者是否播放完成,当歌曲播放完成时,会触发方法OnCompletionListener(),在该方法里面可以处理歌曲播放完成后的操作。RadioGroup可以进行单项选择操作。通过RadioButton.isChecked(),如果返回true,刚该项被选中。4.2.3 结构分析(1)播放器的.Java文件.Java文件是本项目的主要功能实现程序。在.karl.music程序包中的以下文件:AlbumsActivity.java, ArtistActivity.java, ItemActivity.java, MainActivity.java, MusicActivity.java, MusicService.java, SongActivity.java其中,AlbumsActivity.java文件主要描述并定义了专辑的视图界面以及功能作用。ArtistActivity.java文件主要描述并定义了艺术家的视图界面以及功能作用。ItemActivity.java文件主要描述并定义了歌曲项目的视图界面以及功能作用。MainActivity.java定义并实现了记忆上一次运行该项目的动作,在下一次打开运行后继续该操作。MusicActivity.java文件主要描述并定义了音乐播放器主界面的视图界面以及功能作用。MusicService.java是音乐播放器在后台运行的程序。SongActivity.java文件主要描述并定义了最近播放歌曲的记忆功能。(2)播放器的图片资源播放器的图片资源主要在res文件夹中。当然也可以通过更换res中的图片来更换音乐播放器各个UI界面的背景或其他按钮图片。对于不同的界面,比如播放界面,歌曲列表界面,艺术家界面或者最近播放界面,都快可以设置不同的背景图片,这就使整个播放器在色调方面不显得那么单一了。4.3 设计成果及分析在经过多次的程序调试及模拟器和真机测试后,本音乐播放器的设计成果及界面效果图会在本节中做概要介绍。4.3.1 设计成果(1) 音乐播放界面如下图4.7所示:(图4.7)上述便是在经过多次的程序调试及模拟器测试后,本音乐播放器的设计成果及界面效果图。5 结论(1) 通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成,只要掌握了这六部分的开发,音乐播放器就能初具规模。而其它的功能都是在这六个功能的基础上去补充添加的,但是这是功能的确是必不可少的功能,否则就不能算是音乐播放器了。(2) 音乐播放器系统实现了播放器的基本功能:播放,暂停、停止、上/下一首、音量调节、文件浏览器、播放列表查询等功能。运用的系统平台是现今最热门的Android系统,是一个开源的基于Linux系统的手机平台。是以Java语言编写+SQLite数据库支持+SharePreference配置文件的组合方式进行数据管理。实现了音乐播放器的系统编程。(3) 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclipse3.7+Java语言的支持,Android Development Tool的插件,和Android SDK2.1版本的全面结合,才使整个音乐播放器系统得以实现。(4) 总之,经过对多媒体播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,这对我以后的Android项目开发有很大的帮助。参考文献1 雍俊海编著.Java程序设计习题集M.北京:清华大学出版社,20062Jasmin Blanchette,Mark Summerfield. C+ GUI Programming with Java. M Publisher:Prentice Hall PTR,January 15 2004. 15253 朱福喜编著.Java语言习题与解析M.北京:清华大学出版社,20064 赵文靖编著.Java程序设计基础与上机指导M.北京:清华大学出版社,20065 吴其庆编著.Java程序设计实例教程M.北京:冶金工业出版社,20066王克宏 著Java技术教程(基础篇)M北京:高等教育出版社,2002.047 JavaEye论坛/forums 2010-04-15.8Trolltech Inc. Android Reference Documentation 3.3.2. /title-cn. 2004年9耿祥义,Java大学实用教程M,北京:电子工业出版社,2005.3 10 杨丰盛主编Android 应用开发揭秘M西安:机械工业出版社,2010-01-2511 eoe.Android开发社区/ 2010-04-10.12 高焕堂编Android 应用框架原理与程式设计(第三版)M北京:清华大学出版社,2008-10-0313shane Condor, Lauren Decry. Android移动应用开发从入门到精通M.北京:人民邮电出版社,201014G.N.Wassef. Lipoprotein (a) in android obesity and NIDDM: a new member in the metabolic syndromeM. Biomedecine & Pharmacotherapy, Volume53, Issue 10,December 1999,Page 462-465.15Federico Perfetto, Roberto Tarquini, Germaine Comealissen, Giorgio Mello, Alessio Tempestini, Paola Gaudiano, Francesco Mancuso, Franz Halberg. Circadian phase difference of leptin in android versus gynoid obesityM. Peptides, Volume 25, Issue 8, Auguest 2004, Page 1297-1306.16Nesrine Attia, Natalie Fournier, Benoit Vedie, Michele Cambillau, Philippe Beaune, Olivier Ziegler, Alain Grynbery, Jean-Louis Paul, Bruno GuerciM.Impact of Android overweight or obesity and insulin resistance on basal and postprandial SR-BI and ABCA1-mediated serum cholesterol efflux capacities. Atherosclerosis, Volume 209, Issue 1, January 1st,2008. Pages 95-103.17Alessandro Distefano, Gianluigi Me, Francessco Pace. Android anti-forensics through a local paradigmM. Digital Investigation, Volume 7, Supplement 1, August 2010, Pages S83-S9418 余志龙编著Google Android SDK开发范例大全M北京:人民邮电出版社,2009-7-1.19 张孝祥著 java就业培训教程M北京:清华大学出版社,2007.20 Ming-Chiao Chen, Jiann-Liang Chen,Teng-Wen. Android/OSGi-based vehicular network management systemM. Computer Communications, Volume 334, Issue 2, February 15th 2011, Pages 169-18321Reto Meier. Android高级编程M.北京:清华大学出版社,2010.源代码package com.xue.Mp3Player;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.app.ListActivity;import android.

温馨提示

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

评论

0/150

提交评论