毕业论文基于Android五子棋的设计与实现.doc

上传人:仙人指路1688 文档编号:3973007 上传时间:2023-03-30 格式:DOC 页数:45 大小:718.50KB
返回 下载 相关 举报
毕业论文基于Android五子棋的设计与实现.doc_第1页
第1页 / 共45页
毕业论文基于Android五子棋的设计与实现.doc_第2页
第2页 / 共45页
毕业论文基于Android五子棋的设计与实现.doc_第3页
第3页 / 共45页
毕业论文基于Android五子棋的设计与实现.doc_第4页
第4页 / 共45页
毕业论文基于Android五子棋的设计与实现.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《毕业论文基于Android五子棋的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业论文基于Android五子棋的设计与实现.doc(45页珍藏版)》请在三一办公上搜索。

1、总 目 录一、 毕业设计(论文)二、 指导老师评语表三、 评阅人评阅表四、 答辩记录表五、 答辩委员会评语表承 诺 书我谨此郑重承诺:本毕业设计(论文)是本人在指导老师指导下独立撰写完成的。凡涉及他人观点和材料,均依据著作规范作了注释。如有抄袭或其它违反知识产权的情况,本人愿接受学校处分。 承诺人(签名): 年 月 日基于Android五子棋的设计与实现信息科技学院计算机科学与技术专业 XXX摘 要:现在人们压力日益增大,需要劳逸结合才能获得更高的工作效率,工作之余的娱乐对每一个人来说都是必不可少的。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富有趣味性和消遣性。在经过不断发展后,五子棋已

2、经成为棋盘娱乐的一个重要的组成部分。它能够增强思维能力、开发智力,是人们休闲娱乐的不错选择。然而近年来,Android是全球最受欢迎的智能手机平台,基于Android平台开发具有一定人工智能的五子棋游戏,不仅可以解决人手不够或没有时间玩等客观因素,而且还能起到对五子棋的广泛推广,使得越来越多的人喜欢上了五子棋。此款游戏以eclipse为开发工具,基于Android手机操作系统,用java程序设计语言编写。本文给出了基于Android开发游戏的背景,详细的分析了Android操作系统的特征、架构、以及Android应用的构成和工作机制。以及描述了基于Android五子棋具体的设计与实现。关键词:

3、五子棋;Android;人机;eclipse;javaDesign and Implementation of Renju based on Android platformXu Yuchan,Major in Computer Science and Technology, College of Information Science and TechnologyAbstract: Nowadays pressure is increasing,spare time is essential for us to get higher efficiency in work. The Goban

4、g is easy to learn and play with full of fun and can enhance the thinking ability, develop intelligence and reduce our work stress efficiently. After continuous development, Gobang has become an important part of the board entertainment. And become a good choice inpeoples spare time. Recently, Andro

5、id is the worlds most popular smart phone platform, based on the Android platform developed Gobang games with some artificial intelligence, can not only solve the manpower is not enough or no time to play and other objective factors, but also make Renju more widespread in china and be more popular .

6、The game written in java programming language, use the eclipse as a development tool based on the Android mobile operating system.In this article will describe Android game development background, analysis of the composition in detailed and the working mechanism of the characteristics of the Android

7、 operating system, Androids architecture, as well as Android application. It also describes Design and Implementation of Renju based on the Android platform.Key words: Renju; Android; artificial intelligence; eclipse; java目 录1绪 论11.1课题背景与意义11.2基于Android开发国内外研究现状21.2.1基于Android开发国内研究现状21.3基于Android开发

8、国外研究现状31.4五子棋游戏概述31.5五子棋人工智能概述42总体分析设计62.1可行性分析62.1.1技术上可行性62.1.2操作上可行性62.1.3经济可行性62.2五子棋流程图62.3五子棋功能模块图83Android五子棋开发环境113.1Eclipse开发工具113.2Android开发平台113.2.1开发平台Android的架构113.3java开发语言133.4Android环境配置143.4.1Android SDK配置143.4.2ADT的安装和配置143.4.3Android虚拟机的安装和配置144相关技术概念164.1五子棋的应用组件164.1.1活动(Activit

9、y)174.1.2意图(Intent)174.1.3服务(Service)184.1.4Content Provider184.2五子棋算法194.2.1数据结构194.2.2菜鸟级别算法194.2.3大虾级别算法205五子棋实现215.1欢迎界面实现215.2Android五子棋棋盘实现225.3棋子的绘制235.4落子的判断245.5棋子自动落子实现265.6悔棋功能实现285.7五子棋胜负判断286软件测试326.1软件测试方案326.2软件功能测试用例32总 结33致 谢34参考文献351 绪 论1.1 课题背景与意义智能手机(Smartphone),具有独立的操作系统,像个人电脑一样

10、支持用户自行安装软件、游戏等第三方服务商提供的程序,并通过此类程序不断对手机的功能进行扩充,同时可通过移动通讯网络来实现无线网络接入,越来越多的手机用户选择使用智能机。由Google牵头有30多家移动技术和无线应用领域领先企业组成的开放手机联盟(Open Handset Alliance)发布了其智能手机平台Android。基于Android的智能手机受到极大的热销,同时受到很多厂商的青睐。Android可以作为一个通用的手机操作系统,任何一家厂商均可使用。这点与Windows mobile操作系统和Symbian操作系统类似,但不同的是Android整套系统完全开源和免费。是一个真正意义上的

11、开放性移动设备综合平台,它包括操作系统、用户界面、中间件和应用程序,拥有移动电话工作所需的全部软件,同时其开放性保证该平台不存在任何阻碍移动产业创新的专有权障碍1。由于Android基于Linux内核且具有开源、免费的特性,它迅速得到广大爱好者以及许多厂商的支持,基于Android所开发的手机游戏拥有巨大潜力已成为行业共识2。而且Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有很大的自由度。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普通的Java基于堆栈不同),速度得到了很大的提升,这为Android平台上开发游戏提供了坚强的后盾3。凭借手机设备

12、便于携带、沟通迅捷、功能多样、私密性强等独有优势,手机已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱乐需要,手机游戏的开发推广已经成为手机生产商和运营商重要的业务增长点,游戏软件产业价值不断提升。手机游戏是手机的一种高附加值操作软件,游戏编程是手机软件编程的重要组成,同时也持续推动手机软件技术升级进步。基于Android手机操作系统,开发设计应用程序已经非常热门。五子棋起源于古代中国,发展于日本,风靡于欧洲。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富有趣味性和消遣性4。它还能够增强思维能力、开发智力,是人们休闲娱乐一个的不错选择。五子棋这种娱乐方式简单易学

13、又具有深奥的技巧,非常富有趣味性和消遣性。在经过不断发展后,五子棋已经成为棋盘娱乐的一个重要的组成部分,它能够增强思维能力、开发智力,是人们休闲娱乐的不错选择。近来随着计算机和手机的快速发展,各种各样的游戏层出不穷,使得人们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。现在的五子棋游戏软件基本上可以分为两类:一类是网络五子棋游戏软件,另一类是单机版五子棋游戏软件。很少有人机版的五子棋游戏软件。为了满足手机人群的需求,本文设计了基于Android手机操作系统人机版的五子棋游戏软件,可以供人们闲暇时间随时随地地进行娱乐,提高自己的五

14、子棋水平,实用性强。1.2 基于Android开发国内外研究现状1.2.1 基于Android开发国内研究现状2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。而根据国内著名搜索引擎百度的内部人员透露,每天对安卓这个关键词进行搜索的流量已达到惊人的两亿,Iphone整整高出了一倍多,安卓的影响力可见一斑。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC、美国摩托罗拉、SE等,中国大陆厂商如:华为、中兴、联想等。目前国内的Android开发还是主要以应用开

15、发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以及游戏开发(放到Android Market或者其他App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发

16、者,目前和第二类开发者类似,游戏的开发。目前国内开发Android应用团队也逐渐新起,例如,国内知名Android开发团队优聚科技,该公司有多款游戏在Android Market上有非常好的下载数量。网龙公司,手机助手、熊猫看书、熊猫空间等等,都是大家耳熟能详的软件。还有个开发团队allove,致力于免费的Android/oms软件的开发。以上是三个专业团队,像腾讯、搜狐、网易等这样的大公司也是参与其中,还有很多创业型公司,外包公司也在进行Android的开发。目前中国拥有世界上最大的手机用户群,再加上3G的推出对整个行业的巨大推动作用,全世界所有大中小型手机制造商几乎都在招聘Android工

17、程师。随着Android平台的扩张,引发了Android人才荒,有很多的培训机构积极展开Android的培训。例如悦成、达内。悦成是一家比较老的手机软件开发培训机构,所以悦成在手机软件开发方面的培训比较全面,但是现在悦成的主要培训课程以Android和IPhone为主,悦成的教师团队自己也有过相关的Android软件开发作品在网上发布。而且Android在中国的前景十分广阔,首先是有成熟的消费者,在国内Android社区也十分红火,例安卓巴士,优亿eoe,Android开发联盟,安卓驿站,安卓航班网,这些社区为Android开发者提供Android开发学习与参与软件开发的很好途径。1.3 基于

18、Android开发国外研究现状Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统5。Android操作系统带动Android手机软件发展,谷歌Android部门负责人Andy Rubin于2010年12月9日通过Twitter宣布,Android手机的日激活量已经超过30万部。谷歌CEO Eric Schmidt今年2月表示,Android手机的日出货量达到6万部,而最新数据已经达到那时的5倍5。使用量越来越大的Android手机,这给手机软件提供更多的发展空间,越来越多的开发商

19、及专业人士投入精力进行Android手机软件开发。Android应用程序的开发利用java语言及Android自身的开发包就可以进行6。而在现今的环境下,专业的java开发团队比比皆是,他们可以很快掌握Android软件开发技术,这就意味着Android软件开发将拥有庞大的技术支持。Android获得了大量开发者的支持,据Google称,在其推出后的两个月内,程序员下载这个软件开发平台的次数已经高达250000多次。这足以看出国外开发人员或开发商对基于Android平台开发的浓厚兴趣。1.4 五子棋游戏概述五子棋是起源于中国古代的传统黑白棋种之一,它属于博弈的一种。现代五子棋日文称之为“连珠”

20、,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓10。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶8。1.4.1 五子棋术语黑方:执黑棋一方的简称。白方:执白棋一方的简称。

21、胜局:有一方获胜的对局。和局:分不出胜负的对局。终局:对局结束。阳线:直线,棋盘上可见的横纵直线。交叉点:阳线垂直相交的点,简称“点”。阴线:斜线,由交叉点构成的与阳线成45夹角的隐形斜线。 落子:棋子直接落于棋盘的空白交叉点上。轮走方:即“行棋方”,有权利落子的黑方或白方。连:同色棋子在一条阳线或阴线上相邻成一排。长连:五枚以上同色棋子在一条阳线或阴线上相邻成一排。五连:只有五枚同色棋子在一条阳线或阴线上相邻成一排。成五:含有五枚同色棋子所形成的连,包括五连和长连。四:一条阳线或阴线上连续相邻的5个点上只有四枚同色棋子的棋型。活四:有两个点可以成五的四。冲四:只有一个点可以成五的四。死四:不

22、能成五的四。三:一条阳线或阴线上连续相邻的5个点上只有三枚同色棋子的棋型。活三:再走一着可以形成活四的三。连活三:连的活三(同色棋子在一条阳线或阴线上相邻成一排的活三)。简称“连三”。跳活三:中间隔有一个空点的活三。简称“跳三”。眠三:再走一着可以形成冲四的三。死三:不能成五的三。二:一条阳线或阴线上连续相邻的5个点上只有两枚同色棋子的棋型。活二:再走一着可以形成活三的二。连活二:连的活二(同色棋子在一条阳线或阴线上相邻成一排的活二)。简称“连二”。跳活二:中间隔有一个空点的活二。简称“跳二”。大跳活二:中间隔有两个空点的活二。简称“大跳二”。眠二:再走一着可以形成眠三的二。死二:不能成五的二

23、。三三:一子落下同时形成两个活三。也称“双三”。四四:一子落下同时形成两个冲四。也称“双四”。四三:一子落下同时形成一个冲四和一个活三。1.5 五子棋人工智能概述人工智能(Artificial Intelligence,简称AI)是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)9。也被认为是二十一世纪(基因工程、纳米科学、人工智能)三大尖端技术之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。“人工智能”即指让机器具有类似人类

24、一样的主观能动性根据当前情况做出相应的判断,而他的核心便是具体的数学算法9。然而这个算法其实就是依托在一个人造的数学模型上。具体简单的说,就像本文介绍的五子棋,我们根据五子棋的具体规则建立适当的数学模型,只要机器按照此模型进行逻辑判断就可以得出一定的结果,而这个结果在我们人类看来就是机器在下棋的过程中攻守兼备,仿佛具有人类的智慧。人工智能在博弈方面的应用,经常会用到分析博弈树、极大极小值分析法以及-剪枝法等算法10。在二人博弈问题中,为了从众多可供选择的行动方案中选出一个对自己有利的行动方案,就需要对当前的情况以及将要发生的情况进行分析,从中选出最优者。最常使用的分析方法是极大极小分析法11。

25、 2 总体分析设计2.1 可行性分析2.1.1 技术上可行性该项目是用java语言开发,基于Android开发平台,本人在校学习的就是程序方面的知识加上在培训班培训的也是java方面的知识,具有一定的编程能力及熟悉的算法基础。因此,技术上是可行的。2.1.2 操作上可行性五子棋游戏简单易学,具有益智性与趣味性。本项目开发的五子棋操作简单明了,界面友好,用户使用方面绝对不存在任何障碍。2.1.3 经济可行性该软件为免费软件,不收取任何费用。2.2 五子棋流程图2.2.1 五子棋游戏基本流程五子棋游戏基本流程就是从打开程序到进行下棋,最后机子判断出胜负的过程。基本流程图描述:1.显示一个十五行十五

26、列的五子棋棋盘。2.在棋盘上面对应位置通过触屏点击下子,棋盘上将在相应的位置上显示棋子,并且棋子在纵横交点上。3.玩家下完棋后,电脑在通过程序中的算法判断出最佳的落子位置,然后进行落子。4.机子可以自动判断游戏是否结束、判断胜负、是否黑方或者白方已经胜出,并且通过提示信息来提醒玩家。5.玩家可以有重新开始游戏、悔棋、认输和退出游戏等功能。基本流程图如下图2.1所示。图2.1 基本流程图2.2.2 人机落子流程以上是整个游戏步骤的全过程,下面介绍人机对战机子落子情况的流程。机子落子具体的流程图描述:进入主页面后,白棋先落子即玩家。玩家落子后手机自动落子。手机落子是通过算法取得当前棋盘最佳下子位置

27、。没下一步棋子,系统就要判断一次胜负。若没有出现胜负,进入主循环测试继续下子,若判断出胜负,结束游戏。如图2.2所示。图2.2下棋流程图2.3 五子棋功能模块图打开五子棋首先进入欢迎界面,在欢迎界面中选择自己需要进行游戏的级别。打开后因为某种原因不能继续进行游戏时,点击退出,退出程序得出。根据系统设计思想,系统总体设计模型如图2.3所示。图2.3 系统总体设计模型根据需求分析和系统设计思想,可以将此手机五子棋游戏分为以下六个功能模块。游戏界面初始化模块:装载界面图片、画出棋盘、清空棋盘、清空游戏双方落子集合等功能。主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块

28、中,主要担当一个调度者的角色。玩家落子模块:即用户在指定落子区域单击后,程序会计算该子的坐标,并且在相应位置画出相应的棋子。最佳落子模块:系统分析盘面得出最佳的落子位置。电脑落子模块:在分析出来的最优位置上画出相应的棋子。胜负判断模块:根据预先设定的规则,判断游戏胜负。玩家落子模块有分为三个模块:悔棋功能模块:该游戏在安卓手机上运行,由于手机屏幕不是很大,下棋时棋盘上每个点对应的位置比较小,触屏时手机读取的触屏点的位置与我们理想中的有时候会出现一点误差,导致容易下错子的问题;或者玩家考虑为周全而下错子,玩家可以悔棋来挽救棋局。认输功能模块:当玩家觉得没有信心赢棋时,通过点击认输按钮可以认输。重

29、新开始模块:当游戏结束时,玩家觉得还想继续游戏的话,通过点击重新开始继续游戏,如图2.4所示。图2.4 五子棋功能模块3 Android五子棋开发环境3.1 Eclipse开发工具Eclipse是一个开放源代码的、基于Java的可扩展开发平台。它专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成:Eclipse Platform、JDT(Java Development Tools,JDT)、CDT和PDE13。JDT支持Java开发、CDT支持C开发、PDE用来支持插

30、件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse最初是由IBM开发的跨平台集成开发环境(IDE),后来贡献给Apache开源软件基金会。最初主要用于Java语言开发,目前可通过C+、Python、PHP等语言插件支持对应语言开发。就其本身而言,它只是一个框架和一组服务,用于通过插件组件来构建开发环境。Eclipse自身附带了一个标准的插件集,包括J

31、ava开发工具,由于有众多的插件支持,Eclipse上更多的工作都是交给插件或JDK来完成的。这样的模块化设计,让Eclipse的定位更清晰,使得Eclipse拥有较佳的灵活性。3.2 Android开发平台Android平台是在eclipse平台基础上安装SDK插件,ADT以及Android模拟器扩展而来的。在本课题项目开发中之所以使用Eclipse开发工具,是由于Google提供的Android SDK和ADT插件都是基于Eclipse的,而且Eclipse中还拥有DDMS透视图,它能够控制和监控模拟器。这个模拟器管理控制台对于Android开发者来说是一个相当不错的开发助手14。当然最最

32、重要的是Eclipse拥有强大的社区来开发插件不断的补充Eclipse的基本的功能和提供解决方案,大大提高了开发者的开发效率。3.2.1 开发平台Android的架构Android的架构是由Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成19。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的。图3.1 Android的架构Android 平台的架构从上到下包含了五个部分15:应用程序、应用框架、开发库、Android 运行时环境以及Linux内核,如图4.1所示。(1) 应用程序:Android将包含一套核心应用程序,其中包

33、括E-Mail客户端、短信程序、日历、地图、浏览器、通讯录等等,所有的应用程序都是由Java语言完成的21。(2) 应用程序框架:开发人员可以跟核心应用一样,拥有访问框架APIs的全部权限。该应用框架包括了一套可视化对象、一个资源管理器、一个消息管理器、一个活动管理器以及可以通过协议来分享的数据。(3) 开发库:Android包含一套C/C+开发库, 主要包括:libc、Media Framework、WebKit、SGL、OpenGL ES、FreeType、SQLite等。它们被用于Android系统的各种组件中。这些功能通过Android应用框架展现给开发人员。(4) Android运行

34、时环境:每一个Android应用运行在自己的进程里,使用该应用自己的Dalvik虚拟机实例。Dalvik 可以让一个设备高效的运行很多个VM。Dalvik虚拟机执行Dalvik Executable(.dex)格式的文件,该格式的文件经过优化,占用很小的内存。通过名为dx的工具可以将Java编译器生成的class格式转换为.dex格式。(5) Linux内核:Android基于Linux2.6内核来提供系统的核心服务,如安全机制,内存管理,进程管理,网络堆栈和驱动模型。内核还作为硬件和其余的软件应用之间的一个抽象层16。从总体架构中看,Android相比其他平台显示出了自身的特点,如集成了We

35、bKit浏览器、Dalvik虚拟机等模块。这些模块的应用也成了Android的焦点,开发者可以充分利用Androd 提供的这些模块的接口,开发出更具有特色的应用程序。3.3 java开发语言Java是一种简单、动态、面向对象、分布式、解释执行、健壮、安全、结构中立、可移植、高效能、具有多线程能力的以面向对象为基础,可以撰写跨平台应用软件的面向对象的程序设计语言17。跨平台,平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtua

36、l Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。安全性,Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓16。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问17。面向对象,Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。

37、Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的。一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类18。分布式,Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。健壮性,Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Ja

38、va还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能19。在Java语言中,不能在类外面定义单独的数据和函数,所有对象都要派生于同一个基类,并共享它所有功能,也就是说,Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。Java程序具有与体系结构无关的特性;Java语言能够检查程序在编译和运行时的错误;Java程序是可解释的,字节码不是直接由系统执行,而是在解释器中运行;可以用“一个对外接口,多个内在实现方法”表示;Java去除了C语言的指针内容,

39、这样就不能直接作用于硬件,这对于计算机来说提高了安全性19。3.4 Android环境配置3.4.1 Android SDK配置SDK是一个开发工具包,提供调试工具及相关的类库20。主要分为两大部分:一是可执行文件,主要命令行中用的命令,例adb。二是Android的类库,比如常用的集合、IO以及对Android操作系统的一些访问所需要的类。Android SDK配置步骤如下:到google网站的Android developers下载Android SDK,点击 SDK Setup.exe。点击进入后选择要装的package,我的话是安装了SDK1.6版本以上的全部版本,然后点击instal

40、l即可。这个安装相当缓慢,我安装时花费了6个小时左右。安装好后需要配置环境变量:我的电脑-属性-高级系统设置-环境变量-path。在path环境变量中放入SDK安装路径。值得注意的是:在添加路径时用“;”隔开。3.4.2 ADT的安装和配置ADT是google发布的eclipse插件,可以大大提高开发Android应用程序的效率,ADT会帮助完成很多开发过程中的重复性工作。安装配置是在eclipse的基础上进行安装,步骤如下:到google网站的Android developers中把ADT插件的网址(http:/dl- New Software中的work with栏中。然后eclipse会

41、自动找到相应的版本,选中安装即可。3.4.3 Android虚拟机的安装和配置这个模拟器是用来让开发者开发的软件在PC机中运行进行调试。模拟手机运行的情况,这样就算我们没有Android手机,照样可以对Android程序进行运行调试。点击eclipse的windows-preference-Android,在SDK location中选择我们下载安装的SDK的路径。创建虚拟机:点击eclipse中Opens the Android SDK manager-new-输入新建的虚拟机的name以及版本create AVD。创建好虚拟机,点击start即可启动。4 相关技术概念在游戏的具体实现过程中

42、还会采用Android的view框架,activity和intent组件。通过activity来完成棋盘的绘制,通过view类可以把用户所要的界面显示出来,然后进行下棋等操作。这些操作会被包装成意图,然后意图会根据对应有关的activity进行处理。本程序的整个游戏基本框架是通过程序控制界面和用户进行交互,用户通过界面上的选项进行游戏。包括:游戏逻辑与数据持久化。游戏逻辑主要是负责游戏画面的绘制,游戏中手机自动和玩家进行对弈。包括游戏人工智能、游戏绘图引擎、人机交互控制。数据持久化是负责把游戏中产生的内存数据,转化成存储的XML数据。包括数据结构定义、XML文件生成、XML解析21,如下图4.

43、1所示。图4.1 游戏设计基本框架4.1 五子棋的应用组件Android应用程序由四个模块构造而成:Activity,Intent,Content Provider,Service。当然也不是每个Android应用程序都必须由这四部分组成,可以根据开发者的需求进行组合。但是任何一个应用程序模块都必须在AndroidManfest.xml文件中声明使用到的这些模块。4.1.1 活动(Activity)活动是最常用的Android应用程序形式。活动在一个称为视图的类的帮助下,为应用程序提供UI。视图类实现各种UI元素,比如文本框、标签、按钮和计算平台上常见的其他UI元素。一个应用程序可以包含一个或

44、多个活动。这些活动通常与应用程序中的屏幕形成一对一关系。应用程序通过调用startActivity()或startSubActivity()方法从一个活动转移到另一个活动。如果应用程序只需“切换”到新的活动,就应该使用前一个方法。如果需要异步的调用/响应模式,就使用后一个方法。在这两种情况下,都需要通过方法的参数传递一个Intent。由操作系统负责决定哪个活动最适合满足指定的Intent。简单理解,Activity表示一个可视化的用户界面,关注用户从事的事件24。它负责管理UI和接受事件(包括用户的输入),虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity

45、管理多个不同的View来实现简单的逻辑。所有应用的Activity都继承于Android.app.Activity类,该类是Android提供5的基层类,其他的Activity继承父类后,通过父类的方法来实现各种功能。4.1.2 意图(Intent)协助应用间的交互通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述。Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的

46、作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个intent filter则用于描述一个activity(或者Intent Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要

47、知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(Intent myIntent)方法。4.1.3 服务(Service)一个Service是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service上(如果这个se

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号