基于android数独游戏设计_毕业设计论文(编辑修改稿)内容摘要:

游戏的界面、游戏中的逻辑处理以及该游戏今后的改进和优化。 第五章 总结和展望。 对整篇论文加以总结与回顾以及对未来的展望。 第二章 Android 平台概述 4 第二章 Android 平台概述 本章将介绍 Android 这个基于 Linux开发平台,首先我们会介绍 Android 操作系统,然后讲述其特性,接着讲述其系统框架,其次我们会重点介绍其应用程序的构成模块,最后会介绍其生命周期。 Android 系统简介 Android 是谷歌公司发布的手机操作系统,它是基于 Linux 平台的开源手机操作系统,谷歌公司将要把其打造为基于移动终端的真正开放的移动软件平台,不仅拥有移动电话所需要的工作软件,而且在专利权方面能够不侵犯他人权利去推动移动互联网的创新。 谷歌 公司为了开发 Android, 与开放手机联盟进行了合作,手机开放联盟由全球 30 多家移动开发和手机应用的领先企业组成。 谷歌公司不仅仅和运营商达成了合作关系、而且与设备制造商以及开发商保持长期合作,目的就在于利用其优势建立移动软件平台,其特点是标准化、开放式的。 Android是谷歌公司未来企业战略的一部分,其目的是为了在任何时候任何地点能够提供信息 [4]。 Android 系统特性 Android系统特性如下所示: : Android系统组件,用于开发流程,两个特性:可重用性和可替代性。 虚拟机:在 Android系统中, Dalvik虚拟机是一种 Java 虚拟机,是 Google公司自主开发,其代号为 Dalvik,占用资源比较小,运行效率比较高。 :引擎 WebKit,其特性是开源。 :强大的自定义二维图形库。 基于 OpenGL ES 标准的 3D 图形功能,在移动 3D 开发中有着至关重要的地位。 数据库: SQLite 提供结构化的数据存储。 它是一款轻型免费的且开源的数据库,设计目标是嵌入式的。 它具备占用资源低、需要的内存空间少、南京工业大学本科生毕业设计 (论文 ) 5 处 理速度较快,并且还支持事务处理功能等优点。 :支持各种通用的音视频和静态图像格式 (MPEG MP JPG、PNG、 GIF、 AAC、 、 AMR)。 技术: (依赖硬件 )Global System for Mobile Communications,全球移动通讯系统 ,俗称全球通 ,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。 , EDGE, 3G,and WiFi: (依赖硬件 )蓝牙和 WiFi 都是一种短距 离的无线连接技术,在短距离内可以实现话音和数据的无线传输。 EDGE(Enhanced Data Rate for GSM Evolution),是增强型数据速率 GSM 演进技术。 , GPS, Compass, and Accelerometer: (依赖硬件 )GPS(Global Positioning System),即全球定位系统。 它是一个由覆盖全球的 24 颗卫星组成的卫星系统。 Compass是一个开放源代码的 Java 搜索引擎框架。 :包括一个设备模拟器,调试工具,内存和 性能检测,以及 Eclipse 的开发插件。 Eclipse集成开发环境。 Android 操作系统框架结构 Android 作为一个开源的移动设备的平台,其软件层次结构自上而下分为四个层次,分别是:应用程序 (Application)、应用程序框架 (Application Framework)、各种库 (Libraries)和 Android 运行环境 (RunTime)、 Linux 内核(Linux Kernel)。 第二章 Android 平台概述 6 图 Google 手机操作系统平台 Android 的架构模型 应用程序 突破传统思维,提供更好的用户体验。 Android 将会移植一系列的核心应用,包括 Email 客户端, SMS 程序,日历, GPS 地图,浏览器,联系人等等。 所有的应用程序都是由 Java语言完成的。 应用程序是无界限的,可以在平等条件下创建,还可以轻松地嵌入 Web,可以并行运行 [5]。 应用程序框架 Android 应用程序由一个或多个组件组成, Android 的应用程序框架为应用程序层的开发者提供 APIs,它实际上是一个应用程序的框架。 由于上层的应用程序是以 Java 构建的 ,因此本层次提供的首先包含了 UI 程序中所需要的各种控件: 例如: Views(视图组件 )包括 lists(列表 ), grids(栅格 ), text boxes(文本框 ), buttons(按钮 )等。 甚至一个嵌入式的 Web 浏览器。 一个 Android 的应用程序可以利用应用程序框架中的以下几个部分:Activity(活动 ), Broadcast Receiver(广播接收者 ), Service(服务 ), Content Provider(内容提供者 ) 南京工业大学本科生毕业设计 (论文 ) 7 库与运行环境 Android 包含一套 C/C++库,能被 系统中不同的组件使用。 这些功能通过Android应用框架展现给开发人员。 下面列出一些核心库: (1)System C library:从 BSD 继承来的标准 C 系统函数库,也是系统中最为底层的库,是专门为基于嵌入式 Linux 的设备制定的。 (2)Media Framework:该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图片文件,包括 MPEG 、 MP AAC、 AMR、 JPG 和 PNG 等。 (3)Surface Manager:用于管理不同应用对图形显示子系统和 2D 和 3D 图 形层的访问。 (4)WebKit:一个时尚的 web 浏览器引擎,为 Android 浏览器和内嵌的 web view 提供实现。 (5)SGL:隐藏的 2D 图形引擎。 (6)3D libraries:基于 OpenGL ES APIs 实现的库,该库可以使用硬件3D 加速,或者高度优化的 3D 软加速。 (7)FreeType:位图和向量模式的字体绘制。 (8)SQLite:一个强大的,轻量的关系型数据库引擎,用于所有的应用。 Android 运行时 Android 包含一组核心库,提供了 Java 语言核心库 内的大部分功能。 Android运行环境主要指的是虚拟机技术 —— Dalvik。 Dalvik虚拟机依赖 Linux kernel来实现一些潜在功能,例如线程和底层内存管理。 Dalvik虚拟机和一般 Java虚拟机 (JavaVM)不同,它执行的不是 Java标准的字节码而是 Dalvik可执行格式 (.dex)中执行文件,该格式的文件经过优化占用很小的内存。 在执行的过程中,每一个应用程序即一个进程 (Linux 的一个 Process)。 二者最大的区别在于 Java VM 是以基于栈的虚拟机 (Stackbased),而 Dalvik是基于寄存器的虚拟机 (Registerbased)[6]。 显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。 每个 Android应用程序都在 Dalvik VM的一个实例中运行,这个实例驻留在一个由 Linux内核管理的进程中。 内核 Android使用 内核来提供系统的核心服务,例如:安全机制,内存第二章 Android 平台概述 8 管理,进程管理,网络堆栈。 Android更多的是需要一些与移动设备相关的驱动程序。 其主要的驱动有:显示驱动 (Display Driver)、 Flash内存 驱动 (Flash Memory Driver)、照相机驱动 (Camera Driver)、音频驱动 (Audio Driver)、 WiFi驱动 (Camera Driver)、键盘驱动 (KeyBoard Driver)、蓝牙驱动 (Bluetooth Driver)、 Binder IPC驱动 (Android一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能 )[7]。 Android 应用程序构成 Android应用程序与其他很多计算机平台的应用程序不同,他们没有唯一的启动入口,一个 Android应用程序是由多个不同组件组合而成,组件间通过 Intent实现通信。 Android系统的基本组件包括 Activity、 Service、 Broadcast Receiver和 Content Provider等,要实现组件间通信,还需要 Intent消息组件。 并不是每个 Android应用程序都必须具备这四个组件,很多时候只需要这四种中的某几种就可以了。 除此之外,应用程序的所有组件还都必须在 声明 [8]。 这是一个 XML配置文件,这个配置文件用于定义应用程序的组件、组件的功能及 必要条件等。 这个配置文件是任何一个 Android应用程序所必需的。 Activity Activity 可以说是开发人员最常用的组件,同时也属于 Android 最基本的组成部分之一。 Android 程序中,一般一个 Activity 代表手机屏幕上的一屏。 举例来说,如果将手机比作一个浏览器,那么一个 Activity 就相当于一个网页。 在 Activity 中,可以添加多个视图,然后为这些视图添加一些事件处理。 这些视图可以是按钮、文本框、列表等。 可以看到, Activity 的概念和网页的概念相当类似。 一般一个 Android 应用是由多个 Activity 组成,同时这些 Activity 相互之间可以进行跳转,例如,按下某个 Activity 中的 Button 按钮后,可能会跳转到一个其他的 Activity。 不过和网页跳转稍有不同, Activity之间的跳转可以有返回值,例如,在 Activity A 跳转到 Activity B 后,那么当 Activity B运行结束时,可能会返回给 Activity A 一个值。 在多个 Activity 交流的过程中,南京工业大学本科生毕业设计 (论文 ) 9 这种返回机制是相当实用的。 当用户进入一个新的屏幕时,之前的屏幕 会转入暂停状态,并且保存在历史堆栈中。 正是由于历史堆栈的存在,用户可以通过返回操作,返回到之前打开过的所有屏幕。 Android默认的是将应用程序从开始到当前的每一个屏幕都保存到堆栈中,不过与此同时, Android还提供了很方便的机制,让开发人员自定义某个屏幕是否需要保存到历史堆栈。 Activity 的跳转实现,必须借助于 Intent 类。 因此 Intent 在 Android 应用中占据的地位是极其重要的。 简单来说,一个 Intent 就是对一个将要执行的操作请求的抽象描述。 Intent 的描述,主要包含有两个 数据结构:动作 (action)和动作对应的数据 (data)。 动作有很多种,系统中最常见的动作类型有: MAIN(表明该 Activity 是应用程序的入口 )、 VIEW、 PICK、 EDIT 等等;而动作对应的数据一般以 URI 的形式表示,例如:要查看某一个网页,则需要创建 Intent,它的动作类型为 VIEW,对应的数据应该是该网页的网址。 值得一提的是,有一个类叫 IntentFilter,它是 Intent的相关类。 如果说 Intent是一个有效的操作请求,那么一个 IntentFiler则用于描述一个 Activity(或者 Intent Receiver等 )能够接收哪些 Intent的请求。 比如系统浏览器的 Activity用于查看某一个网页,那么它用于接收 Intent的 IntentFilter,要定义类型为 VIEW的动作并且能够过滤表示一个网页网址的 URI。 通常 IntentFilter要被注册在。 Activity 之间的跳转正是通过解析各种 Intent 来实现的。 例如一个 Activity 调用startActivity(intent)方法,希望跳转到其他的 Activity 时,会 触发系统的Intent 解析过程,在所有安装的应用程序中已注册的 IntentFilter 中查找,并最终挑选出能够匹配 Intent 的 Activity。 然后这个新的 Activity 因为接收到Intent 的请求而开始运行,完成 Activity 的跳转。 这种跳转机制提供了两个关键好处: (1)操作请求被 Intent 封装起来,方便 Activity 重复利用。 (2)相互跳转的多个 Activity 之间实现了松耦合。 只要 IntentFilier 保持不变,一个 ctivity 可以随意修改,而不用担心其他 Activity 找不到它。 Broadcast Receiver 应用程序可以通过 Broadcast Receiver 监听一个外部的事件,并做出响应。 第二章 Android 平台概述 10 例如,当应用程序需要对电话呼入这个外部事件做出反应时,可以利用 Broadcast Receiver 进行处理。 再如,当一个后台下载任务成功的事件发生时,需要提示用户下载完成,仍然可以利用 Broadcast Receiver 来进行处理。 Broadcast Receiver不能生成 UI,也就是说对于用户来说是透明的,用户是看不到的。 Broadcast Receiver只能通过 NotificationManager来通知用户这些事件发生了。 Broadcast Receiver既可以在 ,也可以在运行时的代码中使用 ()进行注册。 注册完成之后,当事件来临的时候,即使程序没有启动,系统依然可以根据定义,自动启动程序。 各种应用也可以通过使用 ()将它们自己的 Intent Broadcast广播给其他应用程序。 Service Service是一种程序,它可以运行很长时间,但是它却没有用户界面,不可交互,而且不能自己运行。 它需要通过某一个 Activity或者其他的 Context对象来调用 [12]。 最常见的例子,比如说用户正在运行一个音乐播放器的程序,此时如果想浏览网页,那么,在用户导航到 Android的浏览器以后,虽然进入了浏览器屏幕,但是歌曲的播放并没有停止,而是在后台继续播放着。 其实播放的动作正是由播放音乐的 Service执行着。 当然,如果需要的话, Service也是可以停止。 通过 startService(Intent service)可以启动一个 Service,通过()可以绑定一个 Service。 Content Provider 对于数据存储, Android与其他的操作系统有一点不太一样,即数据在Android程序中都是私有的,这些数据包括文件类型和数据库类型以及其他类型的数据。 这样系统和应用程序的数据就各自独立起来,以避免受到某些不正常程序或是病毒的影响。 不过这并不代表各应用程序之间就因此而无法进行数据交换了。 当某个应用程序希望与其它的应用共享其数据时, Android提 供的 Content Provider就可以发挥作用了。 在实现 Content Provider的抽象接口以后,程序便可以将自己的数据暴露出去,其他程序只要有权限,就可以通过这一套标准而统南京工业大学本科生毕。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。