计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc

上传人:文****钱 文档编号:43800 上传时间:2018-05-10 格式:DOC 页数:75 大小:1.61MB
下载 相关 举报
计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc_第1页
第1页 / 共75页
计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc_第2页
第2页 / 共75页
计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc_第3页
第3页 / 共75页
计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc_第4页
第4页 / 共75页
计算机科学与技术专业毕业设计-基于安卓平台的音乐播放器.doc_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、东北大学秦皇岛分校毕业设计(论文)第1页毕业设计基于安卓平台的音乐播放器院别计算机与通信工程学院专业名称计算机科学与技术班级学号学生姓名指导教师2013年6月10日东北大学秦皇岛分校毕业设计(论文)第I页基于安卓平台的音乐播放器设计与开发摘要ANDROID平台是GOOGLE公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的手机,以

2、丰富自己手机的功能,增加手机在市场上的竞争力。ANDROID平台以LINUX系统作为平台的基础,使用LINUX内核可以加快软件移植速度。本文以ANDROID开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了ANDROID开发平台的开发环境。之后对基于ANDROID平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据ANDROID开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合ANDROID平台提

3、供的资源和对音乐播放器的功能分析最终实现定义的功能。最后对基于ANDROID开发平台的音乐播放系统进行功能测试与验证。关键词ANDROID平台,音乐播放器,基于ANDROID平台的开发与设计东北大学秦皇岛分校毕业设计(论文)第II页THEDESIGNANDDEVELOPMENTOFMUSICPLAYERBASEDONANDROIDPLATFORMAUTHORXXXTUTORXXXABSTRACTANDROIDPLATFORMISGOOGLESLATESTLAUNCHOFAMOBILEPLATFORM,THEPLATFORMFORPROCEDURESOFMOBILEDEVICES,INCLUDE

4、SANOPERATINGSYSTEMS,AMIDDLEWAREANDSOMECRITICALAPPLICATIONSTHEPLATFORMDOESNOTREQUIREANYCHARGESTHECODEISCOMPLETELYOPENDEVELOPERSCANQUICKLYDEVELOPONTHEPLATFORMSYSTEMANDOTHERDEVELOPERSCANUSETHERESULTSOFTHEWORKBYOTHERDEVELOPERSTHEREFORE,ITMADEGREATERFLEXIBILITYFORTHEDEVELOPMENTOFMOBILEPHONE,LESSWORK,SHOR

5、TCYCLE,RAPIDPROTOTYPINGANDONESTOP,MEANWHILEUSERSCANCUSTOMIZETHEIRMOBILEPHONESBESTTOENRICHTHEFUNCTIONSOFTHEIRCELLPHONES,COMPETITIVENESSOFMOBILEPHONESMARKETANDROIDPLATFORMISBASEDONLINUXSYSTEMSUSINGTHELINUXKERNELTHESOFTWARECALLSPEEDUPTHERATEOFTRANSPLANTATIONTHISARTICLETAKESTHEANDROIDDEVELOPINGPLATFORMA

6、SAFOUNDATIONFIRSTITBRIEFLYINTRODUCESANDROIDPLATFORMDEVELOPMENT,ASWELLASTHECURRENTDOMESTICANDFOREIGNDEVELOPMENTPRESENTSITUATIONAFTERTHEDISCUSSIONOFTHERATIONALEABOVE,THISARTICLEINTRODUCESTHEDEVELOPMENTENVIRONMENTOFANDROIDDEVELOPINGPLATFORMINDETAILANDMAKESADETAILEDDEMANDANALYSISTOMUSICPLAYERBASEDONTHEA

7、NDROIDDEVELOPINGPLATFORMTHENTHISARTICLEGIVESADETAILEDSOFTWAREDESIGNOFMUSICPLAYERBASEDONTHEANDROIDDEVELOPINGPLATFORMSFEATUREIDIVIDETHEMUSICPLAYERSDEVELOPMENTINTOTWOPARTSTOANALYZEANDDESIGNONEPARTISTHEWINDOWDESIGN,MAINLYDEFINESTHEWINDOWATTRIBUTEANDTHECONNECTEDWINDOWPROCESSINGFUNCTIONANOTHERPARTISFUNCTI

8、ONREALIZATION,MAINLYUNIFIESTHERESOURCESWHICHTHEANDROIDPLATFORMPROVIDESANDFUNCTIONANALYSISTOTHEMUSICPLAYERTOACCOMPLISHTHEFUNCTIONWHICHWEDEFINEDFINALLYITCARRIESONTHEFUNCTIONTESTBASEDONTHEMUSICPLAYEROFANDROIDPLATFORMKEYWORDSANDROIDPLATFORM,MUSICPLAYER,THEDESIGNANDDEVELOPMENTBASEDONANDROIDPLATFORM东北大学秦皇

9、岛分校毕业设计(论文)第III页目录1绪论111项目背景112国内外相关研究现状及发展趋势213项目研究意义314本文主要内容32安卓平台介绍521安卓平台介绍522安卓结构具体分析623ANDROID系统的四大组件724安卓开发环境搭建9241JAVA环境搭建9242安装ECLIPSE开发工具10243下载安装SDK10244安装ADT插件1125ANDROIDFEATURES特性1226数据存储方式13261SHAREDPREFERENCES13262FILE存储方式13263SQLITEDATABASE数据库1327ANDROID工程程序结构1428ANDROIDMANIFESTXML文

10、件1529安卓平台的优势173需求分析1931软件目标1932软件的可行性研究19321经济上的可行性19322技术上的可行性19东北大学秦皇岛分校毕业设计(论文)第IV页323操作上的可行性2033功能需求20331用例图及用例描述20332音乐播放器的时序图2234软件规格说明234项目实现2541欢迎界面2542主界面27421播放音轨SEEKBAR28422播放调节功能实现3143歌词显示界面3444歌曲列表界面3845专辑列表界面405音乐播放器的测试4251测试模型43511V模型43512W模型4352测试模型的选择4453测试方法45531白盒测试45532黑盒测试45533测

11、试方法的选择4654功能的测试与实现46541播放器整体功能的实现46542播放器主要模块功能测试4755测试结论4756测试过程与总结47结论49致谢50东北大学秦皇岛分校毕业设计(论文)第V页参考文献51附录52东北大学秦皇岛分校毕业设计(论文)第1页1绪论ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GO

12、OGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。第一部ANDROID智能手机发布于2008年10月。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,ANDROID占据全球智能手机操作系统市场76的份额,中国市场占有率为901。11项目背景随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但

13、已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户如听歌,看电影的需求,除了能播放常见格式的语音视频文件,高级功能还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。要研究各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放

14、器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。东北大学秦皇岛分校毕业设计(论文)第2页12国内外相关研究现状及发展趋势在LINUX上流行的播放器有多种主要有XMMS,REALPLAYER,XMOVIE,QUICKTIME,MPLAYER等,以下对这些播放器进行分析介绍。1、XMMSXMMS是XWINDOW系统下最流行的多媒体播放器之一,大多数LINUX版本都捆绑了改产品最为LINU

15、X下的标配音频播放器,XMMS可以播放MP3、MOD、WAV等多媒体文件,而且只要提供相应的插件,它还可以支持而更多的多媒体类型。2、XMOVIEXMOVIE最早是作为电视节目的播放软件。它的播放界面非常简单。界面上除了播放、快进、快退、播放时间显示和播放进度显示这几个主要功能外,没有其他控制功能。界面上方的选单条不含有任何播放控制功能,基本上都是对播放画面的调整和环境变量的控制。XMOVIE支持MPG,MOV,VOB,M2V等视频格式,同时它还能够播放MP2和MP3音频格式的文件。3、REALPLAYERREALPLAYER在低带宽下支持音频、视频多媒体的低损失传输,同时具有优秀的流媒体在线

16、播放能力。REALPLAYERFORLINUX版本的操作界面与其WINDOWS平台下的版本类似。REALPLAYER的后续版本增加了对微软视频和音频的支持,并支持便携式设备。4、QUICKTIMEQUICKTIME是苹果公司开发的流式音视频解决方案,也是出现较早的流媒体文件格式之一,它由三个不同部分组成QUICKTIMEMOVE电影文件格式,QUICKTIME媒体抽象层、QUICKTIME内置媒体服务系统。这类文件扩展名通常是MOV,它所对应的播放器是“QUICKTIME”。5、MPLAYERMPLAYER是LINUX上的电影播放器,它的功能十分强大,能够播放众多格式的文件。MPLAYER能使

17、用众多本地的XANIM,REALPLAYER和WIN32DLL边解码器,播放大多数MPEG、VOB、AVI、OGG、ASF/WMV等文件,也能播放VIDEOCD、SVCD、DVD和DIVX格式的电影。MPLAYER的另一个大的特色是支持广泛的输出设备,它可以在XLL、XV、DGA、OPENGL、SVGALIB等下工作。目前,媒体播放器主要趋向以下几个方向首先,支持多样化格式。XMMS、XMOVIE、东北大学秦皇岛分校毕业设计(论文)第3页QUICKTIME主要是针对固定的媒体格式类型或传输协议,具有一定的专用性,因此难以满足广大消费者的的需求,如今的音频,视频格式越来越多,如常见的音频WMA,

18、MP3,MIDI以及视频的RM,AVI等。如何能将能播放所有这些,是现今研究的方向。其次,可扩展性也是一个必要的趋势,如今的播放器功能越来越强大,如何在现有的基础上使功能更全面,也是人们接受的一个因素。这就是本课题选用开放式ANDROID平台的一个原因,代码完全公开,为其功能扩展提供方便的条件。13项目研究意义目前手机的音乐播放功能已经是大家比较关注的一个部分了,不少人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器所。

19、一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利,但是不能满足用户的所有要求,所以就出现了各种各样的手机音乐播放软件,来满足不同用户的不同要求。不同手机平台的手机,所支持的音乐播放软件也是各不相同,而现在最流行的手机平台就是GOOGLE的ANDROID手机平台。ANDROID播放器是近年来手机当中比较流行的音乐播放软件通过结合自己所学的知识来设计和开发ANDROID音乐播放器,可以深入学习ANDROID多媒体框架结构和多媒体框架核心OPENCORE,并通过对

20、OPENCORE的学习进一步的认识和理解ANDROID多媒体播放机制,而且还可以在开发软件实物的过程中,熟悉软件开发流程,掌握ANDROID领域小应用开发的方法,学习新的计算机知识,丰富自己的知识面。ANDROID平台是完全开放的平台,智能手机里的各种应用软件也越来越完备,在ANDROID平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景。14本文主要内容本文的主要内容是研究、分析和实现基于ANDROID手机平台的音乐播放器系统,包括以下几个部分第1章简要介绍了ANDROID手机平台的背景及发展情况。东北大学秦皇岛分校毕业设计(论文)第4页第2章研究了基于AND

21、ROID平台的软件开发环境,主要包括ANDROID平台的产品支持、ANDROID平台软件的消息机制。第3章详述进行基于ANDROID手机平台的音乐播放器的开发的整个过程,包括对软件的需求分析、软件的结构设计。第4章主要叙述了播放器的详细设计,包括主要模块功能的实现以和部分核心代码。第5章是对音乐播放器的软件测试,主要是对其功能验证,确定是否符合软件规格要求,最后对全文进行一个总结。东北大学秦皇岛分校毕业设计(论文)第5页2安卓平台介绍21安卓平台介绍ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开

22、发。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。ANDROID的架构图如图21所示。图21ANDROID的架构图ANDROID的系统架构和其操作系统一样,采用了分层的架构。从架构图看,ANDROID分为四个层分别是应用程序层、应用程序框架层、系统运行库层和LINU

23、X内核层。东北大学秦皇岛分校毕业设计(论文)第6页22安卓结构具体分析1、应用程序ANDROID会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2、应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块不过得遵循框架的安全性。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括丰富而又可扩展的视图VIEW

24、S,可以用来构建应用程序,它包括列表LISTS,网格GRIDS,文本框TEXTBOXES,按钮BUTTONS,甚至可嵌入的WEB浏览器。内容提供器CONTENTPROVIDERS使得应用程序可以访问另一个应用程序的数据如联系人数据库,或者共享它们自己的数据。资源管理器RESOURCEMANAGER提供非代码资源的访问,如本地字符串,图形,和布局文件LAYOUTFILES。通知管理器NOTIFICATIONMANAGER使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器ACTIVITYMANAGER用来管理应用程序生命周期并提供常用的导航回退功能。3、系统运行库ANDROID包含一些C/

25、C库,这些库能被ANDROID系统中不同的组件使用。它们通过ANDROID应用程序框架为开发者提供服务。以下是一些核心库1系统C库一个从BSD继承来的标准C系统函数库LIBC,它是专门为基于EMBEDDEDLINUX的设备定制的。2媒体库基于PACKETVIDEOOPENCORE该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG等。东北大学秦皇岛分校毕业设计(论文)第7页3SURFACEMANAGER对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。4LIBWEBCORE一个最新的WEB

26、浏览器引擎用,支持ANDROID浏览器和一个可嵌入的WEB视图。4、安卓运行时库ANDROID包含一个核心库的集合,提供大部分在JAVA编程语言核心类库中可用的功能。每一个ANDROID应用程序是DALVIK虚拟机中的实例,运行在自己的进程中。DALVIK虚拟机被设计成,在一个设备可以高效地运行多个虚拟机。DALVIK虚拟机可执行文件格式是DEX,DEX格式是专为DALVIK设计的一种压缩格式,适合内存和处理器速度有限的系统。DALVIK虚拟机依赖于LINUX内核提供基本功能,如线程和底层管理。5、LINUX内核ANDROID基于LINUXVERSION26内核来提供系统的核心服务,例如安全机

27、制,内存管理,进程管理,网络堆栈和驱动模块。该内核还扮演着一个虚拟的中间层,该层介于硬件和其余的软件堆栈2。23ANDROID系统的四大组件在ANDROID系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像ACTIVITY,CONTENTPROVIDER是可见的视图,SERVICE和BROADCASTRECEIVER是不可见的,它们只在系统的后台运行。下面分别介绍四大组件1ACTIVITY简介在ANDROID系统中ACTIVITY提供可视化的用户界面,一个ANDROID应用通常由多个ACTIVITY组成。多个ACTIVITY组成了ACTIVITY栈S

28、TACK,当前活动的ACTIVITY处于栈顶。ACTIVITY有自己的生命周期,由ANDROID系统来控制。2SERVICE简介顾名思义SERVICE就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个SERVICE类比较简单,只要继承SERVICE类,实现其生命周期中的方法就可以了。一个定义好的SERVICE必须在ANDROIDMANIFESTXML配置文件注册,通过元素声明才能使用SERVICE有自己的生命周期,我们可以调用STARTSERVICE启动一个SERVICE或者BINDSERVICE方法来绑定一个存在的SERVICE。3BROADCASTRECEIVER

29、简介东北大学秦皇岛分校毕业设计(论文)第8页BROADCASTRECEIVER顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的例如,某个按钮的单击事件,而广播事件处理机制是系统级别的。到目前为止我们可以使用INTENT来启动一个程序组件,我们还可以通过使用SENDBROADCAST方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现BROADCASTRECEIVER来监听和响应这些广播的INTENT。INTENT意图主要是解决ANDROID应用的各项组件之间的通讯。INTENT负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,ANDRO

30、ID则根据此INTENT的描述,负责找到对应的组件,将INTENT传递给调用的组件,并完成组件的调用。因此,INTENT在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕假设对应的ACTIVITY为LISTACTIVITY上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕假设对应的ACTIVITY为DETAILACTIVITY。为了实现这个目的,LISTACTIVITY需要构造一个INTENT,这个INTENT用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调

31、用STARTACTIVITYINTENTINTENT,将构造的INTENT传入,系统会根据此INTENT中的描述,到MANIFEST中找到满足此INTENT要求的ACTIVITY,系统会调用找到的ACTIVITY,即为DETAILACTIVITY,最终传入INTENT,DETAILACTIVITY则会根据此INTENT中的描述,执行相应的操作。4CONTENTPROVIDER简介CONTENTPROVIDER用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。ANDROID为常用的数据类型如音视频、图片和联系方式等提供了大量的CONTENTPROVID

32、ER。它们被定义在ANDROIDPROVIDER包下面。通过这样定义好的CONTENTPROVIDER我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定CONTENTPROVIDER共享我们的数据,方便用户的访问4。东北大学秦皇岛分校毕业设计(论文)第9页24安卓开发环境搭建241JAVA环境搭建ANDROID支持WINDOWSXP以上操作系统。首先,需要有JAVA环境。方法很简单。第一步,登陆HTTP/JAVASUNCOM,下载最新版本的JDK安装JDK和JRE两个部分。选择目录,安装最好将两部分放在同一个盘符。点击下一步即可。我这里安装在C盘目录下。第二步,需要配置

33、环境变量。右击“我的电脑”,在弹出的窗口中选择属性,在左边高级系统设置点击环境变量按钮,点击右下角的新建按钮变量名JAVA_HOME,值CJDK你的JDK安装目录,点击确定输入。以同样的方法新建变量名为CLASSPATH,值为JAVA_HOMELIB。注意,点号表示当前目录,不能省略。如图22图22环境变量配置然后在系统变量中找到“PATH”,并点击修改,在其对应的最后面追加“JAVA_HOMEBIN”,一直点击确定按钮,直到所有的窗口关闭。如图23。这样JAVA东北大学秦皇岛分校毕业设计(论文)第10页的环境搭建完毕。打开“运行”窗口,输入CMD命令,在提示符窗口中输入JAVAVERSION

34、,如果显示如图24的信息表明搭建成功。图23环境变量配置图24环境搭建成功显示信息242安装ECLIPSE开发工具ECLIPSE的安装比较简单,登录ECLIPSE官网,下载ECLIPSEIDEFORJAVADEVELOPERS。直接解压就可以了。243下载安装SDK首先,到SDK官方网站下载SDK包,然后解压。双击SDKMANAGEREXE显示如图25,下载所需要的组件东北大学秦皇岛分校毕业设计(论文)第11页图25SDK下载组件界面244安装ADT插件在ECLIPSE中安装插件,打开ECLIPSE,点击HELPINSTALLNEWSOFTWARE进入后,点击ADD,命名及点击ARCHIVE选

35、择你下载的ADT压缩包,点击OK,会解析出该插件的全部可用内容,全选SELECTALL,点击下一步安装时需要一定时间,在安装的过程中会出现一些提示,点击允许即可,安装完ADT插件后,点击WINDOWPREFERENCE,发现左侧列表上多了一项ANDROID,点击ANDROID会提示错误,是因为还没有把SDK关联到ADT插件上,添加SDK目标位置,如图26。图26添加SDK目标文件夹东北大学秦皇岛分校毕业设计(论文)第12页到这里,ANDROID的开发环境就搭建完成了。然后创建一个安卓模拟器就可以做安卓开发了如图27。图27安卓模拟器界面25ANDROIDFEATURES特性ANDROID系统有

36、如下的几大特性1应用程序框架支持组件的重用与替换。2DALVIK虚拟机专门为移动设备做了优化。3内部集成浏览器该浏览器基于开源的WEBKIT引擎。4优化的图形库包括2D和3D图形库,3D图形库基于OPENGLES。5SQLITE用作结构化的数据存储。6多媒体支持包括常见的音频、视频和静态印象文件格式如MPEG4,H264,MP3,AAC,AMR,JPG,PNG,GIF。7GSM电话依赖于硬件。8蓝牙BLUETOOTH,EDGE,3G,ANDWIFI依赖于硬件。9照相机,GPS,指南针,和加速度计依赖于硬件。东北大学秦皇岛分校毕业设计(论文)第13页10丰富的开发环境包括设备模拟器,调试工具,内

37、存及性能分析图表,和ECLIPSE集成开发环境插件。26数据存储方式在播放器正常运行时,由于各界面存在相互跳转,为了避免数据在界面跳转的过程中丢失,我们需要将一些数据进行临时存储或者永久存储。ANDROID作为一种手机操作系统,提供了如下几种存取数据的方式PREFERENC配置、FILE文件、SQLITE数据和网络。另外,在ANDROID中各个应用程序组件之间是相互独立的,彼此的数据不能共享。为了实现数据的共享,ANDROID提供了CONTENTPROVIDER组件来实现应用程序之间数据的共享。261SHAREDPREFERENCESPREFERENCEPREFERENCE提供了一种轻量级的数

38、据存取方法,一般数据比较少,一些简单的配置信息。它以“键值”是一个MAP对的方式,将数据保存在一个XML配置文件中使用到的接口详细内容见文档ANDROIDCONTENTSHAREDPREFERENCES提供了保存数据的方法,ANDROIDCONTENTSHAREDPREFERENCESEDITOR提供了获得数据的方法。262FILE存储方式我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件、PDF文件、音视频文件和图片等。ANDROID提供了文件读写的方法CONTEXTOPENFILEINPUT获得标准JAVA文件输入流FILEINPUTSTREAM,CONTEXTOPENFI

39、LEOUTPUT获得标准JAVA文件输出流FILEOUTPUTSTREAM,RESOURCESOPENRAWRESOURCERRAWMYDATAFILE方法返回INPUTSTREAM。263SQLITEDATABASE数据库SQLITE是一个嵌入式数据库引擎,针对内存等资源有限的设备如手机、PDA、MP3提供的一种高效的数据库引擎SQLITE数据库不像其它的数据库如ORACLE,它没有服务器进程。所有的内容包含在同一个单文件中。该文件是跨平台的可以自由拷贝。基于其自身的先天优势,SQLITE在嵌入式领域得到了广泛应用。1SQLITEDATABASE类SQLITEDATABASE代表一个数据库对

40、象,提供了操作数据库的一些常用方法如表28。东北大学秦皇岛分校毕业设计(论文)第14页表28操作数据库的常用方法方法名称方法描述OPENONCREATDATABASESTRINGPATH,SQLITEDATABASECUSORFACTORYFACTORY打开或者创建数据库INSERTSTRINGTABLE,STRINGNULLCOLUMHACK,CONTENTVALUESVALUES添加一条记录DELETESTRINGTABLE,STRINGWHERECLAUSE,STRINGWHEREARGS删除一条记录QUERYSTRINGTABLE,STRINGCOLUMS,STRINGSELECTIO

41、N,STRINGSELECTIONARGS,STRINGGOUPBY,STRINGHAVING,STRINGORDERBY查询记录UPDATESTRINGTABLE,CONTENTVALUES,STINGWHERECLAUSE,STRINGWHEREARGS修改记录EXESQLSTRINGSQL执行一条SQL语句CLOSE()关闭数据库2SQLITEOPENHELPER类SQLITEOPENHELPER是SQLITEDATABASE的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承之,并实现其两个抽象方法ONCREATESQLITEDATABASEDB和ONUPGRADE

42、SQLITEDATABASEDB,INTOLDVERSION,INTNEWVERSION两个抽象方法来创建和更新数据库,一些常用方法如表29。表29更新数据库常用方法方法名称方法描述SQLITEOPENHELPERCONTEXTCONTEXT,STRINGNAME,SQLITEDATABASECURORFACTORYFACTORY,INTVERSION构造方法,一般是传递一个要创建数据库称NAME参数ONCREATESQLITEDATABASEDB创建数据库是调用ONUPGRADESQLITEDATABASEDB,INTOLDVERSION,INTNEWVERSION版本更新时调用GETREA

43、DABLEDATABASE创建或打开一个只读数据库GETWRITABLEDATABASE创建或者打开一个读写数据库ANDROID的三种数据存储方式则让我们可以轻松方便的进行程序编写和数据的访问,更不会让不该消失的数据消失,这对我们进行程序书写有很大我帮助。27ANDROID工程程序结构ANDROID工程基本结构目录包括SRC源代码、GENANDROID系统自动生成的常量、RES资源文件主要存放程序界面的布局配置XML文件和图片资源。东北大学秦皇岛分校毕业设计(论文)第15页ANDROIDMAINFESXML下节介绍是四大组件的驱动配置文件,有它的存在,ANDROID程序的四大组件才可以正常的跳

44、转。ANDROID资源的类型和布局表210。表210ANDROID资源的类型和布局目录结构资源类型RES/ANIM/XMLD动画文件RES/DRAWABLE/一些位图文件RES/LAYOUT/XML布局文件RES/VALUE/各种XML资源文件ARRAYSXMLXML数据文件COLORSXMLXML颜色文件DIMENSXMLXML尺寸文件STYLESXMLXML样式文件RES/XML/任意的XML文件RES/RAW/直接拷到设备中的原生文件RES/MENR/XML菜单文件28ANDROIDMANIFESTXML文件ANDROID系统的任何一个程序启动都需要ANDROIDMANIFESTXML来

45、启动程序,任何一个新建的工程目录都会自动生成一个ANDROIDMANIFESTXML文件,此配置文件是整个程序能够正常运行的核心,它里面包含了ANDROIDSDK的版本,程序运行的默认ACTIVITY,当程序中的任何一个组件触发事件后,系统都会自动的去ANDROIDMANIFESTXML中寻找标识来作出相应的操作。任何一个ANDROIDMANIFESTXML文件的格式都应为东北大学秦皇岛分校毕业设计(论文)第16页ANDROID系统有一个编码的规定,支持的编码是“UTF8“,当程序中出现乱码是,我们须将其编码格式转化为“UTF8“在ANDROIDMANIFESTXML中会在第一行声明一句。它是

46、该系统支持的版本和编码。在第二行定义了我们需使用的架构,该架构来自XMLNSANDROIDHTTP/SCHEMASANDROIDCOM/APK/RES/ANDROID。XMLNSXMLNAMESPACE是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个XMLNS,否则程序中的所使用的所有资源将无法找到。在APPLICATION元素我们定义ANDROIDICON“DRAWABLE/ICON“ANDROIDLABEL“STRING/APP_NAME“,ANDROIDICON是程序在手机中显示的图片,我们运用DRAWABLE/ICON表示了对RES/DRAWABLE

47、目录下的ICONPNG的引用。STRING/APP_NAME表示了对RES/VALUE目录下STRINGXML中定义的APP_NAME参数的引用。因为系统首先要启动的ACTIVITY是C_MUSICPLAYERACTIVITY,所以文件如下在INTENTFILTER选项中,有ACTION和CATEGORY等等属性,我们需要定义ACTION的值为ANDROIDINTENTACTIONMAIN,CATEGORY的值为ANDROIDINTENTCATEGORYLAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的ACTIVITY。当我们需要通过一个组件触发另一个组件时,我们将

48、设定ACTION和CATEGORY的其它属性值,系统会根据我们设定的属性值去ANDROIDMANIFESTXML的APPLICATION中寻找标识,任何一个ACTIVITY的ACTION和CATEGORY是唯一,所以程序在任何时候都能唯一启动一个ACTIVITY,这样,不同的ACTIVITY之间的跳转就实现了。东北大学秦皇岛分校毕业设计(论文)第17页在ANDROIDMANIFESTXML中有一个根结点,它是我们需要定义的ADT版本,例如我们将其值设定为ANDROIDMINSDKVERSION“10“,则表示此ANDROID工程所用的版本为23,ANDROID还有11、15、16、20、21、

49、22、23、30、40这几个版本。如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限USESPERMISSION,将其的值设置为ANDROIDNAME“ANDROIDPERMISSIONINTERNET,我们就可以访问网络了。当然USESPERMISSION还有很多其它的权限,例如GPS定位权限浏览器数据存取权限COMANDROIDBROWSERPERMISSIONREAD_HISTORY_BOOKMARKS等等。当程序的任何一个组件要用到时,都必须在ANDROIDMANIFESTXML文件中声明。四大组件要使用前都需要声明,其声明方式如下其中声明PROVIDER时还需要声明其授权AUTHORITIES。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器INTENTFILTER有两种启动方式来启动界面。1显示方式显示方式是在代码中的直接启动组件,启动时会声明INTENT,在它的构造方法INTENT组件1,组件2中直接指定一个组件的名字,然后调用方法STARTINTENTINTENT以启动指定的组件。2隐式方式隐式方式是通过过滤器来过滤完成的,启动的组件必须满足ACTION和CATEGORY的条件才能够启动该组件。这些属性是在ANDROIDMANIFESTXML文件中声明的。两种启动方式都可以通过程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。