首页 基于android数独游戏设计_毕业设计论文

基于android数独游戏设计_毕业设计论文

举报
开通vip

基于android数独游戏设计_毕业设计论文基于android数独游戏设计_毕业设计论文 毕业设计(论文) 题 目: 基于Android数独游戏设计 基于Android数独游戏设计 摘 要 移动互联网时代的到来极大的改变了我们的生活,而Android是一种以Linux为基础的开放源码操作系统迅速占领了智能机操作系统,所以在android环境下开发显得尤为必要。Android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平...

基于android数独游戏设计_毕业设计论文
基于android数独游戏设计_毕业设计 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 毕业设计(论文) 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目: 基于Android数独游戏设计 基于Android数独游戏设计 摘 要 移动互联网时代的到来极大的改变了我们的生活,而Android是一种以Linux为基础的开放源码操作系统迅速占领了智能机操作系统,所以在android环境下开发显得尤为必要。Android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。 本文就在分析讨论Android手机软件开发技术原理的基础上,为用户开发出基于Android平台的数独游戏的软件。通过对Android系统架构和应用开发进行初步研究,设计一款数独游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的开机动画,菜单界面、屏幕绘制、时间控制、布局算法等进行了设计。 本文详细介绍了在Android平台上以Java为语言编写游戏的过程,最终实现了一个界面友好、操作简单的手机益智游戏。 关键词:Android 数独 智能机 I The design of Sudoku game based on Android Abstract Arrival of the mobile Internet era has greatly changed our lives, and Android is a Linux-based system quickly occupied the smartphone operation system, Android development is particularly necessary under the circumstances. Android's biggest feature is its open architecture, not only has a very good development and debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support, and powerful browser. Therefore, for software professionals, Android platform has unlimited appeal. In this thesis, the analysis and discussion of Android mobile phone software development technology provide users with better platform to the Sudoku based on Android meteorological software. Through the Android system structure and application development for preliminary research, we designed a Sudoku game. In the system based on the analysis of the detailed requirements, we design the game in the game menu interface, the screen rendering, time control and layout algorithm. This thesis describes the whole development process of Android based smart phone game using Google Android SDK. Finally, we have the software with friendly interface and simple operation. Android ; Sudoku ; Smartphone Key Words: II 目 录 摘 要 .................................................................................................................... I Abstract ................................................................................................................. II 第一章 绪论 ......................................................................................................... 1 1.1研究背景 ..................................................................................................................... 1 1.1.1 手机游戏的发展以及特征 ?????????????????????????????????????????????????????????????????????????????? 1 1.1.2数独游戏背景 ?????????????????????????????????????????????????????????????????????????????????????????????????? 2 1.2 Android 手机游戏的市场价值 ................................................................................. 2 1.3 本文主要工作及章节结构 ......................................................................................... 3 第二章 Android 平台概述 .................................................................................. 4 2.1 Android系统简介 ...................................................................................................... 4 2.2 Android系统特性 ...................................................................................................... 4 2.3 Android 操作系统框架结构 ..................................................................................... 5 2.3.1 应用程序????????????????????????????????????????????????????????????????????????????????????????????????????????? 6 2.3.2 应用程序框架 ????????????????????????????????????????????????????????????????????????????????????????????????? 6 2.3.3 库与运行环境 ????????????????????????????????????????????????????????????????????????????????????????????????? 7 2.3.4 内核 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 7 2.4 Android 应用程序构成 ............................................................................................. 8 2.4.1Activity ?????????????????????????????????????????????????????????????????????????????????????????????????????????? 8 2.4.2 Broadcast Receiver ????????????????????????????????????????????????????????????????????????????????????? 9 2.4.3 Service ???????????????????????????????????????????????????????????????????????????????????????????????????????? 10 2.4.4 Content Provider ??????????????????????????????????????????????????????????????????????????????????????? 10 2.5 Android 应用程序的生命周期 ............................................................................... 11 第三章 数独游戏的设计 .................................................................................... 13 3.1游戏功能简介 ........................................................................................................... 13 3.2 游戏策划以及准备工作 ............................................................................................ 14 3.3 游戏的架构 .............................................................................................................. 16 3.3.1 各类的介绍 ??????????????????????????????????????????????????????????????????????????????????????????????????? 16 3.3.2 游戏的框架简介 ??????????????????????????????????????????????????????????????????????????????????????????? 17 III 第四章 基于Android平台数独游戏的实现 ................................................... 19 4.1 欢迎界面的设计和实现 ........................................................................................... 19 4.1.1 主类KLSDActivity实现?????????????????????????????????????????????????????????????????????????????? 19 4.1.2 欢迎界面WelcomeView类的实现 ???????????????????????????????????????????????????????????????? 20 4.1.3 WelcomeViewDrawThread类和WelcomeViewGoThread类的实现 ??????????????? 21 4.1.4 HelpView类和AboutView类的实现 ??????????????????????????????????????????????????????????? 22 4.2 游戏界面相关类的实现 ........................................................................................... 23 4.2.1 游戏界面GameView的实现 ?????????????????????????????????????????????????????????????????????????? 24 4.2.2 时间线程TimeThread的实现 ?????????????????????????????????????????????????????????????????????? 25 4.3 数独算法类的实现 ................................................................................................... 25 4.3.1数独算法基本逻辑 ???????????????????????????????????????????????????????????????????????????????????????? 26 4.3.2 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 填充结果 ??????????????????????????????????????????????????????????????????????????????????????????????? 27 4.4 游戏的测试和运行 ................................................................................................... 29 4.4.1 游戏测试概述 ??????????????????????????????????????????????????????????????????????????????????????????????? 29 4.4.2 测试环境??????????????????????????????????????????????????????????????????????????????????????????????????????? 30 4.4.3 游戏运行结果 ??????????????????????????????????????????????????????????????????????????????????????????????? 31 第五章 总结和展望 ............................................................................................ 35 5.1 总结 .......................................................................................................................... 35 5.2 展望 .......................................................................................................................... 35 参考文献 ............................................................................................................. 36 致 谢 ................................................................................................................... 37 IV 南京工业大学本科生毕业设计(论文) 第一章 绪论 1.1研究背景 1.1.1 手机游戏的发展以及特征 手机游戏,是指用户运行在移动终端的应用程序,具有网络连接功能,能够满足用户随时随地进行游行的需求,它需要一定的硬件环境和一定的系统环境作为其运行的基础。手机游戏吸引用户最大的特点就是其便利性,由于其是移动终端,所以用户可以随时随地进行游戏。正是因为其便利性,手机游戏市场有了很大的发展。在美国,手机游戏作为美国手机用户最喜欢的移动应用之一,在iPhone和Android等智能终端推出后发展迅速。 手机游戏常见的特征可以总结如下: 1.庞大的潜在用户群:全球在使用的移动电话已经超过10亿部,而且这个数字每天都在不断增加。在除美国之外的各个发达国家,手机用户都比计算机用户多。手机游戏潜在的市场比其他任何平台,比如PlayStation和GameBoy都要大。 2.便携性与移动性:在控制台游戏时代,GameBoy热销的一个原因就是便携性——人们可以随时随地沉浸在自己喜欢的游戏中,还可以随时随地抢购自己喜欢的装备或宠物。和游戏控制台或者PC相比,手机虽然可能不是一个理想的游戏设备,但毕竟人们总是随时随身携带,这样手机游戏很可能成为人们消遣时间的首选。手机便携性、移动性的特征更能满足用户随时随地玩游戏的需求,用户利用排队、等车的时间进行游戏,手机游戏碎片化的特性凸显。调查显示,29.8%的用户在用手机玩游戏以后电脑端玩游戏的时间减少,手机游戏已经开始抢夺电脑游戏时间。22.4%的用户手机游戏时间越来越长,仅有10%的用户时间变短,手机游戏已逐渐成为一种普遍的娱乐方式。 3.支持网络:因为手机是网络设备,在一定限制因素下可以实现多人在线游戏。随着移动网络的发展,移动游戏也越来越多的被大家接受,对于之前长期通知市场的掌机来说造成了不少的冲击。市场研究公司IDC和App Annie报告显示 1 第一章 绪论 2013年第一季度iOS和Android平台游戏业务营收是掌机的3倍。 1.1.2数独游戏背景 数独的前身为“九宫格”,最早起源于中国。但当时的算法比现在的更为复杂,要求纵向、横向、斜向上的三个数字之和等于15,而不是数字不能重复。儒家典籍《易经》中的“九宫图”也是来源于此。 到了18世纪末,瑞士数学家莱昂哈德?欧文又发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家数字逻辑游戏杂志开始刊登这类游戏,使此类游戏得到良好发展,之后又在日本得到了广泛的传播。2004年,第一个“数独”游戏被刊登上了英国《泰晤士报》的封面,此时开始数独游戏才真正为世界所知晓。 数独游戏的规则很简单,只需要在空格处填写1~9的数字,并保证每个数字在每个九宫格内只出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。由于此类游戏操作简单,不需要特定的语言基础,也不需要进行数字运算且可玩性高、锻炼思维、开发大脑,所以很快风靡全球。 1.2 Android 手机游戏的市场价值 Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任 [2]何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。 Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。这是因为游戏玩家的核心需求是统一的,那就是:娱乐与打发时间(乃至更高层面的竞技需求和群体认同需求),这种需求附着于特定的社会发展阶段,不受地域的限制,甚至于能够穿透文化壁垒。因此,绝大多数种 2 南京工业大学本科生毕业设计(论文) 类的游戏都具备传染性与普适性,每一个售出的游戏都将会点燃周围潜在玩家的激情,最终吞噬整个需求市场。由此可知,几乎每一个Android手机用户都是游戏的需求者,都是潜在的顾客,现今的1000多万Android用户不过是冰山一角, [3]随着Android手机市场进一步壮大,游戏的市场容量将具备更大的增长空间。 1.3 本文主要工作及章节结构 整篇论文共分为六个部分,其主要内容安排如下: 第一章 引言。介绍论文的研究背景、目的和意义。包括课题的背景资料简介、国内外研究现状和发展趋势、深入地介绍了课题研究的价值。 第二章 Android平台概述。这部分主要是介绍了智能手机系统现状、Android的功能特征、Android系统的特点以及Android的体系结构。 第三章 数独游戏的设计。对游戏相关策划,功能以及架构进行介绍。 第四章 数独游戏的实现。这部分主要介绍了游戏的界面、游戏中的逻辑处理以及该游戏今后的改进和优化。 第五章 总结和展望。对整篇论文加以总结与回顾以及对未来的展望。 3 第二章 Android平台概述 第二章 Android 平台概述 本章将介绍Android 这个基于Linux开发平台,首先我们会介绍 Android 操作系统,然后讲述其特性,接着讲述其系统框架,其次我们会重点介绍其应用程序的构成模块,最后会介绍其生命周期。 2.1 Android系统简介 Android 是谷歌公司发布的手机操作系统,它是基于Linux 平台的开源手机操作系统,谷歌公司将要把其打造为基于移动终端的真正开放的移动软件平台,不仅拥有移动电话所需要的工作软件,,而且在专利权方面能够不侵犯他人权利去推动移动互联网的创新。 谷歌公司为了开发Android,与开放手机联盟进行了合作,手机开放联盟由全球30 多家移动开发和手机应用的领先企业组成。谷歌公司不仅仅和运营商达成了合作关系、而且与设备制造商以及开发商保持长期合作,目的就在于利用其优势建立移动软件平台,其特点是标准化、开放式的。Android是谷歌公司未来 [4]企业战略的一部分,其目的是为了在任何时候任何地点能够提供信息。 2.2 Android系统特性 Android系统特性如下所示: 1.应用框架:Android系统组件,用于开发流程,两个特性:可重用性和可替代性。 2.Dalvik 虚拟机:在Android系统中, Dalvik虚拟机是一种Java 虚拟机,是Google公司自主开发,其代号为Dalvik,占用资源比较小,运行效率比较高。 3.集成浏览器:引擎 WebKit,其特性是开源。 4.优化图形:强大的自定义二维图形库。基于OpenGL ES 1.0 标准的3D 图形功能,在移动3D 开发中有着至关重要的地位。 5.SQLite 数据库:SQLite 提供结构化的数据存储。它是一款轻型免费的且开源的数据库,设计目标是嵌入式的。它具备占用资源低、需要的内存空间少、 4 南京工业大学本科生毕业设计(论文) 处理速度较快,并且还支持事务处理功能等优点。 6.多媒体支持:支持各种通用的音视频和静态图像格式(MPEG4、MP3、JPG、PNG、GIF、AAC、H.264、AMR)。 7.GSM 技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称全球通,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。 8.蓝牙,EDGE,3G,and Wi-Fi:(依赖硬件)蓝牙和Wi-Fi 都是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM Evolution),是增强型数据速率GSM 演进技术。 9.Camera,GPS,Compass,and Accelerometer:(依赖硬件)GPS(Global Positioning System),即全球定位系统。它是一个由覆盖全球的24 颗卫星组成的卫星系统。Compass是一个开放源代码的Java 搜索引擎框架。 10.强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及Eclipse 11.IDE 的开发插件。Eclipse集成开发环境。 2.3 Android 操作系统框架结构 Android 作为一个开源的移动设备的平台,其软件层次结构自上而下分为四个层次,分别是:应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android 运行环境(RunTime)、Linux 内核(Linux Kernel)。 5 第二章 Android平台概述 图 2.1 Google 手机操作系统平台-Android 的架构模型 2.3.1 应用程序 突破传统思维,提供更好的用户体验。Android 将会移植一系列的核心应用,包括E-mail 客户端,SMS 程序,日历,GPS 地图,浏览器,联系人等等。 所有的应用程序都是由Java语言完成的。应用程序是无界限的,可以在平等 [5]条件下创建,还可以轻松地嵌入Web,可以并行运行。 2.3.2 应用程序框架 Android 应用程序由一个或多个组件组成,Android 的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以Java 构建的,因此本层次提供的首先包含了UI 程序中所需要的各种控件: 例如:Views(视图组件)包括lists(列表),grids(栅格),text boxes(文本框),buttons(按钮)等。甚至一个嵌入式的Web 浏览器。 一个 Android 的应用程序可以利用应用程序框架中的以下几个部分:Activity(活动),Broadcast Receiver(广播接收者),Service(服务),Content Provider(内容提供者) 6 南京工业大学本科生毕业设计(论文) 2.3.3 库与运行环境 Android 包含一套C/C++库,能被系统中不同的组件使用。这些功能通过Android应用框架展现给开发人员。下面列出一些核心库: (1)System C library:从BSD 继承来的标准C 系统函数库,也是系统中最为底层的库,是专门为基于嵌入式Linux 的设备制定的。 (2)Media Framework:该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图片文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG 和PNG 等。 (3)Surface Manager:用于管理不同应用对图形显示子系统和2D 和3D 图形层的访问。 (4)WebKit:一个时尚的web 浏览器引擎,为Android 浏览器和内嵌的web view 提供实现。 (5)SGL:隐藏的2D 图形引擎。 (6)3D libraries:基于OpenGL ES 1.0 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 是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的 [6]虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。每个Android应用程序都在Dalvik VM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中。 2.3.4 内核 Android使用Linux2.6 内核来提供系统的核心服务,例如:安全机制,内存 7 第二章 Android平台概述 管理,进程管理,网络堆栈。Android更多的是需要一些与移动设备相关的驱动程序。其主要的驱动有:显示驱动(Display Driver)、Flash内存驱动(Flash Memory Driver)、照相机驱动(Camera Driver)、音频驱动(Audio Driver)、Wi-Fi驱动(Camera Driver)、键盘驱动(KeyBoard Driver)、蓝牙驱动(Bluetooth Driver)、Binder IPC驱动(Android一个特殊的驱动程序,具有单独的设备节点, [7]提供进程间通讯的功能)。 2.4 Android 应用程序构成 Android应用程序与其他很多计算机平台的应用程序不同,他们没有唯一的启动入口,一个Android应用程序是由多个不同组件组合而成,组件间通过Intent实现通信。Android系统的基本组件包括Activity、Service、Broadcast Receiver和Content Provider等,要实现组件间通信,还需要Intent消息组件。并不是每个Android应用程序都必须具备这四个组件,很多时候只需要这四种中的某几种就可以了。除此之外,应用程序的所有组件还都必须在AndroidManifest.xml中 [8]声明。这是一个XML配置文件,这个配置文件用于定义应用程序的组件、组件的功能及必要条件等。这个配置文件是任何一个Android应用程序所必需的。 2.4.1 Activity Activity 可以说是开发人员最常用的组件,同时也属于Android 最基本的组成部分之一。Android 程序中,一般一个Activity 代表手机屏幕上的一屏。举例来说,如果将手机比作一个浏览器,那么一个Activity 就相当于一个网页。在Activity 中,可以添加多个视图,然后为这些视图添加一些事件处理。这些视图可以是按钮、文本框、列表等。可以看到,Activity 的概念和网页的概念相当类似。一般一个Android 应用是由多个Activity 组成,同时这些Activity 相互之间可以进行跳转,例如,按下某个Activity 中的Button 按钮后,可能会跳转到一个其他的Activity。不过和网页跳转稍有不同,Activity之间的跳转可以有返回值,例如,在Activity A 跳转到Activity B 后,那么当Activity B运行结束时,可能会返回给Activity A 一个值。在多个Activity 交流的过程中, 8 南京工业大学本科生毕业设计(论文) 这种返回机制是相当实用的。当用户进入一个新的屏幕时,之前的屏幕会转入暂停状态,并且保存在历史堆栈中。正是由于历史堆栈的存在,用户可以通过返回操作,返回到之前打开过的所有屏幕。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要被注册在AndroidManifest.xml文件中。Activity 之间的跳转正是通过解析各种Intent 来实现的。例如一个Activity 调用startActivity(intent)方法,希望跳转到其他的Activity 时,会触发系统的Intent 解析过程,在所有安装的应用程序中已注册的IntentFilter 中查找,并最终挑选出能够匹配Intent 的Activity。然后这个新的Activity 因为接收到Intent 的请求而开始运行,完成Activity 的跳转。这种跳转机制提供了两个关键好处: (1)操作请求被Intent 封装起来,方便Activity 重复利用。 (2)相互跳转的多个Activity 之间实现了松耦合。只要IntentFilier 保持不变,一个ctivity 可以随意修改,而不用担心其他Activity 找不到它。 2.4.2 Broadcast Receiver 应用程序可以通过Broadcast Receiver 监听一个外部的事件,并做出响应。 9 第二章 Android平台概述 例如,当应用程序需要对电话呼入这个外部事件做出反应时,可以利用Broadcast Receiver 进行处理。再如,当一个后台下载任务成功的事件发生时,需要提示用户下载完成,仍然可以利用Broadcast Receiver 来进行处理。 Broadcast Receiver不能生成UI,也就是说对于用户来说是透明的,用户是看不到的。Broadcast Receiver只能通过NotificationManager来通知用户这些事件发生了。Broadcast Receiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。注册完成之后,当事件来临的时候,即使程序没有启动,系统依然可以根据定义,自动启动程序。各种应用也可以通过使用Context.sendBroadcast()将它们自己的Intent Broadcast广播给其他应用程序。 2.4.3 Service Service是一种程序,它可以运行很长时间,但是它却没有用户界面,不可交互,而且不能自己运行。它需要通过某一个Activity或者其他的Context对象 [12]来调用。最常见的例子,比如说用户正在运行一个音乐播放器的程序,此时如果想浏览网页,那么,在用户导航到Android的浏览器以后,虽然进入了浏览器屏幕,但是歌曲的播放并没有停止,而是在后台继续播放着。其实播放的动作正是由播放音乐的Service执行着。当然,如果需要的话,Service也是可以停止。通过startService(Intent service)可以启动一个Service,通过Context.bindService()可以绑定一个Service。 2.4.4 Content Provider 对于数据存储,Android与其他的操作系统有一点不太一样,即数据在Android程序中都是私有的,这些数据包括文件类型和数据库类型以及其他类型的数据。这样系统和应用程序的数据就各自独立起来,以避免受到某些不正常程序或是病毒的影响。不过这并不代表各应用程序之间就因此而无法进行数据交换了。当某个应用程序希望与其它的应用共享其数据时,Android提供的Content Provider就可以发挥作用了。在实现Content Provider的抽象接口以后,程序便可以将自己的数据暴露出去,其他程序只要有权限,就可以通过这一套标准而统 10 南京工业大学本科生毕业设计(论文) [13]一的接口,读取或是删除该程序的数据。 2.5 Android 应用程序的生命周期 Android 应用程序一个完整的生命周期是从应用程序的创建到结束的全过程,与其他系统不同,Android 应用程序的生命周期是不受进程本身控制的,而是由Android 系统来决定的,Android 系统会根据应用程序对用户的重要性及当前系统的负载来决定生命周期的长短。Android 系统的各个进程重要程度如图2.2 所示。 关键优先级高优先级低优先级 前台进程可见进程服务进程后台进程空进程 图 2.2 Android 应用程序进程优先级 (1)前台进程,是Android 系统中最重要的进程,是与用户正在进行交互的进程。有以下四种情况:Activity 正在与用户进行交互;进程被Activity 调用,而且这个进程正在与用户进行交互;进程服务正在执行声明中的回调函数,如onCreate()、onStart()、onDestroy();进程的Broadcast Receiver 在执行onReceive()函数。Android 系统在多个前台进程同时运行时,可能会出现资源不足的情况,此时会清除部分前台进程,以保证主要的用户界面能够及时响应。 (2)可见进程,是指部分应用程序界面能够被用户看见,却不在前台与用户进行交互,不影响界面事件的进程。如果应用程序进程包含一个服务,且这个服务正被用户可见的Activity 调用,则此进程同样被视为可见进程。Android 进程一般存在少量的可见进程,只有在特殊情况下,Android 系统才会为保证前台进程的资源而清除可见进程。 (3)服务进程,服务进程是指包含已启动服务的进程。该进程没有用户界面并在后台长期运行。除非Android 系统不能保证前台进程和可见进程所必要的资源,否则不会强行清除服务进程。 (4)后台进程,后台进程是指不包括任何已经启动的服务,而且没有任何用户可见的Activity 的进程。Android 系统中一般存在数量较多的后台进程,在系统资源紧张时系统将会优先清除用户较长时间没有见到的后台进程。 11 第二章 Android平台概述 (5)空进程,空进程是不包含任何活跃组件的进程,空进程在系统紧张时会被首先清除。但为了提高Android 应用程序的启动速度,Android 系统会将空进程保存在系统内存用,在用户重新启动该程序时,空进程会被重新使用。 当两个应用程序具有相同的优先级时,处于较低优先级且运行时间最长的进程将会首先被终止。进程的优先级也受到进程间依赖性的影响,如果一个应用程序依赖于第二个应用程序所提供的服务或者内容提供器,那么第二个应用程序至少会拥有与它所支持的这个应用程序相同的优先级。进程的优先级取决于所有组件中优先级最高的部分,进程的优先级会根据其他进程的依赖关系而变化。 12 南京工业大学本科生毕业设计(论文) 第三章 数独游戏的设计 3.1游戏功能简介 数独游戏的规则很简单,只需在空格处填入 1,9 的数字,并保证每个数字在每个九宫格内只能出现一次,且每个数字在每一行、每一列也只能出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。游戏框架如下图所示: 点击图标 开机动画 菜单界面 关于游戏帮助游戏开始游戏退出游戏 游戏区域功能区域计时区域 暂停换题提示退出 图3.1 游戏框架图 该游戏的运行步骤如下。 1.启动游戏后首先进入的便是欢迎界面的动画,在欢迎界面中,“点击屏幕继续„„”闪动,达到提示的效果。 2.在游戏界面点击屏幕,便进入菜单界面。 3.在菜单界面单击“关于游戏”菜单可进入“关于”界面,在“关于”界面中介绍了该游戏的目标平台及开发日期。 4.在菜单界面单击“帮助游戏”菜单可进入“帮助”界面,在“帮助”界面 13 第三章 数独游戏的设计 介绍了游戏的基本规则。 5.在菜单界面单击“开始游戏”菜单可进入游戏界面。 6.当在游戏过程中单击“暂停”按钮时,便进入暂停状态。 7(在游戏过程中随时可以通过“换题”按钮来更换题目。 8.当玩家单击“放弃”按钮时,会提示玩家是否真的需要退出游戏,然后根据玩家的选择进行操作。 9.当玩家单击“提示”按钮时,界面上会出现一个红心表示当前可以提示玩家输入数字,此时再单击空白处,便会自动填上正确答案。 10.当玩家将界面中所有的空白全部填满数字时,系统会自动判断所填写的数字正确与否,当有错误时,会出现游戏失败界面;当全部填写正确时,会出现游戏胜利界面。 11.在胜利或者失败状态时,玩家可以通过点击屏幕任意位置返回欢迎界面。 12.在菜单界面单击“退出游戏”便可退出该游戏。 3.2 游戏策划以及准备工作 3.2.1欢迎界面的策划 欢迎界面的主要实现的是开机动画以及菜单选项的功能。在开机动画上准备实现动态效果,利用图片刷帧进行实现。 在菜单界面实现游戏的功能选择,菜单界面就是一张图片,鼠标点击相应的区域实现相应的功能。在这里运用到坐标系,如下图所示 图3.2 菜单界面 14 南京工业大学本科生毕业设计(论文) 手机屏幕分辨率是480×320,所以横纵坐标如图所示。 当点击的区域坐落于60welcomeView.bitmapsID.length-1){ welcomeView.drawIndex = welcomeView.bitmapsID.length-10; } if(welcomeView.drawIndex%5 == 0){ welcomeView.drawString = !welcomeView.drawString; } try{ Thread.sleep(sleepSpan);//睡眠 }catch(Exception e){ e.printStackTrace();//打印异常信息 } } } 分析该类的run() 方法,控制drawIndex的值,每次循环将欢迎界面的drawIndex 加1,然后判断是否到达数组的最后,当到达最后时,将其减10,然后继续进行循环。同时,判断drawIndex是否为5,这样每循环5次改变drawString的值,从而实现文字的闪动效果。 4.1.4 HelpView类和AboutView类的实现 游戏中关于游戏帮助和游戏 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 ,我们分别通过HelpView类和AboutView类的实现。HelpView类和AboutView类都是通过onDraw()方法来绘制界面。由于这两个类在很大程度上是相似的,所以下面只分析HelpView类,代码如下所示: public HelpView(KLSDActivity activity) { super(activity); this.activity = activity;//得到activity的引用 surfaceHolder = this.getHolder();//获得surfaceHolder getHolder().addCallback(this);//添加Callback接口的实现 helpBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.help); } public void onDraw(Canvas canvas) {//绘制方法 22 南京工业大学本科生毕业设计(论文) canvas.drawColor(Color.);//背景色 WHITE canvas.drawBitmap(helpBitmap, 0, 0, null);//绘制图片 } public boolean onTouchEvent(MotionEvent event) {//键盘监听方法 if(event.getAction() == MotionEvent.ACTION_DOWN){//屏幕被按下 double x = event.getX(); double y = event.getY();//得到坐标 if(x>270 && x<310 && y>440 && y<480){//点击确定按钮 activity.myHandler.sendEmptyMessage(2); } } return super.onTouchEvent(event); } public HelpView(KLSDActivity activity) 为“帮助”界面的构造器,在构造器中先得到activity 以及surfaceHolder的引用,然后添加Callback 接口的实现并对图片资源进行初始化。 onDraw()为重写的绘制方法,在该方法中,首先绘制白色背景,然后将帮助界面的背景图片绘制到指定位置。 onTouchEvent()为重写的键盘监听方法,当玩家点击屏幕时,会调用该方法来处理玩家的屏幕事件,在“帮助”界面中该方法实现比较简单,只是判断玩家点击的是否为返回按钮即可。当玩家点击返回按钮时,需要向activity 发送Handler 消息通知控制器切换屏幕。 4.2 游戏界面相关类的实现 游戏界面实现游戏展示,计时界面展示,以及功能按键。流程图如下图所示: 23 第四章 基于Android平台数独游戏的实现 开始 否 生成数独是 是填数区域 否换题否 是提示 否计时提示暂停 是 填数暂停 检测 退出 图4.2游戏界面流程图 结束4.2.1 游戏界面GameView的实现 首先理解下GameView的运行思路,GameView在初始化时候读取相关图片信息,包括背景图片,数独背景框图片等等,在初始化同时,启动GameViewDrawThread线程进行刷帧,TimeThread 线程来更新界面中的时间。当玩家点击背景框空白位置,需要绘制数字键盘时,会启动DrawKeyThread 线程绘制数字键盘。当玩家点击按钮时候,相关方法会被调用。以上的过程都需要KLSDActivity的参与管理。 GameView 同样继承自SurfaceView 类,其关键也是实现onDraw()方法。onDraw()方法分别绘制游戏界面背景图片,数字背景框,选题提示等等按钮,时间显示区域等。DrawKey()方法实现了数字键盘的绘制,保证在点击空白框时候有圆盘数字选框出现。通过surfaceCreated()和surfaceDestroyed()两个方法负责相关线程的启动和调用工作。 24 南京工业大学本科生毕业设计(论文) 4.2.2 时间线程TimeThread的实现 TimeThread线程主要用来更新界面中的时间,作为数独游戏玩家计时功能,代码如下: public class TimeThread extends Thread{ GameView gameView;//声明GameView的引用 boolean flag=true;//循环标志位 public TimeThread(GameView gameView){//构造器 this.gameView=gameView;//得到GameView的引用 } public void run(){//重写的run方法 while(flag){ gameView.time++;//时间自加 try{ Thread.sleep(1000);//睡眠一秒种 }catch(Exception e){//捕获异常 e.printStackTrace();//打印异常信息 } } } } TimeThread 类的实现比较简单,只需每隔一秒钟通过gameView.time自加更改一下GameView 中表示时间的属性即可。 public TimeThread(GameView gameView) 为时间线程的构造器,在构造器中先得到GameView的引用。然后重写run()方法,通过时间的自加,实现一秒钟功能。 4.3 数独算法类的实现 数独算法类主要实现数独的生成以及填入数字的检测功能,流程图如下: 25 第四章 基于Android平台数独游戏的实现 开始 生成数独 填入数字 否 符合规则 图4.3 WelcomeView类功能流程图 是 4.3.1数独算法基本逻辑 游戏成功 本节将对数独算法类ShuDuSuanFa.java 进行解释,该类基本上是数学计算,通过一定的算法产生所需要的数独数组,通过特定的接口供其他类使用。 该类的目的是创建一个二维数组来表示数独矩阵。使矩阵的每行、每列、每结束 块都没有重复的数字。算法的简单思路是先随机取出一个0~9 的数字,然后检查其所在的行、列、块是否都符合要求。当符合要求时继续填充下一个,而当不符合要求时,再次随机取出一个没有取出过的数字,再判断。当9 个数字都取出过后还没有找到符合要求的数字时,进行回退处理,即将最后一个取出的符合要求的数字进行重新取值,直到所有数字全部填充完毕。 在求解数独时候,运用到回溯法,将所有的解(问题的解空间)按照一定结构排列,再进行搜索。一般解空间构造成为为树状结构,用深度优先的策略搜索,一般有两种方式: 1.只需要一个解的话,找到解即停止。 2.需要求出所有解,则需做“树的遍历”找到所有解。 回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。 26 南京工业大学本科生毕业设计(论文) 回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。 回溯法是一种搜索算法,其基本思路是:在一个问题中,根据题意给出的边界条件划定出所有可能解的范围(称为可能解),根据题意确定出约束条件。利用程序顺次在所有可能解中搜索时按照深度搜索的方式进行。即在第一层选定一个满足约束条件的解,然后以该可能解为出发点,搜索第二层的一个可能解(试探)。如果搜索到第二层的一个可能解,则继续搜索第三层得一个可能解。依次类推,直到所有层得可能解都被找到,则得到了该问题的一个完整解。如果第二层所有的肯可能解都不满足约束条件,则返回第一层,放弃原有的可能解,使用第一层的下一个可能解(回溯)。一次类推,寻找第二层的一个可能解。 回溯法相对于其他穷举的特点在于,不必把问题的每一层的所有可能解都遍历一遍,只要当前的可能解不满足约束条件就抛弃该解,寻求下一个可能解,而不必求解其余的下层解。当当前层得所有可能解都不满足约束条件,则回溯到上一层,抛弃上一层的当前可能解。 从以上分析中结合数独问题的规则,得出数独问题的约束条件为: 每一格的数值范围仅限1-9 每一格内的数字在当前行不允许重复 每一格内的数字在当前列不允许重复 每一格内的数字在当前小宫格内不允许重复 由此,回溯法通过约束条件的筛选,在所有解中除掉不可能的解,从而获得问题的一个或者全部解。 4.3.2 检测填充结果 根据数独游戏的规则,玩家填充81个宫格之后,要满足所有行,所有列和所有小九宫格内不能出现重复的数字,并以此为条件进行检测。 列检测 27 第四章 基于Android平台数独游戏的实现 首先对各列进行检测,提供了检测列内9个数字是否有重复数据的方法 checkLine (),该方法以此遍历列中的9个数字,当遍历到某个数字时,检测该数字后面的数字是否出现重复。比如,当检测到第3个数字是7时,则检测第4-9个数字是否出现7,如果出现重复则停止检测,只有既可以避免重复检测,又可以避免遗漏。 public boolean checkLine(int col){// 检查列是否符合要求 for(int j = 0;j < 8;j++){ if(n[j][col] == 0){ continue; } for(int k =j + 1;k< 9;k++){ if(n[j][col] == n[k][col]){ return false; } } } return true; } 行检测 类似于对列数据的检测,还需要对每行进行检测,因此程序提供了对行数据的检测方法checkRow (),该方法代码如下: public boolean checkRow(int row){//检查行是否符合要求 for(int j = 0;j < 8;j++){ if(n[row][j] == 0){ continue; } for(int k =j + 1;k < 9;k++){ if(n[row][j] == n[row][k]){ return false; } } } return true; } 小九宫格检测 除了对行和列的重复数据检测之外,还需要对小九宫格内的所有数字进行检 28 南京工业大学本科生毕业设计(论文) 测,避免出现重复现象。检测原理与行,列检测相同,但需要计算九宫格内数字的位置。Row和Col指定了检测九宫格的位置,数独单元格中一共有3×3个九宫格,Row和Col的范围为0到2。用以下程序完成九宫格内重复数字的检测。 public boolean checkNine(int row,int col){//检查3X3区域是否符合要求 int j = row/3*3;//获得左上角的坐标 int k = col/3*3; for(int i = 0;i < 8;i++){//循环比较 if(n[j + i/3][k + i % 3] == 0){ continue; } for(int m = i+ 1;m < 9;m++){ if(n[j + i/3][k + i % 3] == n[j + m/3][k + m % 3]){ return false; } } } return true; } 4.4 游戏的测试和运行 4.4.1 游戏测试概述 当游戏软件制作完成之后,为了验证本游戏是否存在缺陷、能否达到预期的设计标,我们还需要在预设环境(如:模拟环境或真实移动终端设备)中进行调试和运行,以发现游戏中可能存在的问题和不足、解决这些缺陷,从而完善软件功能并进而提升产品质量。作为软件测试的重要组成部分,游戏测试具备软件测试的一切共同特性,但由于游戏本身又具有一定的特殊性,因而游戏测试主要由两个部分组成: (1)传统的软件测试 由于测试是软件开发过程中极为重要的组成部分,因而针对软件本身的测试贯穿于软件存在的整个生命周期。首先,程序员需要在程序设计开发过程中按阶段对产生的模块集中测试,以保证系统各模块能实现各自的功能,在此阶段软件的测试一般主要集中在程序的细节部分。 当软件制作开发出来之后,为保证软件整体的完善性,还需要在软件工程理 29 第四章 基于Android平台数独游戏的实现 论的指导下对整个系统进行测试,这阶段的测试主要有黑盒测试和白盒测试。所谓黑盒测试就是把要测试的对象当作一个黑盒子,不需要知道里面是怎么处理的,只要对输入和输出数据进行测试,这种测试方案属于高端测试,主要是在操作层面对游戏进行测试;而白盒测试正好相反,基于白盒测试的测试方案属于低端测试,是对各种设计细节方面的测试,测试者必须对测试对象的内部处理过程非常了解,对里面所有的分支和循环进行实验从而达到测试的目的。在进行软件测试的过程中,测试人员应根据需要把墨盒和白盒测试有效的结合,以达到发现软件错误并进而完善软件的目的。 (2)对游戏性的测试 由于游戏特别是在很大程度上是对现实世界的一种模拟,因而它不但包含了人类社会的一部分特性,同时还涉及娱乐性、可玩性等独有特点,所以针对游戏的测试还包括三个部分: ?游戏情节的测试:主要是针对体现游戏主线的故事情节和游戏世界中的任务系统等进行测试。 ?游戏世界的平衡测试:平衡性主要体现在经济平衡、能力平衡(包含技能、属性等等),测试的目的是为了能保证游戏世界的公平竞争。 ?游戏文化的测试:比如整个游戏世界的风格,是中国文化主导,还是日韩风格等等,大到游戏整体,小到NPC 对话,比如一个书生,他的对话就必需斯文,不可以用江湖语言。 目前在游戏开发过程中,对游戏性的测试主要有以下几种实现途径:一是通过内部测试人员对以下的三个方面进行测试,由于他们往往都是经过精选而来的职业玩家,对游戏有很深的认识,因而也能较好完成游戏的测试目标;二是邀请一定数量的玩家或游戏媒体人员对外围系统进行测试,其目的主要是测试游戏的可玩性和易用性,及一些外围的Bug;三是通过大范围的内测和公测,让更多的玩家进行试玩。 4.4.2 测试环境 本游戏的测试环境包括两种,一种是基于 Android 虚拟设备AVD 的测试,在测试之前,首先要创建一个AVD。在测试游戏时选用的是基于Android 2.3 的 30 南京工业大学本科生毕业设计(论文) AVD。 还有一种便是基于 Android 手机的测试,在测试之前,需要首先将游戏文件夹下的bin 目录下的游戏的apk 文件通过数据线传到Android 手机上,然后通过Android 手机上的第三方文件浏览器找到需要安装的apk 文件,即可安装。 本人在基于 Android 手机的测试时,选用的手机为SONY WT19I,SONY WT19I 的主要参数为:主屏尺寸:3.2 英寸;主屏色彩:彩屏,1600 万色;主屏像素:480×320 像素(HVGA);CPU:高通 骁龙Snapdragon MSM8255 1GHz;内存容量:512MB RAM,1G ROM;系统平台:Android2.3.3,可升级至更高版本。 4.4.3 游戏运行结果 在测试本游戏时,需要首先把游戏的 apk 文件下载到Android 手机上并安装,安装通过文件浏览器查找到本游戏的apk 文件,然后双击即可安装。 安装好本游戏的 apk 文件后,在主菜单里就可以显示本游戏的图标,如图4.1 (a)所示。 (a) (b) 图4.1 最终效果图 点击图标,进入欢迎界面,图4.1(b) 是游戏的欢迎界面。 31 第四章 基于Android平台数独游戏的实现 (c) (d) 图4.1 最终效果图 单击屏幕,进入菜单界面,如图4.1(c)所示 点击关于游戏,将进入游戏的说明界面。说明界面如图 4.1(d) 所示。 按右下角退出按钮退出游戏说明界面后,在菜单界面点击帮助游戏,我们便 进入游戏的帮助的界面,查看数独游戏的玩法,如图 4.1(e)所示。 (e) (f) 图4.1 最终效果图 32 南京工业大学本科生毕业设计(论文) 在菜单界面单击“开始游戏”菜单可进入游戏界面,如图 4.1(f)所示。 点击空白处,出现选择数字键盘,如图 4.1(g)所示。 当在游戏过程中单击“暂停”按钮时,便进入暂停状态,如图图 4.1(h)所示。 在游戏过程中随时可以通过“换题”按钮来更换题目。 当玩家单击“放弃”按钮时,会提示玩家是否真的需要退出游戏,然后根据玩家的选择进行操作,如图 4.1(i)所示。 当玩家单击“提示”按钮时,界面上会出现一个红心表示当前可以提示玩家输入数字,此时再单击空白处,便会自动填上正确答案,如图 4.1(j)所示。 当玩家将界面中所有的空白全部填满数字时,系统会自动判断所填写的数字正确与否,当有错误时,会出现游戏失败界面;当全部填写正确时,会出现游戏胜利界面。 在胜利或者失败状态时,玩家可以通过点击屏幕任意位置返回欢迎界面。 在菜单界面单击“退出游戏”便可退出该游戏。 (g) (h) 33 第四章 基于Android平台数独游戏的实现 (i) (j) 图4.1 最终效果图 运行后画面流畅。对稳定性测试,经试玩,无死机、花屏、非正常退出等非正常游戏状态出现。 34 南京工业大学本科生毕业设计(论文) 第五章 总结和展望 5.1 总结 本文首先介绍了 Android 操作系统,重点论述了Android 操作系统的系统架构和应用程序构成,并分析了Android 应用程序的生命周期。接着研究了Android 平台上手机游戏开发的关键技术,包括Android 游戏开发多线程技术,Android 游戏开发图形处理技术。本文通过对Android 游戏的研究,还提出了Android 游戏开发的基本框架。在基于上述对Android 游戏开发技术研究的基础上,最后设计实现了数独游戏。 在本文中,首先叙述了本游戏的总体功能架构,然后对各个功能模块的具体实现进行了详尽的介绍。并重点介绍了本游戏开发中用到的许多关键技术,主要包括Android 游戏开发中通过Handler 机制实现各个界面,游戏开发中欢迎动画,数独生成等等具体实现,Android 游戏开发中通过SurfaceView 双缓冲绘图机制来实现视图界面等等。由于现阶段研究Android 游戏开发的人很多,所有这些游戏开发关键技术基于Android 平台的实现,为Android 游戏开发提供了一定参考价值。 5.2 展望 本文最终实现的数独游戏是基于 Android 平台的、单机游戏,由于时间仓促,人力资源有限,研究的深度还不够,现对今后进一步的工作做如下规划: (1)对于Android 平台要继续深入研究和学习,一些关键技术的掌握和运用上还有待提高。 (2)要更多的关注Android 手机的发展趋势和市场前景,也继续关注Android 游戏的发展前景和发展趋势。 (3)本人只是完成了游戏的部分设计和实现,还要进一步实现游戏的数据库存储,背景音乐,为游戏加入网络,实现“玩家排行榜”等功能。 35 参考文献 参考文献 [1] 白广元.Java Web整合开发完全自学手册[M].北京:机械工业出版社,2009. [2] J.F.Dimarzio.Android:A Programmer's Guide[M].Florida: Osborne/McGraw-Hill, 2008. [3] 孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2010. [4] 刘斌.Java Web整合开发[M].北京:电子工业出版社,2008. [5] 王克宏.Java技术教程(基础篇)[M].北京:清华大学出版社,2006. [6] 张孝祥(Java就业培训教程[M]. 北京:清华大学出版社,2007. [7] 余志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2009. [8] 杨丰盛.android应用开发揭秘[M].北京:机械工业出版社,2010. [9] 郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010. [10]李宁等.Android/OPhone 开发完全讲义[M].北京:水利水电出版社,2010. [11]吴亚峰,苏亚光.Android应用案例开发大全[M].北京:人民邮电出版社,2011. [12]李兴华.Java开发实战经典(名师讲坛)[M].北京:清华大学出版社,2009. [13]吴亚峰,索依娜.Android核心技术与实例详解[M].北京:电子工业出版社,2010. [14]张海藩.软件工程导论[M].北京:清华大学出版社,2003. [15]李钟尉,周小彤,陈丹丹.Java从入门到精通[M].第二版.北京:清华大学出版社,2010. [16]高焕堂.Android应用框架原理与程式设计36技[M]. 北京:清华大学出版社,2008. [17]孙燕.Java2入门与实例教程[M].北京:中国铁道出版社,2003. [18]李苑.基于Android移动平台的警务查询系统[D].南昌:南昌大学,2009. [19]韩超,梁泉.Android系统级深入开发:移植与调试[M].北京:电子工业出版社.2011. [20]朱桂英.Android网络开发技术实战详解[M].北京:电子工业出版社,2012. [21]熊斌.Android多媒体开发技术实战详解[M].北京:电子工业出版社,2012. [22]Ken Aronld.Java Programming Language[M]. Florida: Posts & Telecom Press,2006. [23]John Lewis.Java Software Solutions[M].Pennsylvania: Publishing House of Electronics Industry,2007. [24]杨丰盛.Android技术内幕:系统卷[M].北京:机械工业出版社,2011. [25]韩超,梁泉.Android系统级深入开发:移植与调试[M].北京:电子工业出版社,2011. 36 南京工业大学本科生毕业设计(论文) 致 谢 本课题得以顺利完成,首先要向我的导师李鑫老师致以衷心的感谢~在本科学习期间,李鑫老师一直对我孜孜教诲、严格要求,本文从选题、撰写、修改到定稿,李鑫老师都给予了精心指导和帮助。 这三年来,同学们在工作和学习生活中给予了我很大的帮助,从他们身上我不仅学到了很多的知识和技能,还学会了很多为人处事的道理,在这里我向他们表示感谢。还要感谢通信工程专业的所有同学,和他们在一起愉快的相处了四年,在各方面他们都给予了我帮助。还要深深感谢电子与信息工程学院各位老师在生活上的关心和学业上的帮助。 感谢我的家人和我的朋友在学习和生活上给予我多方面的关心,他们的鼓励与支持,永远是我不断前进的动力。 最后衷心的感谢在百忙之中评审本论文并提出宝贵意见的各位专家和教授。 37
本文档为【基于android数独游戏设计_毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_482581
暂无简介~
格式:doc
大小:349KB
软件:Word
页数:58
分类:工学
上传时间:2017-09-01
浏览量:109