Android手机软件开发设计说明书 .pdf

上传人:C****o 文档编号:39699434 上传时间:2022-09-07 格式:PDF 页数:37 大小:3.59MB
返回 下载 相关 举报
Android手机软件开发设计说明书 .pdf_第1页
第1页 / 共37页
Android手机软件开发设计说明书 .pdf_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《Android手机软件开发设计说明书 .pdf》由会员分享,可在线阅读,更多相关《Android手机软件开发设计说明书 .pdf(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Android 手机软件开发 设计说明书姓名:学号:班级:10 软件指导教师:李红军完成日期:2012.6.22 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 37 页 -目 录引言.1发展趋势2Android系统框架研究.3Android架构分析.4 类库.5Android运行时组.7Android解剖分析.8Android程序结构解析.9游戏功能介.9功能介绍.10功能背景.10功能简介.11 游戏策划及准备工作.12游戏的策划.12Android平台下游戏的准备工作.13 Android平台下游戏的框架.13 各类的简要介绍.14 系统的设计实现.14设计结构.14 设计

2、思想.15 总结.33参考文献.34名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 37 页 -基于 Android平台的快乐数独引 言目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有 Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android 系统的用户。截止2010 年第二季度 Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见 Android 系统正在崛起之中。

3、但是对于Android 系统的应用和开发在国内仍然属于起步和探索阶段。急需要大量的相关技术和人员的投入。下面首先介绍一下Android 系统。Android 是基于 Linux 内核的软件平台和操作系统,是 Google 在 2007年 11月 5 日公布的手机系统平台,早期由Google开发,后由(Open Handset Alliance)开发。它采用了软件堆层(Software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux 核心工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java 作为编写程式的一部分。本文对目前应用的Symbian、Windo

4、wsMobile、MacOSX 和 RIM等平台的现状进行了分析与比较。进而研究分析了Android 平台的系统架构和组件模型,接着解析了 Android 中的重要 API 和应用构成,以Intent和生命周期的机制。在此基础上,基于 Android 平台设计和开发校园资讯软件。本系统界面友好、操作便捷,具有良好的可扩展性和可维护性;系统经过测试,可以稳定运行,能够满足手机用户的基本需求。发展趋势随着 3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的

5、将来,移动手机终端将会在以下若干方面具有新的发展。首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 37 页 -1 手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲友生日等。其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传

6、感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。如进行端到端的多人游戏、照片分享、书籍分享、音乐分享等。然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息,帮助用户从事的经济活动的收益率。最后,更加智能、安全的设备,随

7、着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。Android系统架构研究Android 是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google 为Android 开发的类库及 Android 运行时,再配合应用程序架构,来开发各种不同的应用程序。Android 的功能特征(

8、l)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(2)Dalvik虚拟机器:在 Android 平台上所使用 Java 虚拟机,不是 Sim公司的标名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 37 页 -2 准 Java 虚拟机,而是使用Google 自主开发的代号为Dalvik 的虚拟机,它在保证 API 方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。(3)集成的浏览器:集成的浏览器是 Android 内建的浏览器,是以WebKit 的浏览引擎为基础所

9、开发成的。WedKit 是一个开源浏览器网页排版引擎,目前使用WebKit 引擎的浏览器主要有:Safari,Midori,Epiphany 等。配合 Android 手机的功能,可以在浏览网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D 与 3D 两个方面。在2D 方 面,Android提 供了 一 套 特有 的 类 库(SGL;而 在 3D 方 面 则 是 使用OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。(5)SQ

10、Lite 数据库:SQLite 提供结构化的数据存取。SQLite 是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持Windows/Linux/U nix 等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java 等,还有ODBC 接口,同样比起Mysql,PostgreSQL 来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有 250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLi

11、te 也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放 MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放 URI地址”(Note:URI即是统一资源识别地址)模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式。(7)GSM 技术:Global System for Mobile Communications,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球

12、各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM 技术是属于手机硬件方面的展现,也是在开发名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 37 页 -3 Android 应用程序时可以突出的特点之一。(8)蓝牙、EDGE、3G及 Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM,Evolution),即增强型数据速率GSM 演进技术。EDGE 是一种从GSM 到 3G的过渡技术,它主要是在GSM 系统中采用了一种新的调制方法,即最

13、先进的多时隙操作和SPSK 调制技术。由于8PSK可将现有 GSM 网络采用的 GMSK调制技术的信号空间从2扩展到 8,从而使每个符号所包含的信息是原来的4 倍。Wi-Fi(WirelessFidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4GHz附近的频段,该频段目前尚属没用许可 的无线 频 段。其 目前可使用的标准 有两个,分别是IEEE802.lla和 IEEE802.11b。这些通讯能力也是属于手机硬件方面的展现,也是在开发 Android 应用程序时可以突出的特点之一。(9)GPS:Global Positioning

14、 System,即全球定位系统,它是一个由覆盖全球的 24 颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到 4 颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发 Android 应用程序是可以突出的特点之一。Android 架构分析名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 37 页 -4 在 Android SDK 中,定义了让开发者使用与核心应用程序相同API 的权限应用程序框架是为了要简化组件的重新利用而设计的,应用

15、程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有:(l)一套强大和可扩展的视图系统:用来建构一个应用程序的基本组件,包了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。(2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。(3)资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本字符串、图形文件或排版相关的布局文件。(4)通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。(5)活

16、动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。(6)视窗管理器:用来管理所有启动程序的视窗。(7)位置管理器:用来管理地图服务的相关功能。(8)电话管理器:用来管理用户拨打与接听电话的相关功能。(9)包管理器:管理所有安装在Android 系统内的包。类库在 Android 中包含一些 C/C+的类库,这些类库能被Android 系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:(1)surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能

17、,在 显示 与 存取操作 间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如:在 2D、2D显示上的合成、叠合动作。(2)3Dlibraries:主要是依 openGLES1.0规范所定义的 3D绘图引擎。该库使用硬件加速(当硬件可用时),可以将硬件的 3D功能做最佳化的处理显示。(3)SGL:主要是处理有关显示2D方面的绘图引擎。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 37 页 -5(4)Media Frame work:主要是以 packetVideo 公司的 OpenCORE 为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片

18、。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式(5)Free Type:主要是用来显示点阵图和处理向量字形的。(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出的基于 WEB 应用的安全协议,当前版本为3.0。SSL协议指定了一种在应用程序协议(如 HTTP、Telenet、NMTP 和 FTP等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于 Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位

19、于 TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL 记录协议(SSL Record Proto col):它建立在可靠的传输协议(如 TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在 SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL 协议提供的服务主要有:认证用户和服务器,确保数据发送到正确的客户机和服务器;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改变。(7)SQLite:

20、SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。(8)web Kit:是一个先进的网页浏览器引擎,被用来构建Android 浏览器和内嵌的 web视图,也可以让开发者利用这个引擎来做不同的应用。(9)lib c:就是一个 BSD标准 C类库。但是,针对Linux 嵌入式装置进行过最佳化的调整。Android 运行时组件虽然 Android 是用 Java 语言来开发、撰写应用程序,但却不使用Java 运行时组件来执行 Java 程序,而是使用了由 Google 自行研发的 Android 运行时组件来执行程序。Android 运行时组件包括两个重要的部分

21、,一个是核心类库,另一个是 Dalvik 虚拟机。2.3 Android应用的构成和工作机制名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 37 页 -6 对于一个 Android 应用程序来说,是由Activity、IntentReceiver、Service、Content Provider四部分组成,但并不是每一个Android 应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件 AndroidManifest.xml中进行配置。这个配置文件是每个Android 应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Android 应用的构成和工

22、作流程如图2-2:图 2-2 Android的构成和工作流程Android 应用程序结构剖析Android 的 API Android API主要包含了以下几个部分:(1)AndroidManifest.xml AndroidManifest.xml是系统的控制文件,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务(Service),意图接收器(Intent Receiver)和内容提供者(Content Provider)。举例来说,控制文件就是把活动和要接收的意图(Intents)连接在一起的“胶水”。(2)活动活动就是一个有生命周期的对象。一个活动就是完成某些

23、工作的代码块,这部分工作还可能包括对用户UI 界面的显示。不过这不是必须的,有些活动从不显示 UI 界面。(3)视图视图可以将其自身绘制到屏幕上。Android的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 37 页 -7 的视图的方法来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界面)。(4)意图意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览这个U

24、RI。系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。(5)服务服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音乐还继续播放着。(6)通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常见的通知包括短信息、通话记录和语音邮件,但是应用

25、程序也可以创建它们自己的通知事件。(7)内容提供者内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者来向其它应用提供数据访问服务。Android 应用程序结构解析通常由以下四个组件来构建一个完整的Android 应用程序。活动意图接收器服务内容提供者然而,并不是所有的 Android 应用程序都必须具备上面的四个组件,可以由上名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 37 页 -8 面的一个或几个来组建。当决定使用以上哪些组件来构建Android 应用程

26、序时,需要将它们注册在AndroidManifest.xml文件中,这是一个 XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android 应用程序所必需的。活动活动是以上四个组件中最常用的一个。每个活动都是Activity的子类,并实现了一些独有的功能,如管理 UI 显示和 UI 的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就

27、相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,Android 会为每个应用程序保留从主界面开始的历史堆栈。Android 通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构:动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PIC

28、K、EDIT等等,而动作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的 URI。除此之外,还有一个被称作意图过滤器(IntentFiher)的相关类。当发生一个有效的目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要被在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在 AndroidManifest.xml文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如:一个活动使用startAct

29、ivity(myIntent)来调用其他活名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 37 页 -9 动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配 myIntent 意图的活动。随后,这个新的活动接收到意图(myIntent)的通知并开始运行。当 startActivity方法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点:活动可以通过一个以意图形式产生的请求来重用其他组件的功能。活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。意图接收器当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并不显示 U

30、I 界面,它是通过 NotificationManager来通知用户他们感兴趣的事件发生了。意图接收器同样可以被注册在AndroidManifest.xml文件中,同时也可以在代码中使用Context.registerReceiver()来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用程序。服务服务是具有长生命周期并且没有用户界面的代码。内容提供者在 Android 中,每个应用程序都是有自己的userID 及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都

31、无法共享。如果应用程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供者处理过的数据。游戏功能背景介绍:功能介绍:益智类游戏是一种比较流行的游戏,其画面大都比较简单,很少有很复杂的游戏特效,但是通常用到人工智能的算法来控制游戏的难度。而算法的优化是开发该类游戏的难点。这类游戏主要包括棋牌类游戏和智力测试类游戏,例如麻将、扫雷、五子棋、扑克牌等。数独就是益智游戏的一种,玩法简单但数字的排列方式千变万化,很多人认为数独是训练头脑的绝佳方式。本章通过讲解数独游戏在 Android 平台上的设计与实现,

32、是读者了解此类游戏的开发过程,掌名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 37 页 -10 握使用的开发技巧,学会此类游戏的开发。随着 3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。手机操作系统正朝着高处理能力、多功能、智能化的方向发展。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。游戏功能概述本设计说明书在整体上对数独游戏进行了简单的介绍,使读者了解数独游戏的发展,知道什么是数独游戏,

33、以及在Android 中该游戏的玩法。背景概述数独的前身是“九宫格”,最早起源于中国。但当时的算法比现在的更为复杂,要求纵向、横向、斜向上的三个数字只和等于15,而不只是数字不能重复。儒家典籍易经中的“九宫格”也是来源于此。到了 18 实际末,瑞士数学家莱昂哈德欧拉有发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家数学逻辑游戏杂志开始刊登这类游戏,此类游戏得到良好发展,之后又在日本得到了广泛的传播。2004 年,第一个“数独”游戏被刊登上了英国泰晤士报的封面,此时开始数独游戏才真正为世界所知晓。由于此类游戏操作简单,不需要特定的语言基础,也不需要进行数字运算且可玩性高、锻炼思维、开发大脑

34、,所以很快风靡全球。之后由其衍生的游戏也越来越多,例如杀手数独、角线数独等。功能简介数独游戏的规则很简单,只需要在空格初填入19 的数字,并保证每个数字在每个九宫格内只能出现一次,且每个数字在每一行、每一列也只能出现一次,而一半的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏的规则。该游戏运行步骤如下:1.启动游戏后首先进入的便是欢迎界面,效果如图 16.1 所示,在欢迎界面中“点击屏幕继续 ”会时有时无,达到提示的效果。名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 37 页 -11 2.在游戏界面单单击屏幕,便进入菜单界面,如图16.2 所示

35、。3.在菜单界面单击“关于游戏”才当可进入“关于”界面,如图16.3 所示,在 关于 界面中介绍了游戏的目标平台及开发日期。4.在菜单界面单击“帮助游戏”菜单可进入“帮助界面,如图16.4 所示在“帮助”界面介绍了游戏的基本规则。5.在菜单界面单击“开始游戏”菜单可进入游戏界面,如图16.5 所示。6.党在游戏过程中单击“暂停”按钮时,便进入暂停状态,如图16.6 所示。7.在游戏过程中随时可以通过换题按钮在更换题目。8.当玩家单击放弃按钮时,会提示玩家需要退出游戏,然后根据玩家的选择进行操作。9.当玩家单击提示按钮时,界面上会出现一个红心表示当前可以提示玩家输入数字,此时在单击空白处,便会自

36、动填上正确答案。10.当玩家将界面中所有的空白全部填满数字时,系统会自动判断所填写的数字正确与否,当有错误时,会出现任图所示的游戏失败界面,党全部填写正确时,会出现如图所示的游戏胜利界面。11.在胜利或者失败状态时,玩家可以通过点击屏幕任意位置返回欢迎界面。12.在菜单界面单击退出游戏便可退出游戏。提示:因为考虑到市面上很多google phone 没有键盘,而屏幕普遍较大,所以在游戏中采用全触控笔操作,以提高玩家对游戏的体验。游戏策划及准备工作游戏的策划:人类如果经常动用大脑,便可让自身的逻辑和抽象思维能力得到增长,因此,玩数独游戏就是一个增长智慧的好办法,通过数独题米的解答,可以让头脑变得

37、更聪明,用户可以吧她作为锻炼逻辑思维及策略绿的工具,在手机上的实现便可以时时刻刻的开发思维,锻炼头脑,数独的推理性强,一些数学的思想、推理、假设、反正等都会用到,每个提米各不相同,不可能用一种方法解决所有问题,这也是数独的魅力所在。开发这个游戏的目的是为读者在Android平台上进行游戏开发提供一个指导方案,二不是声场商业化的游戏,读者可以以此为范例开发出更好、更具玩性的数独游戏。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 37 页 -12 Android 平台下游戏的准备工作游戏的准备工作通常根据游戏的策划来制作游戏所有的图片、声音等。因为本游戏并没有添加音效设置,所以只

38、需要搜集或制作游戏过程中所有得到的图片资源即可,本游戏用到的图片文件资源。游戏的架构在正式开放代码之前,首先需要对该游戏的设计框架进行简要介绍,以帮助读者更好的理解游戏的开放过程,希望读者能够仔细阅读本节的内容,在整体上了解本游戏。这会为之后的开发带来事半功倍的效果。接下来将通过游戏的运行过程介绍各类在游戏中的作用,具体运行的步骤如下:(1)启动游戏后,首先在KLSDActivity中初始化 WelcomeView,然后将用户界面切换到欢迎动画 WelcomeView.(2)而在 WelcomeView中会启动 WelcomeViewDrawThread 与 WelcomeGoThread 来

39、刷新界面和生成欢迎动画。(3)当玩家单击”帮助”菜单式,会创建HelpView,是显示”帮助”界面。(4)当玩家单击”关于”菜单式,会创建AboutView 显示”关于”界面。(5)党 单 击”开 始 游 戏”时 则 正 式 进 入 游 戏 界 面GamneView,同 时 启 动GameViewDrawThread 来刷新界面。各类的简要介绍为了让读者更好的理解后面的代码,下面将对游戏的各个累逐一进行简要说明,关于这些类的详细代码将在后面的章节中相继给出。为了让读者更好地理解后面的代码,下面将对游戏中的各个类逐一简要说明。关于这些累的详细代码将在后面的章节中相继给出。共有类SudukuAct

40、ivity类该类是通过集成和扩展类Activity来实现的,是整个应用程序的入口,主要是根据收到的 Handler 消息的不同切换到不同的界面。欢迎界面相关类名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 37 页 -13 该类为欢迎界面的实现类,主要负责欢迎动画界面的绘制,是欢迎界面的前台显示的实战 Android 变成手把手教你作出商用软件。View,根据后台数据的不同绘制不同效果的动画。(1)WelcomeViewDrawThread 类该类为欢迎动画界面的服务线程,主要负责欢迎动画的生成,通过改变表示当前帧的索引值达到动画的效果。(2)关于界面 AboutView 类该

41、类是游戏帮助界面的实现类,主要负责游戏帮助界面的绘制。游戏界面相关类GameView 类GameView 类是游戏中最主要的一个类。游戏规则、游戏模型都包含在此类当中,同时该类还负责绘制游戏的画面、接收玩家的响应。(1)GameViewDrawthread类GameViewDrawthread类负责定时的刷帧操作。(2)刷新时间县城 TimeThread 类该线程的实现非常简单,只是定时改变游戏模型中的实间值,并不负责其他事件的处理。(3)数字键盘渲染线程DrawKeythread 类该线程的作用是数字键盘图片头明度即可。(4)数独生成器 ShuDuSuanFa 类该类是个普通的 Java 类

42、,不继承任何类,只为游戏随机提供存放熟读数字的二维数组,该类所采用算法的优劣决定了该游戏可玩性的好坏。系统的设计实现结构设计名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 37 页 -14 图 设计流程图设计思想1.按照程序运行的顺序介绍各个类的作用以及整体的运行框架,步骤如下:启动游戏,首先被创建的是游戏的主界面,而在主界面如图。名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 37 页 -15 图 界面应用程序的每个屏幕的显示都要通过继承和扩展基类Activity类来实现,钟重写 Activity类的 onCreat()方法,在 onCreat()方法中做游戏

43、的初始化工作,该类代码以下:publicclass KLSDActivity extends Activity WelcomeView welcomeView;/欢迎动画界面的引用GameView gameView;/游戏界面的引用AboutView aboutView;/关于界面HelpView helpView;/帮助界面Handler myHandler=new Handler()/用来更新 UI 线程中的控件publicvoid handleMessage(Message msg)if(msg.what =1)/欢迎界面发送的消息if(welcomeView!=null)welcome

44、View=null;initGameView();名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 37 页 -16 KLSDActivity.this.setContentView(gameView);elseif(msg.what =2)/游戏胜利或者失败时点击屏幕if(gameView!=null)gameView=null;initWelcomeView();/初始化欢迎界面KLSDActivity.this.setContentView(welcomeView);/切换到欢迎界面 elseif(msg.what =3)initAboutView();KLSDActivi

45、ty.this.setContentView(aboutView);/切换到关于界面 elseif(msg.what =4)initHelpView();KLSDActivity.this.setContentView(helpView);/切换到帮助界面 ;publicvoid onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);/设置全屏requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.Lay

46、outParams.FLAG_FULLSCREEN ,WindowManager.LayoutParams.FLAG_FULLSCREEN);initWelcomeView();/初始化欢迎界面this.setContentView(welcomeView);/切换到欢迎界面 publicvoid initWelcomeView()/初始化欢迎界面welcomeView=new WelcomeView(this);publicvoid initGameView()/初始化游戏界面gameView =new GameView(this);publicvoid initAboutView()/初始

47、化关于界面aboutView=new AboutView(this);publicvoid initHelpView()/初始化帮助界面helpView=new HelpView(this);当用户单击“关于”菜单时,将进入帮助界面,菜单按钮时,新界面进入。名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 37 页 -17 当用户单击“帮助”菜单时,将进入帮助界面,该界面实现较简单,只需将图片绘制到指定位置,然后绘制以下”确定”按钮即可,代码如下名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 37 页 -18 publicclass ShuDuSuanFa int

48、 n=newint99;/存储数字的数组int num=1,2,3,4,5,6,7,8,9;/生成随机数字的源数组,随机数字从该数组中产生publicboolean checkLine(int col)/检查列是否符合要求for(int j=0;j 8;j+)if(njcol=0)continue;for(int k=j+1;k 9;k+)if(njcol=nkcol)returnfalse;returntrue;publicboolean checkNine(int row,int col)/检查 3X3 区域是否符合要求int j=row/3*3;/获得左上角的坐标int k=col/3*

49、3;for(int i=0;i 8;i+)/循环比较if(nj+i/3k+i%3=0)continue;for(int m=i+1;m 9;m+)if(nj+i/3k+i%3=nj+m/3k+m%3)名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 37 页 -19 returnfalse returntrue;publicboolean checkRow(int row)/检查行是否符合要求f or(int j=0;j 8;j+)if(nrowj=0)continue;for(int k=j+1;k 9;k+)if(nrowj=nrowk)returnfalse;r eturn

50、true;publicint generateNum(int row,int col,int time)/产生 1-9 之间的随机数字if(time=0)/第一次尝试时,初始化随机数字源数组for(int i=0;i 9;i+)numi=i+1;/第10 次填充,表明该位置已经卡住,则返回0,由主程序处理退回if(time=9)return 0;/不是第一次填充/生成随机数字,该数字是数组的下标,取数组num中该下标对应的数字为随机数字int ranNum=(int)(Math.random()*(9-time);/把数字放置在数组倒数第time个位置,int temp=num8-ranNum

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com