收藏 分享(赏)

毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc

上传人:QQ153893706 文档编号:2292556 上传时间:2018-09-09 格式:DOC 页数:57 大小:1.11MB
下载 相关 举报
毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc_第1页
第1页 / 共57页
毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc_第2页
第2页 / 共57页
毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc_第3页
第3页 / 共57页
毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc_第4页
第4页 / 共57页
毕业设计(论文)-基于Android的联系人擂台战的设计与实现(全套源程序代码).doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、1太 原 理 工 大 学毕 业 设 计 ( 论 文 ) 任 务 书毕业设计(论文)题目:基于 Android 的联系人擂台战的设计与实现毕业设计(论文)要求及原始数据(资料):1综述国内外 Android 应用的研究现状;2熟悉 Android 平台的功能特征及应用程序架构;3理解 Android 应用程序的设计思想,在充分调研的基础上了解用户的需求;4设计并能实现应用程序的基本功能,有一定实用价值;5开发的应用程序应尽可能界面友好,操作方面,功能较强;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。2毕业设计(论文)主要内容:1综述当前移动市场格局和 Androi

2、d 的发展背景;2了解 Android 平台的系统构架和开发所需的相关技术;3熟练应用并搭载 Android 的开发环境; 4分析和规划 APP 的模块分类和功能实现;5. 着手设计该应用的 UI 交互界面;6编程实现该应用程序的系统模块的功能和设计;7根据设计,测试和完善系统功能,解决问题。8. 完成应用程序的设计开发,撰写及完善,整理论文稿。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。3基于 Android 的联系人擂台战的设计与实现摘 要近年来,随着移动互联网和电子信息技术的迅

3、猛发展,使用 Android 技术开发的手机游戏受到越来越多人的青睐。手机游戏市场亦得到了很大的发展。本 文 通 过 对 Android 应 用 开 发 的 初 步 研 究 , 设 计 出 了 一 款 基 于 Android 平 台 的 联 系人 擂 台 战 小 游 戏 。 在 对 系 统 进 行 详 细 需 求 分 析 的 基 础 上 , 确 定 了 系 统 的 基 本 功 能 要 求 ,对 游 戏 的 菜 单 界 面 、 布 局 算 法 、 系 统 数 据 获 取 、 数 据 库 操 作 进 行 了 设 计 , 最 终 实 现 了 一款 风 格 清 新 、 娱 乐 体 验 丰 富 的 手

4、机 联 系 人 擂 台 战 小 游 戏 。本文介绍了实现游戏的相关理论基础、运行平台和实现技术,重点研究了 SQLite 数据库的技术特点及游戏数据的存取,让本游戏的大量数据更易整合,提高数据的存取效率,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最后,论文对游戏的各个模块进行了功能和性能测试。关键词:Android;游戏;联系人;SQLite全套源程序代码加 1538937064Research and Implementation of the Contact Ring War based on Android AbstractIn recent years, w

5、ith the rapid development of mobile Internet and electronic information technology,Use the Android technology development of mobile games favored by more and more people.Mobile game market also got a great development.This article through to the preliminary research on the Android application develo

6、pment, has devised a contact challenge war game based on Android platform.In the system in detail, on the basis of demand analysis, to determine the basic functions of the system requirements, to the game menu interface, layout algorithm, data acquisition system, designing database operations, and f

7、inally achieved a style is pure and fresh and rich entertainment experience of mobile phone contacts challenge war game.This paper introduces the theoretical basis, relative to the implementation of the game platform and implementation technology, focuses on the technical characteristics of SQLite d

8、atabase and game data access, make this game a lot of data easier integration, improve the efficiency of data access, and reasonable layout of the game interface, make the game more beautiful and humanized interface, realize the basic function of the game, finally, the paper on the game of the funct

9、ions of the various modules and performance testing.KEY WORDS: Games;Android ;ContactSQLite5目录1 绪论 71.1 引言 .71.2 课题背景介绍 .71.2.1 手机的应用市场发展现状 .71.2.2 Android 平台介绍 81.3 课题研究价值及意义 .81.4 论文结构安排 .92 相关技术介绍 .102.1 Android 系统架构 102.2 Android 特性 112.3 Android 开发环境搭建 122.4 Android SQLite 数据库简介 .132.4.1 关系型数据库

10、 SQLite132.4.2 SQLite 数据库特征 142.4.3 SQLite 数据库扩展类 152.4.4 SQLite 数据库操作 163 流程介绍与概要设计 .203.1 游戏流程介绍 203.2 可行性分析 203.2.1 操作可行性 .203.2.2 技术可行性 .213.2.3 社会可行性 .213.3 系统概要设计 213.3.1 界面布局模块 223.3.2 游戏角色模块 223.3.3 战斗文案模块 233.3.4 游戏排行模块 233.3.5 游戏设置模块 233.3.6 游戏实现模块 2363.4 系统风格定位 243.5 小结 244 系统详细设计与实现 .254

11、.1 系统工程的创建 254.2 界面 UI 设计 .264.2.1 主要界面布局 264.2.2 游戏界面布局 274.3 游戏功能实现 284.3.1 联系人获取 284.3.2 角色属性赋值 294.3.3 战斗文案分类和显示 304.3.4 战斗结果判断 314.3.5 战绩排行 334.3.6 背景音乐设置 344.4 本章小结 .365 系统测试 .375.1 测试环境介绍 375.2 功能模块测试 375.3 出现的错误及解决方案 415.4 系统性能分析 425.5 本章小结 42总结 .43致谢 .44参考文献 .45外文原文 .46中文翻译 .5271 绪论1.1 引言在手

12、机应用市场和移动互联网迅猛发展的形势下,作为智能手机平台而基于 LINUX 内核的操作系统 Android 于 2007 年 11 月 5 日应运而生。在谷歌公司的运营开发下,并由2011 年初数据显示,操作系统 Android 虽仅正式上市两年却已跃居到全球最受人们欢迎的智能手机平台地位。鉴于 Android 的开放性好、硬件选择丰富、不受运营商的束缚、开发商不受任何限制、能无缝结合优秀的 Google 应用这五大优势,当今的 Android 不仅在手机市场上叱咤风云,还急速扩张到平板电脑市场。目前,全球手机用户数已超过了PC机用户数,其中智能手机的比例越来越高。智能手机是指像电脑一样可以通

13、过下载、安装软件来拓展基本功能的手机,一般具有智能手机操作系统。相较于非智能手机,它功能更强,处理速度更快。基于Linux的Android手机操作系统,由于具有开源、免费的特性,迅速得到广大爱好者及厂商的支持。目前,移动应用软件中的手机游戏开发是一项非常热门的技术。游戏一直以来就是人们在休闲娱乐时的一项不错选择,它具有强大的吸引力,能给玩家带来挑战、刺激、新鲜、成就感等多种现实生活中欠缺而只能在虚拟世界才能感受到的东西。游戏的这些独特魅力,并伴着现代电子信息技术的巨大推进作用,使得游戏产业在全世界的娱乐领域中逐步占据主流位置。手机游戏一方面因为手机平台自身所具有的便捷性让人们更加容易接受并喜爱

14、,另一方面反过来也为手机扩充了其功能面,它缓冲着当今人们的紧张生活节奏,给一些枯燥时刻带来另样而欢快的享受。此次设计将使用 Java 及 Android 开发技术实现出一款基于 Android 平台并能在模拟器、安卓系统手机上运行的联系人擂台战游戏。1.2 课题背景介绍1.2.1 手机的应用市场发展现状目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone 以及当下正在逐步兴起的 Android。目前为止国内已经有很多 Android 系统的用户。截止

15、 2010 年第二季度 Android 系统的国内市场占有率已8经过 10%,在西欧以及北美智能手机市场占有率也在 20%左右。由此可见 Android 和手机应用市场正处于起步阶段,市场和消费者需要个接受的过程,众多开发者也都在积极探索盈利 31模式。Android 开发者实现盈利主要依赖两方面因素,一是全球 Android 手机终端的爆发,另外就是海外付费应用程序的模式逐渐形成。目前 Android 应用开发个人或团体虽未取得规模盈利,但也开始逐渐向盈利模式转移,获得不错收益。图 1.2 是中国移动应用软件超市 2010 年的统计数据,消费者下载量最高的依然是应用开发,其次便是游戏开发,占

16、据 39%的下载量,而传统的增值业务则只占 5%,在移动互联网时代,开发者纷纷逃离营运商的束缚,转向利润较为丰厚的应用程序和游戏开发。由此图也可以看出手机游戏软件在消费者中的受欢迎程度,如果想在未来手机应用程序开发中实现规模则需要加大手机游戏方面的开发力度。1.2.2 Android 平台介绍Android是一种基于Linux内核的智能机平台上的操作系统,最初由 Andy Rubin开发,之后被谷歌公司收购并继续进行运营和开发。2007年11月,Google公司与84家软件开发商、硬件制造商及电信营运商一起组建了一个开放性的手机联盟来进行共同研发并逐步改良Android系统。随后Google公

17、司发布了开放性的Android源代码,第一部Android智能手机也于2008年10月得以推出。在Android上市仅两年时间后,它便超过塞班系统而跃居全球手机市场第一的位置,在中国市场的占有率达到90%,并扩张到平板电脑等其它移动设备领域迅速发展。Android平台因为开放性使得这个平台具有非常好的发展前景。由于Android构建在开源代码的框架之上,并且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以方便地扩展到Android平台上来,利用它独特的功能来改进现有产品或者开发其他新颖

18、产品。1.3 课题研究价值及意义Android 软件在一两年的时间内已经迅速发展,在各类型应用系统中都有令用户满意的成果,本课题研究的就是基于此背景下 Android 手机的一款小游戏。联 系 人 擂 台 战 的游 戏 是 对 手 机 联 系 人 的 恶 搞 小 游 戏 , 一 方 面 很 好 地 缓冲了当今人们的紧张生活节奏,为一些枯燥时刻带来另样而欢快的享受。 另 一 方 面 通 过 联 系 人 对 战 游 戏 发 现 通 讯 录 中 久 未联 系 的 朋 友 或 亲 人 , 增 进 感 情 。9通过该游戏的设计,将自己学到的 Java,Android 方面的理论知识应用于实践,提高自己的

19、动手能力。在设计的过程中,不断的修补知识方面的漏洞,加深自己对程序设计的理解,提 升 我 对 新 领 域 知 识 的 自 学 能 力 与 实 践 应 用 能 力 , 增 加 项 目 经 验 。 同 时 也 能 深 入 获 悉 用 户对 手 机 游 戏 的 功 能 需 求 , 进 一 步 领 会 手 机 游 戏 应 具 有 的 易 于 学 习 、 可 中 断 性 、 基 于 订 阅 及 丰 富 的 社会 交 互 性 这 几 大 特 征 。 另 者 也 很 好 地 了 解 并 参 与 了 游 戏 开 发 的 基 本 流 程 , 进 一 步 拓 宽 了 自 己 的 知 识面 。 为将来的 继 续 学

20、 习 和 从事软件开发事业奠 定 了 良 好 的 基 础 。1.4 论文结构安排论文从最初构思到分析实践,结合了Android开发资料,进行了一个联系人对战游戏的设计制作,其中,具体介绍游戏的制作步骤,包括一系列代码的编写和内部结构的链接,论文分为六个部分,安排如下:1 绪 论 。 主 要 是 介 绍 课 题 背 景 , 此 次 课 题 研 究 具 有 的 价 值 与 意 义 以 及 论 文 结 构 的 安排 。 其 中 包 括 手 机 应 用 市 场 现 状 、 Android平 台 简 介 , 也 深 入 说 明 了 课 题 研 究 的 价 值 和意 义 。 为 该 系 统 后 续 的 分

21、 析 与 设 计 提 供 了 强 大 的 背 景 支 持 与 理 论 依 据 。2 相 关 开 发 技 术 介 绍 。 本章介绍了 Android 的系统架构和 Android 的特性、以及Android 开发环境的搭建流程和注意事项还有应用开发中主要用到的 SQLite 数据库的介绍和使用方法。3 流程介绍与概要设计。 本 章 结 合 系 统 的 需 求 分 析 初 步 设 计 了 系 统 , 其 中 还 包 括 了 系 统的 基 本 流 程 设 计 以 及 模 块 的 划 分 与 设 计 , 并 详 细 说 明 了 游 戏 规 则 , 定 位 了 游 戏 的 系 统 风格 。 这 些 为

22、下 一 章 的 系 统 实 现 打 下 了 基 础 。4 系统详细设计与实现。 本 章 的 主 要 内 容 为 系 统 的 实 现 , 先 介 绍 了 开 发 环 境 的 搭 建 ,再 介 绍 系 统 工 程 的 创 建 并 对 创 建 好 的 系 统 中 各 组 成 部 分 做 出 了 解 释 说 明 , 继 而 深 入 诠 释了 主 要 功 能 的 实 现 并 给 出 了 功 能 实 现 后 的 效 果 图 , 并 于 最 后 展 示 了 系 统 运 行 的 各 主 要 界面 图 。5 系 统 测 试 与 性 能 分 析 。 在 对 系 统 进 行 测 试 的 过 程 中 , 发 现 了

23、不 少 问 题 和 缺 陷 , 之后 及 时 对 其 进 行 了 修 正 。 总 体 上 , 本 次 系 统 的 设 计 与 开 发 达 到 了 预 期 目 标 , 基 本 实 现 了系 统 设 计 时 的 各 项 需 求 , 完 成 后 的 系 统 其 性 能 也 很 安 全 稳 定 。 这 标 志 着 本 次 基 于Android 平 台 的 联 系 人 擂 台 战 游 戏 设 计 开 发 工 作 圆 满 完 成 。6 总 结 。 对 整 篇 论 文 进 行 回 顾 , 予 以 总 结 , 并 作 出 对 未 来 工 作 的 展 望 。102 相关技术介绍2.1 Android 系统架构A

24、ndroid 的系统架构和其操作系统一样,采用了分层的架构。Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和 Linux 核心层。(1)APPLICATIONS(应用程序层)。在 Android 平台上,已存在着一些关键的应用程序,如网页浏览器、邮件、日历、收发客户端程序短信等。鉴于平台的开放性特点,更多富有特色且功能强大的 Android 应用程序正在被广大开发者共同努力参与研发中。开发者可以利用 Java 语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。(2)APPLICATIONF FRAMEWORK(应用程序框架

25、层)。该层是 Android 应用开发的基础,开发人员大部分情况是在和它打交道。该框架中,最重要的部分主要包含有:在控制应用程序的生命周期的同时维护着一个公共的“后退栈“来供用户导航的活动管理器;内容提供者,用来提供一些如联系人信息之类的需要在应用程序之间共享的数据;涉及非代码内容的资源管理器;让 Android 手机能随时获取目前所处的位置信息的位置管理器;通知用户如收到信息、临近约会时间等事件的通知管理器等,除此之外还有窗口管理器、视图系统、包管理器、电话管理器和 XMPP 服务等部分。应用程序框架层包括在Android 平台上,开发人员可以完全访问核心应用程序所使用的 API 框架。并且

26、,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。(3)LIBRARIES(C/C +函数库)。Android 本机库是由一套 C/C +函数库构成的,它们服务于上层 Android 应用程序组件,并通过这些组件将功能传递给开发者使用。这些函数库主要包括:浏览器引擎(采用的是 Webkit 库)、2D 和 3D 图形库、SQL 数据库(一些轻量级的 SQLite 数据库引擎)、媒体功能库以及界面管理器等。(4)Android Runtime(Android 运行时)。Android 运行

27、时包括核心库和 Dalvik 虚拟机,前者既兼容了大多数 Java 语言所需要调用的功能函数,又包括了 Android 的核心库,比如 android.os、、android.media 等等。后者是一种基于寄存器的java 虚拟机,Dalvik 虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。(5)LINUX KERNEL(Linux 内核层)。Android 操作系统是基于优化了的 Linux 内核11之上的,建立在 Linux2.6 之上。Linux 内核提供了安全性,内存管理,进程管理,网络协议栈和驱动模型等核心系统服务。除此之外,Li

28、nux 内核也是系统硬件和软件叠层之间的抽象层。2.2 Android 特性Android 系统是工作于智能手机之上的操作系统,处处体现了与手机相关的特性。由于手机硬件配置的关系 Android 系统与 PC 机上的操作系统有着很大的差异。只有在充分了解 Android 系统特性才能开发出适合手机运用的软件。以下为 Android 的主要特性:1. 应用程序框架支持组件的重用与替换。这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。2. Dalvik 虚拟机专门为移动设备进行了优化。Android 应用程序将由 Java 编写、编译的类文件通过 DX 工具转换成一种后缀名为.d

29、ex 的文件来执行。Dalvik 虚拟机是基于寄存器的,相对于 Java 虚拟机速度要快很多。3. 内部集成浏览器基于开源的 WebKit 引擎。有了内置的浏览器,这将意味着 WAP 应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。4. 优化的图形库包括 2D 和 3D 图形库,3D 图形库基于 OpenGL ES 1.0。强大的图形库给游戏开发带来福音。在 3G 最为重要的的应用莫过于手机上网和手机游戏。5. SQLite 用作结构化的数据存储。6. 多媒体支持包括常见的音频、视频和静态印象文件格式如 MPEG4、H.264、MP3、AAC、AM

30、R、JGP、PNG、GIF。7. GSM 电话(依赖于硬件)。8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。9. 照相机、GPS、指南针和加速度计(依赖于硬件)。10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和 Eclipse集成的开发环境插件。Google 提供了 Android 开发包 SDK,其中包含了大量的类库和开发工具,并且针对Eclipse 的可视化开发插件 ADT。122.3 Android 开发环境搭建为了在 PC 主机上得到 Android 的开发环境,我们选择在 Windows 操作系统中进行对Android 开发环境的搭建,

31、具体步骤如下:1.JDK安装首先下载JDK,按照提示安装成功后,最重要的是进行环境变量的配置,步骤如下:我的电脑属性高级环境变量系统变量中添加以下环境变量:Java_HOME值为:C:Program FilesJavajdk1.6.020(安装JDK的目录)CLASSPATH值为:;%Java_HOME%libtoolsjar;%Java_HOME%libdt jar;%Java _HOME%bin;Path值:添加C:Program FilesJavajdk1.6.020bin;2.Eclipse安装可下载一个绿色版的Eclipse,无需安装,和安装版一样都能为Android开发提供功能。3

32、.Android SDK安装(1).在Android Developers下载Androidsdkr07windowszip,下载完成后解压到任意路径。(2).在Android Developers下载Androidsdkr07windowszip,下载完成后解压到任意路径。(3).运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的“Force https:/.“这项,再点击Available Packages 。(4).选择希望安装的SDK及其文档或者其它包,点击Installation Selected

33、、Accept All、Install Accepted,开始下载安装所选包。在用户变量中新建PATH值为:Android SDK中的tools绝对路径。4.ADT安装(1).打开 Eclipse IDE,进入菜单中的 “Help“ - “Install New Software“(2).点击 Add.按钮,弹出对话框要求输入 Name 和 Location:Name 自己随便取,Location 输入 http:/dl- work with 后的下拉列表中选择我们刚才添加的 ADT,我们会看到下面出有 Developer Tools,展开它会有 Android DDMS 和 Android

34、Development Tool,勾选他们。然后就是按提示一步一步 next。(4).完成之后,选择 Window Preferences.在左边的面板选择 Android,然后在右侧点击 Browse.并选中 SDK 路径,本机为: D:AndroidDevelopandroid-sdk-windows(5).点击 Apply、OK。配置完成。5.创建AVD为使 Android 应用程序可以在模拟器上运行,必须创建 AVD。(1).在 Eclipse 中。选择 Windows Android SDK and AVD Manager (2).点击左侧面板的 Virtual Devices,再右

35、侧点击 New(3).填入 Name,选择 Target 的 API,SD Card 大小任意,Skin 随便选,Hardware 目前保持默认值 (4).点击 Create AVD 即可完成创建 AVD2.4 Android SQLite 数据库简介2.4.1 关系型数据库 SQLite每个应用程序都要使用数据,Android 应用程序也不例外,Android 使用开源的、与操作系统无关的 SQL 数据库 SQLite。SQLite 第一个 Alpha 版本诞生于 2000 年 5 月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百 K 的内存就够了。SQLite

36、 已经被多种软件和产品使用,Mozilla firefox 就是使用 SQLite 来存储配置数据的,Android 和 iPhone 都是使用 SQLite 来存储数据的。SQLite 体系结构图如下:14图 2.1 SQLite 体系结构图编译器包括 Tokenizer(词法分析器)、 Parser(语法分析器)、Code Generator(代码产生器)。他们协同处理文本形式的结构化查询语句。后端由 B-tree,Pager,OS Interface 组成。B-tree 的职责是负责排序,维护多个数据库页之间错综复杂的关系,将页面组织成树状结构,页面就是树的叶子。Pager负责传输,根据

37、 B-tree 的请求从磁盘读取页面或者写入页面。公共服务中有各种实用的功能比如:内存分配、字符串比较,Unicode 转换等。2.4.2 SQLite 数据库特征SQLite 数据库是 D.Richard Hipp 用 c 语言编写的开源嵌入式数据库,支持的数据库大小为 2TB。它具有如下特征:1、轻量级SQLite 和 CS 模式的数据库软件不同,它是一个非常轻量级自包含(lightweight and self-contained)的 DBMS,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。它可移植性好,很容易使用,使用 SQLite 一般只需要带上它的一个动态库,就可以享受

38、它的全部功能。而且那个动态库的尺寸也相当小,高效而且可靠。2、独立性SQLite 一个非常流行的嵌入式数据库,核心引擎本身不依赖第三方软件,使用它也不需要“安装”,SQLite 嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个 RDBMS,但在进程内部,它却是完整的,自15包含的数据库引擎。这样的好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。3、隔离性SQLite 数据库中的所有信息(比如表、视图、触发器)都包含在一个文件内,方便管理和维护。4、跨平台SQLite 数据库支持大部分操作系统,除了我们在电脑

39、上使用的操作系统之外,很多手机操作系统同样可以运行,比如 Android、Windows Mobile、Symbian、Palm 等。5、多语言接口SQLite 数据库支持很多语言编程接口,比如CC+、Java、Python、dotNet、Ruby、Perl 等,得到更多开发者的喜爱。6、安全性SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。2.4.3 SQLite 数据库扩展类1.扩展 SQ

40、LiteOpenHelperAndroid 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数,调用父类 SQLiteOpenHelper 的构造函数onCreate()方法;/ TODO 创建数据库后,对数据库的

41、操作onUpgrage()方法。/ TODO 更改数据库版本的操作当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。操作数据库的最佳实践是创建一个辅助类,例如联系人模块class ContactsDatabaseHelper extends SQLiteOpenHelper162.Cursor 类Android 使用 Cursor 类返回一个需要的值,Cursor 作为一个指针从数据库查询返回结果集,使用 Cursor 允许 Android 更有效地管理它们需要的行和列,你使用ContentVa

42、lues 对象存储键/值对,它的 put()方法允许你插入不同数据类型的键值。3.数据类型SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。2.4.4 SQLite 数据库操

43、作1.创建和打开数据库在 Android 中创建和打开一个数据库都可以使用 openOrCreateDatabase 方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个 SQLiteDatebase 对象,否则抛出异常FileNotFoundException。打开或者创建 path 文件所代表的 SQLite 数据库:openOrCreateDatabase(Stringpath,SQLiteDatabase.CursorFactory);打开或者创建 file 文件所代表的 SQLite 数据库:openOrCreateData

44、base(Filefile,SQLiteDatabase.CursorFactory); 2.创建表通过 execSQL 方法来执行一条 SQL 语句。/定义建表语句String sql=“create table 表名(列名,列名,)“;/执行建表语句db.execSQL(sql);创建表的时候总要确定一个主键,这个字段是 64 位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字 autoincrement。173.删除表mSQLiteDatabase(“drop table

45、 表名“);4.修改数据(1).插入记录SQLiteDatabase 的 insert 方法的签名为 long insert(String table,String nullColumnHack,ContentValues values)。方法的参数说明如下:table:想插入数据的表名。nullColumnHack:代表强行插入 null 值的数据列的列名。当 values 参数为 null 或不包含任何 key-value 对时该参数有效。values:代表一行记录的数据。insert 方法要求把数据都打包到 ContentValues 中,ContentValues 其实就是一个Map,

46、Key 值是字段名称,Value 值是字段的值。它提供了 put(String key,XXX value)(其中 key 为数据列的列名)方法用于存入数据,getAsXXX(String key)用于取出数据。通过 ContentValues 的 put 方法就可以把数据放到 ContentValues 对象中,然后插入到表中去。具体实现如下:ContentValues values=new ContentValues();values.put(TABLE_NUM,1);values.put(TABLE_DATA,“测试数据库数据“);db.insert(表名,null,values);不管

47、第三个参数是否包含数据,执行 insert()方法总会添加一条记录,如果第三参数为空,会添加一条除主键之外其他字段值都为 null 的记录。/同样可以使用 execSQL 方法来执行一条“插入“的 SQL 语句String sql=“insert into 表名(列名,) values (值,)“;db.execSQL(sql);(2).更新记录SQLiteDatabase 的 update 方法的签名为 update(String table,ContentValues values,String whereClause,String whereArgs)。方法的参数说明如下:table:想

48、更新数据的表名。values:代表想要更新的数据。whereClause:满足该 whereClause 子句的记录将会被更新。whereArgs:用于为 whereClause 子句传入参数。18该方法返回受此 update 语句影响的记录的条数。具体实现如下:ContentValues values=new ContentValues();values.put(TABLE_NUM,3);values.put(TABLE_DATA,“修改后数据“);db.update(表名,values,“num“+“=“+rowId,null);/同样可以使用 execSQL 方法来执行一条“更新”的 S

49、QL 语句String sql=“update 表名 set 列名=xxx where xxx;db.execSQL(sql);update 表名 set 列名=xxx where 条件(3).删除记录SQLiteDatabase 的 delete 方法的签名为 delete(String table,String whereClause,String whereArgs)。方法的参数说明如下:table:想删除数据的表名。whereClause:满足该 whereClause 子句的记录将会被删除。whereArgs:用于为 whereClause 子句传入参数。该方法返回受此 delete 语句影响的记录的条数。具体实现方法如下:/要删除数据可以使用 delete 方法mSQLiteDatabase.delete(表名,“WHERE _id=“+0,null);/也可以通过 execSQL 方法执行 SQL 语句删除数据mSQLiteDatabase.execSQL(“delete fro

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报