1、 xx 大学 xx 分校 毕业设计 (论文) 第 1 页毕 业 设 计基于安卓平台的音乐播放器(论文) 第 I 页基于安卓平台的音乐播放器设计与开发 摘 要 Android平台是Google公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。Android平台以Linux系统作为
2、平台的基础,使用Linux内核可以加快软件移植速度。本文以Android开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了Android开发平台的开发环境。之后对基于Android平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据Android开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合Android平台提供的资源和对音乐播放器的功能分析最终实现定义的功能。最后对基于Android开发平台
3、的音乐播放系统进行功能测试与验证。关键词:Android 平台,音乐播放器,基于 Android 平台的开发与设计xx 大学 xxx 分校毕业设计(论文) 第 II 页The Design and Development of Music Player Based on Android platformAuthor:XXXTutor:XXXAbstract Android platform is GoogleS latest launch of a mobile platform,the platform for procedures of mobile devices,includes an
4、 operating systems,a middle ware and some critical applicationsThe platform does not require any chargesThe code is completely openDevelopers can quickly develop on the platform system and other developers can use the results of the work by other developersTherefore,It made greater flexibility for t
5、he development of mobile phone,less work,short cycle,rapid prototyping and one-stop, meanwhile users can customize their mobile phones best to enrich the functions of their cell phones,competitiveness of mobile phones marketAndroid platform is based on Linux systems using the Linux kernelThe softwar
6、e call speed up the rate of transplantationThis article takes the Android developing platform as a foundationFirst it briefly introduces android platform development,as well as the current domestic and foreign development present situation.After the discussion of the rationale above,this article int
7、roduces the development environment of Android developing platform in detail and makes a detailed demand analysis to Music player based on the Android developing platform.Then this article gives a detailed software design of Music player.Based on the Android developing platforms feature.I divide the
8、 Music players development into two parts to analyze and design One part is the window design,mainly defines the window attribute and the connected window processing function;Another part is function realization,mainly unifies the resources which the Android platform provides and function analysis t
9、o the Music player to accomplish the function which we definedFinally it carries on the function test based on the Music player of Android platform. xx 大学 xxx 分校毕业设计(论文) 第 II 页Key Words:Android platform,Music player ,The Design and Development based on Android platformxx 大学 xxx 分校毕业设计(论文) 第 III 页目 录
10、 1 绪 论 11.1 项目背景 11.2 国内外相关研究现状及发展趋势 21.3 项目研究意义 31.4 本文主要内容 32 安卓平台介绍 52.1 安卓平台介绍 52.2 安卓结构具体分析 62.3 Android 系统的四大组件 .72.4 安卓开发环境搭建 92.4.1 Java 环境搭建 92.4.2 安装 Eclipse 开发工具 102.4.3 下载安装 SDK.102.4.4 安装 ADT 插件 112.5 Android Features 特性 .122.6 数据存储方式 132.6.1 SharedPreferences132.6.2 File 存储方式 .132.6.3
11、SQLiteDatabase 数据库 .132.7 Android 工程程序结构 .142.8 AndroidManifest.xml 文件 152.9 安卓平台的优势 173 需求分析 193.1 软件目标 193.2 软件的可行性研究 193.2.1 经济上的可行性 193.2.2 技术上的可行性 19xx 大学 xxx 分校毕业设计(论文) 第 IV 页3.2.3 操作上的可行性 203.3 功能需求 203.3.1 用例图及用例描述 203.3.2 音乐播放器的时序图 223.4 软件规格说明 234 项目实现 254.1 欢迎界面 254.2 主界面 274.2.1 播放音轨 See
12、kBar .284.2.2 播放调节功能实现 314.3 歌词显示界面 344.4 歌曲列表界面 384.5 专辑列表界面 405 音乐播放器的测试 425.1 测试模型 435.1.1 V 模型 435.1.2 W 模型 .435.2 测试模型的选择 445.3 测试方法 455.3.1 白盒测试 455.3.2 黑盒测试 455.3.3 测试方法的选择 465.4 功能的测试与实现 465.4.1 播放器整体功能的实现 465.4.2 播放器主要模块功能测试 475.5 测试结论 475.6 测试过程与总结 47结 论 49致 谢 50xxx 大学 xx 分校毕业设计(论文) 第 V 页参
13、考文献 51附 录 52xxx 大学 xxx 分校毕业设计(论文) 第 1 页1 绪 论Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓” 或“安致”。 Android 操作系统最初由 Andy Rubin开发,主要支持手机。2005年8月由 Google 收购注资。2007年11月,Google 与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android 系统。随后 Google 以 Apache 开源许可
14、证的授权方式,发布了 Android 的源代码。第一部Android 智能手机发布于2008年10月。Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android 占据全球智能手机操作系统市场76% 的份额,中国市场占有率为90% 1。1.1 项目背景随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,
15、功能庞大,对用户的手机造成了很多资源浪费,比如 CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放 RMVB 格式的视频文件。此外,还能支持中文、英文等语言界面。要研究各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用
16、方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如 MP3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。xxx 大学 xxx 分校毕业设计(论文) 第 2 页1.2 国内外相关研究现状及发展趋势在 Linux 上流行的播放器有多种主要有Xmms,RealPlayer,Xmovie,QuickTime ,Mplayer 等,以下对这些播放器进行分析介绍。1、XmmsXmms 是 X-Window 系统下最流行的多媒体播放器之一,大多数 Linux 版本都捆绑了改产品最为 Linux 下的标配音频播放器,Xmms 可以播放 MP3、MO
17、D、Wav 等多媒体文件,而且只要提供相应的插件,它还可以支持而更多的多媒体类型。2、XmovieXmovie最早是作为电视节目的播放软件。它的播放界面非常简单。界面上除了播放、快进、快退、播放时间显示和播放进度显示这几个主要功能外,没有其他控制功能。界面上方的选单条不含有任何播放控制功能,基本上都是对播放画面的调整和环境变量的控制。Xmovie支持mpg,mov,vob,m2v等视频格式,同时它还能够播放MP2和MP3 音频格式的文件。3、RealPlayerRealPlayer在低带宽下支持音频、视频多媒体的低损失传输,同时具有优秀的流媒体在线播放能力。RealPlayer for Lin
18、ux版本的操作界面与其Windows平台下的版本类似。RealPlayer的后续版本增加了对微软视频和音频的支持,并支持便携式设备。4、QuickTimeQuickTime是苹果公司开发的流式音视频解决方案,也是出现较早的流媒体文件格式之一,它由三个不同部分组成:QuickTime Move(电影)文件格式,QuickTime 媒体抽象层、QuickTime内置媒体服务系统。这类文件扩展名通常是.mov,它所对应的播放器是“QuickTime”。5、MPlayerMPlayer是Linux上的电影播放器,它的功能十分强大,能够播放众多格式的文件。MPlayer能使用众多本地的Xanim ,Re
19、alPlayer 和Win32DLL边解码器,播放大多数MPEG、VOB、AVI、OGG、ASF/WMV等文件,也能播放Video CD、SVCD、DVD 和DivX格式的电影。MPlayer的另一个大的特色是支持广泛的输出设备,它可以在Xll、Xv、DGA、OpenGL、SVGAlib 等下工作。xxx 大学 xxx 分校毕业设计(论文) 第 3 页目前,媒体播放器主要趋向以下几个方向:首先,支持多样化格式。Xmms、Xmovie、QuickTime主要是针对固定的媒体格式类型或传输协议,具有一定的专用性,因此难以满足广大消费者的的需求,如今的音频,视频格式越来越多,如常见的音频WMA,MP
20、3 ,MIDI以及视频的RM,AVI等。如何能将能播放所有这些,是现今研究的方向。其次,可扩展性也是一个必要的趋势,如今的播放器功能越来越强大,如何在现有的基础上使功能更全面,也是人们接受的一个因素。这就是本课题选用开放式Android平台的一个原因,代码完全公开,为其功能扩展提供方便的条件。1.3 项目研究意义目前手机的音乐播放功能已经是大家比较关注的一个部分了,不少人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器所
21、。一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利,但是不能满足用户的所有要求,所以就出现了各种各样的手机音乐播放软件,来满足不同用户的不同要求。不同手机平台的手机,所支持的音乐播放软件也是各不相同,而现在最流行的手机平台就是google 的 android 手机平台。Android 播放器是近年来手机当中比较流行的音乐播放软件.通过结合自己所学的知识来设计和开发 Android 音乐播放器,可以深入学习 Android 多媒体框架结构和多媒体框架核心 Op
22、en core,并通过对 Open core 的学习进一步的认识和理解 Android 多媒体播放机制,而且还可以在开发软件实物的过程中,熟悉软件开发流程,掌握Android 领域小应用开发的方法,学习新的计算机知识,丰富自己的知识面。 Android平台是完全开放的平台,智能手机里的各种应用软件也越来越完备,在 Android 平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景。1.4 本文主要内容本文的主要内容是研究、分析和实现基于Android手机平台的音乐播放器xxx 大学 xxx 分校毕业设计(论文) 第 4 页系统,包括以下几个部分:第1章简要介绍了
23、Android手机平台的背景及发展情况。第2章研究了基于Android平台的软件开发环境,主要包括Android平台的产品支持、Android平台软件的消息机制。第3章详述进行基于Android手机平台的音乐播放器的开发的整个过程,包括对软件的需求分析、软件的结构设计。第4章主要叙述了播放器的详细设计,包括主要模块功能的实现以和部分核心代码。第5章是对音乐播放器的软件测试,主要是对其功能验证,确定是否符合软件规格要求,最后对全文进行一个总结。xxx 大学 xxx 分校毕业设计(论文) 第 5 页2 安卓平台介绍2.1 安卓平台介绍Android 是一种基于 Linux 的自由及开放源代码的操作
24、系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。Android 操作系统最初由 Andy Rubin 开发,主要支持手机。2005 年 8 月由 Google 收购注资。2007年 11 月,Google 与 84 家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android 系统。随后 Google 以 Apache 开源许可证的授权方式,发布了Android 的源代码。Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。Android 的架构图如图 2.1 所示。图 2.1 Android 的架构图
25、Android 的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android 分为四个层分别是应用程序层、应用程序框架层、系统运行库层和 Linux 内核层。xxx 大学 xxx 分校毕业设计(论文) 第 6 页2.2 安卓结构具体分析1、应用程序Android 会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的。2.、应用程序框架开发人员也可以完全访问核心应用程序所使用的 API 框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应
26、用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表 (Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的 web 浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据 (如联系人数据库),或者共享它们自己的数据。资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(
27、Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。3、系统运行库 Android 包含一些 C/C+库,这些库能被 Android 系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:(1) 系统 C 库一个从 BSD 继承来的标准 C 系统函数库 Libc,它是专门为基于Embedded linux 的设备定制的。(2) 媒体库基于 PacketVideo OpenC
28、ORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4、 H.264、MP3、AAC、AMR、JPG、PNG 等。xxx 大学 xxx 分校毕业设计(论文) 第 7 页(3) Surface Manager对显示子系统的管理,并且为多个应用程序提供了 2D 和3D 图层的无缝融合。(4) LibWebCore 一个最新的 Web 浏览器引擎用,支持 Android 浏览器和一个可嵌入的 Web 视图。4、安卓运行时库Android 包含一个核心库的集合,提供大部分在 Java 编程语言核心类库中可用的功能。每一个 android 应用程序是 Dalv
29、ik 虚拟机中的实例,运行在自己的进程中。Dalvik 虚拟机被设计成,在一个设备可以高效地运行多个虚拟机。Dalvik 虚拟机可执行文件格式是 dex,dex 格式是专为 Dalvik 设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 虚拟机依赖于 Linux 内核提供基本功能,如线程和底层管理。5、Linux 内核 Android 基于 Linux version 2.6 内核来提供系统的核心服务,例如:安全机制,内存管理,进程管理,网络堆栈和驱动模块。该内核还扮演着一个虚拟的中间层,该层介于硬件和其余的软件堆栈 2。2.3 Android 系统的四大组件在 Android
30、 系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像 Activity,ContentProvider 是可见的视图,Service和 BroadcastReceiver 是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:(1) Activity 简介在 Android 系统中 Activity 提供可视化的用户界面,一个 Android 应用通常由多个Activity 组成。多个 Activity 组成了 Activity 栈(Stack),当前活动的 Activity 处于栈顶。Activity 有自己的生命周期,由 Android 系统
31、来控制。(2) Service 简介顾名思义 Service 就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个 Service 类比较简单,只要继承 Service 类,实现其生命周期中的方法就可以了。一个定义好的 Service 必须在 AndroidManifest.xml 配置文件 注册,通过元素声明才能使用.Service 有自己的生命周期,我们可以调用startService()启动一个 Service 或者 bindService()方法来绑定一个存在的 Service 。xxx 大学 xxx 分校毕业设计(论文) 第 8 页(3) Broadcast
32、Receiver 简介Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用 Intent 来启动一个程序组件,我们还可以通过使用 sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现 Broadcast Receiver 来监听和响应这些广播的 Intent。Intent( 意图)主要是解决 Android 应用的各项组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行
33、描述,Android 则根据此 Intent 的描述,负责找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity 为 ListActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的 Activity 为 detailActivity)。为了实现这个目的,ListActivity 需要构造一个 Intent,这个 Intent 用于告诉系统,我们要做“
34、查看 ”动作,此动作对应的查看对象是 “某联系人”,然后调用 startActivity (Intent intent),将构造的 Intent 传入,系统会根据此 Intent 中的描述,到 ManiFest 中找到满足此 Intent 要求的 Activity,系统会调用找到的 Activity,即为 detailActivity,最终传入 Intent,detail Activity 则会根据此 Intent 中的描述,执行相应的操作。(4) Content Provider 简介Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序
35、共享数据的唯一方法。Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的 Content Provider。它们被定义在 Android.provider 包下面。通过这样定义好的 Content Provider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定 Content Provider 共享我们的数据,方便用户的访问 4。xxx 大学 xxx 分校毕业设计(论文) 第 9 页2.4 安卓开发环境搭建 2.4.1 Java 环境搭建Android 支持 Windows XP 以上操作系统。首先,需要有 Java 环境。方法很简单。第一
36、步,登陆 http:/,下载最新版本的 jdk 安装 jdk 和 jre 两个部分。选择目录,安装( 最好将两部分放在同一个盘符)。点击下一步即可。我这里安装在 C 盘目录下。第二步,需要配置环境变量。右击“我的电脑 ”,在弹出的窗口中选择属性,在左边高级系统设置点击环境变量按钮,点击右下角的新建按钮变量名:JAVA_HOME,值 C:jdk(你的 jdk 安装目录),点击确定输入。以同样的方法新建变量名为;CLASSPATH,值为:.;%JAVA_HOME%lib。注意,点号表示当前目录,不能省略。如图 2.2图 2.2 环境变量配置然后在系统变量中找到“path”,并点击修改,在其对应的最
37、后面追加“%JAVA_HOME%bin;”,一直点击确定按钮,直到所有的窗口关闭。如图 2.3。这样xxx 大学 xxx 分校毕业设计(论文) 第 10 页Java 的环境搭建完毕。打开“ 运行”窗口,输入 CMD 命令,在提示符窗口中输入 java -version,如果显示如图 2.4 的信息表明搭建成功。图2.3 环境变量配置图2.4 环境搭建成功显示信息2.4.2 安装 Eclipse 开发工具Eclipse 的安装比较简单,登录 Eclipse 官网,下载 Eclipse IDE for Java Developers。直接解压就可以了。2.4.3 下载安装 SDK首先,到SDK官方
38、网站下载SDK包,然后解压。双击SDK Manager.exe显示如图2.5,下载所需要的组件xxx 大学 xxx 分校毕业设计(论文) 第 11 页图 2.5 SDK下载组件界面2.4.4 安装 ADT 插件在 eclipse 中安装插件, 打开 eclipse,点击 help - Install new Software 进入后,点击add,命名及点击 Archive选择你下载的ADT压缩包,点击OK,会解析出该插件的全部可用内容,全选(select all),点击下一步.安装时需要一定时间,在安装的过程中会出现一些提示,点击允许即可,安装完ADT插件后,点击 window prefere
39、nce,发现左侧列表上多了一项android,点击android 会提示错误,是因为还没有把 SDK 关联到 ADT插件上,添加SDK目标位置,如图2.6。图 2.6 添加 SDK 目标文件夹 xxx 大学 xxx 分校毕业设计(论文) 第 12 页到这里,Android 的开发环境就搭建完成了。然后创建一个安卓模拟器就可以做安卓开发了如图 2.7。图 2.7 安卓模拟器界面2.5 Android Features 特性Android 系统有如下的几大特性:(1) 应 用 程 序 框 架 支 持 组 件 的 重 用 与 替 换 。(2) Dalvik 虚 拟 机 专 门 为 移 动 设 备 做
40、 了 优 化 。(3) 内 部 集 成 浏 览 器 该 浏 览 器 基 于 开 源 的 WebKit 引 擎 。(4) 优 化 的 图 形 库 包 括 2D 和 3D 图 形 库 , 3D 图 形 库 基 于 OpenGL ES。 (5) SQLite 用 作 结 构 化 的 数 据 存 储 。(6) 多 媒 体 支 持 包 括 常 见 的 音 频 、 视 频 和 静 态 印 象 文 件 格 式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。(7) GSM 电 话 (依 赖 于 硬 件 )。(8) 蓝 牙 Bluetooth, EDGE, 3G,
41、 and WiFi (依 赖 于 硬 件 )。(9) 照 相 机 , GPS, 指 南 针 , 和 加 速 度 计 (依 赖 于 硬 件 )。xxx 大学 xxx 分校毕业设计(论文) 第 13 页(10) 丰 富 的 开 发 环 境 包 括 设 备 模 拟 器 , 调 试 工 具 , 内 存 及 性 能 分 析 图 表 , 和Eclipse 集 成 开 发 环 境 插 件 。2.6 数据存储方式在播放器正常运行时,由于各界面存在相互跳转,为了避免数据在界面跳转的过程中丢失,我们需要将一些数据进行临时存储或者永久存储。Android 作为一种手机操作系统,提供了如下几种存取数据的方式:Pref
42、erenc(配置)、File(文件) 、SQLite 数据和网络 。另外,在 Android 中各个应用程序组件之间是相互独立的,彼此的数据不能共享。为了实现数据的共享,Android 提供了 Content Provider 组件来实现应用程序之间数据的共享 。2.6.1 SharedPreferencesPreference Preference 提供了一种轻量级的数据存取方法,一般数据比较少,一些简单的配置信息。它以“ 键 -值”( 是一个 Map)对的方式,将数据保存在一个 XML 配置文件中使用到的接口(详细内容见文档)android.content .SharedPreferenc
43、es 提供了保存数据的方法,android.content .SharedPreferences.Editor 提供了获得数据的方法。2.6.2 File 存储方式我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件、PDF 文件、音视频文件和图片等。Android 提供了文件读写的方法: Context.openFileInput()获得标准 Java 文件输入流(FileInputStream),Context.openFileOutput()获得标准 Java 文件输出流(FileOutputStream) ,Resources.openRawResource (R.raw
44、.myDataFile)方法返回 InputStream。2.6.3 SQLiteDatabase 数据库SQLite 是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高效的数据库引擎 SQLite 数据库不像其它的数据库(如:Oracle),它没有服务器进程。所有的内容包含在同一个单文件中。该文件是跨平台的可以自由拷贝。基于其自身的先天优势,SQLite 在嵌入式领域得到了广泛应用 。(1) SQLiteDatabase 类xxx 大学 xxx 分校毕业设计(论文) 第 14 页SQLiteDatabase 代表一个数据库对象,提供了操作数据库的一些常用方
45、法如表2.8。表 2.8 操作数据库的常用方法方法名称 方法描述OpenonCreatDatabase(String path,SQLiteDatabase.CusorFactory factory) 打开或者创建数据库Insert(String table,String nullColumHack,ContentValues values) 添加一条记录Delete(String table,String whereClause,String whereArgs) 删除一条记录Query(Stringtable,Stringcolums,Stringselection,Stringselec
46、tionArgs,String goupBy,String having,String orderBy)查询记录Update(String table,ContentValues,Sting whereClause,String whereArgs) 修改记录exeSQL(String sql) 执行一条 SQL 语句Close() 关闭数据库(2) SQLiteOpenHelper 类 SQLiteOpenHelper 是 SQLiteDatabase 的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承之,并实现其两个抽象方法onCreate(SQLiteDatabas
47、e db)和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)两个抽象方法来创建和更新数据库,一些常用方法如表 2.9。 表2.9 更新数据库常用方法方法名称 方法描述SQLiteOpenHelper(Contextcontext,Stringname,SQLiteDatabase.CurorFactory factory,int version)构造方法,一般是传递一个要创建数据库称name参数onCreate(SQLiteDatabase db) 创建数据库是调用onUpgrade(SQLiteDatabase db,
48、int oldVersion,int newVersion) 版本更新时调用getReadableDatabase() 创建或打开一个只读数据库getWritableDatabase() 创建或者打开一个读写数据库Android 的三种数据存储方式则让我们可以轻松方便的进行程序编写和数据的访问,更不会让不该消失的数据消失,这对我们进行程序书写有很大我帮助。/data/data/package/shared_prefs/ xxx 大学 xxx 分校毕业设计(论文) 第 15 页2.7 Android 工程程序结构Android 工程基本结构目录包括:src ( 源代码)、gen(Android
49、系统自动生成的常量)、Res(资源文件) :主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml(下节介绍) 是四大组件的驱动配置文件,有它的存在, Android 程序的四大组件才可以正常的跳转。Android 资源的类型和布局(表 2.10)。表 2.10 Android 资源的类型和布局 目录结构 资源类型res/anim/ XMLd 动画文件res/drawable/ 一些位图文件res/layout/ xml 布局文件res/value/ 各种 xml 资源文件Arrays.xml: XML 数据文件Colors.xml: XML 颜色文件Dimens.xml: XML 尺寸文件Styles.xml : XML 样式文件res/xml/ 任意的 XML 文件res/raw/ 直接拷到设备中的原生文件res/menr/ XML 菜单文件2.8 AndroidMani