湖南科技大学本科生毕业设计(论文)
只有第12行是有效代码,说明Android程序的编译目标,即Android API版本[7]。 2.1.4 Android UI设计与其原理
用户界面(UI)是应用程序和用户之间联系的桥梁。Android的UI框架足够强大,能够创建复杂的带有图形和动画的UI,同时它也足够灵活,能够从小屏幕的手持设备扩展到平板电脑以及电视[8]。Android的UI设计方法有两种:过程性设计和声明性设计。过程性设计是指用代码设计用户界面。另一方面,声明性设计不涉及任何代码[9]。
过程性设计通常使用View和ViewGroup对象构建而成,所有的图像元素都是View的子类。一个Activity界面可以包含多个View和ViewGroup,通过布局的组合、嵌套,实现更灵活、更完美的界面。构成Activity的结构图如图4.2所示。
图4.2 View和ViewGroup混合布局的Activity界面[8]
声明性设计通常使用设计风格类似于HTML的XML标记语言实现。使用XML布局的元素可以是View或者ViewGroup。通过布局的组合嵌套,同样可以完成复杂多样的界面设计。下面是一个简单的水平线性布局的代码。 当然,只有布局是不能完成游戏功能的,还需要绑定事件监听。下面是常用的一些事件监听方法。
-7-
湖南科技大学本科生毕业设计(论文)
Class ClickEvnet implements OnClickListener {} public boolean onKeyDown(int keyCode, KeyEvent event){} public Boolean onTouchEvent(MotionEvent event){} 2.2 Java
2.2.1 Java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专用社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景[4]。
Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)、枚举等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得开发人员不用再担心内存溢出等问题[4]。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java具有与平台无关的特性,依赖于Java虚拟机实现。Java文件被编译成一种与机器无关的字节码格式。这种字节码格式在Java虚拟机上运行,能够在配置有Java运行环境的任意机器上执行。也就是说,Java程序的运行不依赖于具体的操作系统和硬件平台,不管操作系统属于Windows、Linux还是Mac OS,只要配置有Java运行环境,Java程序即可实现一次编译,到处运行。 2.2.2 Java SE
Java SE(Java Platform,Standard Edition) 是Java平台标准版的简称,通常被称为J2SE。用于开发和部署桌面、服务器以及嵌入式设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。Android开发也主要是基于JavaSE的类库[5]。
2.3 Eclipse
Eclipse 是一个开放源代码的、基于Java的、跨平台的集成开发环境(IDE)。最开始是一个开放源代码的软件开发项目,最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、
-8-
湖南科技大学本科生毕业设计(论文)
Rational Software、Red Hat及Sybase等。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。 JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。Eclipse的插件机制是轻型软件组件化架构。在客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
2.3 Android SDK
Android SDK(Android Software Development Kit)提供了在Windows/Linux/Mac平台上开发Android应用的开发组件,Android支持所有的平台,其包含了在Android平台上开发移动应用的各种工具集。工具集不仅包括了Android模拟器和用于Eclipse的Android开发工具插件(ADT),而且包括了各种用来调试、打包和模拟器上安装应用的工具。Android SDK主要是以Java语言为基础,用户可以使用Java语言来开发Android平台上的软件应用。通过SDK提供的一些工具将其打包成Android平台使用的apk文件,然后用SDK中的模拟器(Emulator)来模拟和测试软件在Android平台上运行情况和效果。
Android SDK是Google官方提供的Android开发专属软件开发包,Android SDK有多个版本,从最初的1.1到现在的4.2。考虑到Android系统市场占有率,本应用兼容的最低版本为2.2,运行版本为4.0版本。
-9-
湖南科技大学本科生毕业设计(论文)
第三章 数独游戏设计
3.1 功能需求
本数独游戏主要利用Android游戏开发技术在Windows环境下实现数独游戏基本功能,该系统具备如下需求: 3.1.1 继续游戏模块
需求总述:保存玩家游戏状态,供玩家下次继续游戏。
功能描述1:只有在玩家有中途退出游戏的情况下,才能继续游戏。 功能描述2:保存玩家中途退出游戏时的状态值。 功能描述3:恢复玩家中途退出游戏时的状态值。 3.1.2 开始游戏模块
需求总述:玩家可以选择任意难度的任意关卡开始游戏。 功能描述1:提供容易,中等,困难游戏难度选择。 功能描述2:显示对应难度等级的关卡选择界面。 功能描述3:完成游戏界面的设计及功能的实现。 3.1.3 游戏设置模块
需求总述:对游戏环境及玩法等设置项进行控制。 功能描述1:设置游戏音乐的播放与暂停。 功能描述2:设置游戏语言的中英文切换。 功能描述3:设置是否打开游戏颜色提示。 功能描述4:设置是否打开数字输入键盘提示。 3.1.4 游戏完成模块
需求总述:对游戏是否完成进行检查以及显示游戏完成信息。 功能描述1:检测游戏是否完成。
功能描述2:设定计分规则,并存储每一关卡的最好成绩。
功能描述3:游戏完成时,提示此次分数,并显示提示语与其他信息。 功能描述4:提供下一步操作选择,返回关卡选择界面或者继续下一关。 3.1.5 其他模块
需求总述:其他辅助性功能设计。 功能描述1:数独谜题的存储与导入。
-10-
湖南科技大学本科生毕业设计(论文)
功能描述2:游戏说明。 功能描述3:退出游戏。
3.2 游戏架构设计
根据功能需求分析,本游戏可分为几个主模块,每个主模块又可分为几个子功能模块,其详细结构图如图3.1所示。
数独游戏主界面继续游戏开始游戏游戏设置其他恢复保存状态游戏难度选择音乐设置语言设置游戏关卡选择颜色提示设置键盘提示设置关于游戏退出游戏开始玩游戏游戏结束显示信息图3.1 数独游戏系统结构图
3.3 游戏运行流程
根据需求分析,游戏开始模块整个游戏的核心,其他功能都是对调用开始游戏进行配置,以满足不同的用户需求,获得更好的用户体验。系统运行流程图如图3.2所示。
-11-