《毕业论文_基于android平台游戏的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
摘要手机游戏是消费者利用随身携带的智能移动终端设备能随时随地来进行的游戏。近年来,随着移动互联网和电子信息技术的迅猛发展,手机游戏市场亦得到了很大的发展。Android是在手机应用市场和移动互联网迅猛发展的形势下应运而生的,它是由Google公司推出的一款基于Linux内核的开源手机操作系统,由于其具有开放性、不受运营商的束缚、丰富的硬件选择、开发商不受任何限制和能无缝结合优秀的Google应用的特点,很快就称霸智能机平台系统领域。进行Android平台手机游戏的研究与开发,成为一个非常有趣而又有很大发展空间的领域。本文通过对Android应用开发的初步研究,设计出了一款基于Android平台的连连看小游戏。在对系统进行详细需求分析的基础上,确定了系统的基本功能要求,对游戏的关卡设置、菜单界面、音效和动画、、时间控制、屏幕绘制、连通算法和布局算法进行了设计,并最终实现了一款风格清新可爱、娱乐体验丰富且性能高效稳定的手机连连看小游戏,它很好地缓冲了当今人们的紧张生活节奏,为一些枯燥时刻带来另样而欢快的享受。关键词:手机游戏Android连连看 ABSTRACTMobilegamesarethegameswhichconsumerscanuseportablesmartmobiledevicesanytime,anywhere.Inrecentyears,asthemobileInternetandelectronicinformationtechnologyrapidlydeveloping,mobilegamesmarkethasalsobeenagreatdevelopment.ThemobileapplicationmarketandtherapiddevelopmentofmobileInternetsituationmakeAndroidcameintobeing,itisbyGoogleInc.launchedaLinux-basedopensourcemobileoperatingsystemkernel,becauseofitsopenness,freefromtheshacklesofoperators,richhardwareoptions,developerswithoutanyrestrictionsandcanseamlesslyintegrateGoogleAppsexcellentcharacteristics,soondominatethesmartphoneplatformsystemfields.ConductresearchanddevelopmentoftheAndroidplatformmobilegames,havingbecomeaveryinterestingareaofgreatdevelopmentspace.BasedonthepreliminarystudyonAndroidApplicationDevelopment,amodelbasedontheAndroidplatformLianliankangamehasbeendesignedsucceed.Inthesystem,basedondetailedneedsanalysistodeterminethebasicfunctionalrequirementsofthesystem,setupcheckpointsonthegame,themenuinterface,soundandanimation,andtimecontrol,screendrawing,connectivityandlayoutalgorithmsalgorithmdesign,andultimatelyachieveafreshstylecute,richentertainmentexperienceandtheperformancestableandefficientmobileLianliankangame,itiswellcushionedthepaceoflifetoday,tension,assomeoftheboringmomentsbringsanotherkindandcheerfulenjoyment.KEYWORDS:MobilegamesAndroidLianliankan 目录1.1引言31.2课题背景介绍31.2.1手机的应用市场发展现状31.2.2Android平台介绍31.2.3连连看游戏发展介绍31.3“连连看”游戏发展前景31.4课题研究价值及意义31.5论文结构安排31.6本章小结3第二章相关开发技术介绍32.1Java技术简介32.1.1Java与Android的关系32.1.2Java简介32.1.3Java语言特性32.2Android技术简介32.2.1Android架构简介32.2.2Android开发技术简介32.3本章小结3第三章系统分析与设计33.1可行性分析33.1.1操作可行性33.1.2技术可行性33.1.3经济可行性33.1.4社会可行性33.2系统需求分析33.2.1系统功能需求33.2.2游戏基本规则33.3系统设计33.3.1系统基本流程设计33.3.2系统模块设计33.4系统风格定位33.5本章小结3第四章系统的实现34.1开发环境的搭建34.1.1JDK的安装与环境变量配置34.1.2AndroidSDK与Eclipse的安装与配置34.1.3Android虚拟机AVD的配置34.2系统工程的创建3 4.3主要功能的实现34.3.1图案选中放大效果实现错误!未定义书签。4.3.2刷新地图道具功能实现错误!未定义书签。4.3.3消除提示按钮功能实现错误!未定义书签。4.3.4判断消除图片错误!未定义书签。4.4系统运行界面图错误!未定义书签。4.5本章小结错误!未定义书签。第五章系统测试与性能错误!未定义书签。5.1软件测试错误!未定义书签。5.1.1软件测试简介错误!未定义书签。5.1.2测试方法错误!未定义书签。5.1.3测试步骤错误!未定义书签。5.2连连看游戏系统测试错误!未定义书签。5.3游戏系统性能分析错误!未定义书签。5.4本章小结错误!未定义书签。第六章总结与展望36.1总结36.2未来工作展望3致谢3参考文献错误!未定义书签。 基于Android平台的连连看游戏的开发与实现绪论第一章绪论1.1引言在手机应用市场和移动互联网迅猛发展的形势下,作为智能手机平台而基于LINUX内核的操作系统Android于2007年11月5日应运而生。在谷歌公司的运营开发下,并由2011年初数据显示,操作系统Android虽仅正式上市两年却已跃居到全球最受人们欢迎的智能手机平台地位。鉴于Android的开放性好、硬件选择丰富、不受运营商的束缚、开发商不受任何限制、能无缝结合优秀的Google应用这五大优势,当今的Android不仅在手机市场上叱咤风云,还急速扩张到平板电脑市场。游戏一直以来就是人们在休闲娱乐时的一项不错选择,它具有强大的吸引力,能给玩家带来挑战、刺激、新鲜、成就感等多种现实生活中欠缺而只能在虚拟世界才能感受到的东西。游戏的这些独特魅力,并伴着现代电子信息技术的巨大推进作用,使得游戏产业在全世界的娱乐领域中逐步占据主流位置。手机游戏一方面因为手机平台自身所具有的便捷性让人们更加容易接受并喜爱,另一方面反过来也为手机扩充了其功能面,它缓冲着当今人们的紧张生活节奏,给一些枯燥时刻带来另样而欢快的享受。此次设计将使用Java及Android开发技术实现出一款基于Android平台并能在模拟器、安卓系统手机上运行的连连看游戏。1.2课题背景介绍1.2.1手机的应用市场发展现状随着3G(第三代移动技术)的普及、手机应用形式的日渐丰富以及智能化水平的不断提升,从便携性及随身性方面来考量,手机为用户带来的种种互动性体验已是电脑所不能比拟的了。 在Android、苹果等各智能机席卷手机市场的情势下,更多的应用和服务进入手机,手机游戏、客户端软件和微博等新应用都在大大提升着用户的手机娱乐体验。可以预见,手机互动娱乐体验有望超越电脑的时日已不远,手机将跻身互动娱乐的新中心。 基于Android平台的连连看游戏的开发与实现绪论在智能机的这些应用和服务中,手机游戏正发展为最受用户青睐、最常使用的应用之一,这一领域将有望超越传统游戏,带来游戏领域的一场暴雪。 目前,手机游戏虽仍以Symbian、BREM及JAVA为主流,但其增长趋势已大幅放缓。相反,Android和苹果游戏正处爆发增长之势。由3G门户近期来的运营数据显示,Android游戏的增势最为明显。 依据中国手机市场发展报告显示,手机游戏市场规模和游戏用户规模都增长较快。2012年第一季度,中国手机游戏市场规模已突破10.1亿元,环比增长12.2%,同期的中国手机游戏用户规模已达到了1.91亿,环比增长8.5%【1】。随着智能手机的普及、游戏平台的多选性及更富吸引力的游戏种类之增多,手机游戏用户规模保持着稳步增长之势。而在游戏用户性别结构方面,女性用户占比也在逐步上升,其由2011年第一季度的23.5%上升至2012年一季度的29.3%。鉴于移动游戏种类的增多和游戏内容之日渐趋于丰富、操作更简便的形势,男女用户占比将得到进一步拉近。尽管目前的手机游戏仍不能与传统大型网络游戏相抗衡,但手机游戏自身的便携性和移动性等优势为游戏开发商带来了更为广阔的市场发展空间。暴雪、网易和盛大等诸多传统网游巨头也已开始加紧向手机网游市场进军,以此可窥见未来手机游戏市场竞争之激烈性。随着新兴游戏产业链各环节的发力和用户认知度及关注度的提升,未来手机游戏的商业价值极为可观,对游戏厂商颇具诱惑力。1.2.2Android平台介绍Android是一种基于Linux内核的智能机平台上的操作系统,最初由AndyRubin开发,之后被谷歌公司收购并继续进行运营和开发。2007年11月,Google公司与84家软件开发商、硬件制造商及电信营运商一起组建了一个开放性的手机联盟来进行共同研发并逐步改良Android系统。随后Google公司发布了开放性的Android源代码,第一部Android智能手机也于2008年10月得以推出。在Android上市仅两年时间后,它便超过塞班系统而跃居全球手机市场第一的位置,在中国市场的占有率达到90%,并扩张到平板电脑等其它移动设备领域迅速发展。Android能称霸智能机平台系统领域,这与它的五大特性密不可分。这五大特性表现如下:(1)开放性:Android平台的最大优势应非其开放性莫属,这一部分自然也是源于其系统代码的开源性。因为其平台的开放性,无论哪个移动终端厂商都能如其所愿地加入到Android联盟中来。这样Android平台就能拥有丰富的开发者资源动力来快速推进这个崭新平台走向成熟化。另外,Android平台的开放性也有利于其积累来源于消费者和厂商的人气。免费而种类丰富的Android 基于Android平台的连连看游戏的开发与实现绪论软件资源吸引着广大消费者来尝试,而开放的平台所附带的更大竞争性也让消费者有可能以更低的价位购得心仪的智能手机,随着消费者规模的扩大,厂商也就自然能从中汲取更多的利益。(2)不受运营商的束缚:以往的手机应用总受到来着运营商的制约,这在欧美地区表现地尤为明显,例如能使用哪些功能、应接入哪个网络,这些几乎都必须受到运营商的控制【2】。而Android的出现,为用户能更加轻松地连接网络创造了可能性,来自于运营商的制约也明显地减少。随着移动通信技术2G(二代)至3G(三代)的普及、提升和完善,手机随意接入网络的现象已屡见不鲜了。(3)丰富的硬件选择:当电脑上的一些软件移植到另一台电脑上时就可能会出现一些兼容性问题,而这个问题对于Android平台的使用者来说将不复存在。鉴于Android的开放性特点,众多的Android厂商推出了新颖别致、功能多样的产品。然而这些产品功能上的差异,却不影响数据同步甚至杜绝了本可能存在的软件上的兼容问题。你只要事先成功申请到一个Google账户,当你想换一台新手机时,就可以重新选择同样使用Android系统作业的手机,并且能轻易将如电话簿等重要个人资料快速地移植到新手机上。(4)开发商不受任何限制:Android平台并没给第三方开发商附加林林总总的条框约束,它提供的是一个十分自由并且很宽泛的环境,这为各种精致而新颖的应用软件诞生创造了条件。但另一方面,暴力血腥、情色等方面的“灰色”程序也在肆无忌惮地扩展,如何解决好这个问题是Android面对的一个难题。(5)能无缝结合优秀的Google应用:Google经过十年发展,现已叱咤互联网,家喻户晓。从刚开始的搜索巨人到如今的全面性互联网渗透,Google实现的如搜索、地图和邮件等已经成为网络应用中技术娴熟并不可或缺的优秀服务,Android平台凭以被Google公司收购并运营开发的这层关系,将无缝结合这些优秀的Google应用服务,这不仅让Android开发起来更为便捷,也赋予Android可支援多种先进网路、先进的3D处理及绘图能力,从而开发出具有更好的互动体验的产品。1.2.3连连看游戏发展介绍QQ游戏、4399游戏网、智能手机、平板电脑……无论在哪你似乎都可以发现连连看游戏的身影。它的游戏规则很简单,只需将两个相同图案用3根以内的直线相连消除即可,老少皆宜;画面清新可爱,游戏节奏轻松欢快,广受小朋友及女性玩家的喜爱;由于得在规定时间内消除所有的图案,而每通过一个关卡系统给予的任务完成时间也将逐渐减少,这给具有挑战心理的玩家带来刺激感,颇具吸引力。从发展历程来看,这款游戏大致经历了桌面、在线、社交游戏三大阶段。 基于Android平台的连连看游戏的开发与实现绪论游戏连连看是最先来源于台湾的一款桌面小游戏,随后其一流入大陆便风靡一时,不断地吸引着众多程序员去开发各种新颖的“连连看”版本。这其中,由顾方设计的“阿达连连看”游戏,以其精良而独特的制作广受玩家青睐,这也促使其跻身“阿达系列软件”的核心产品行列,并于2004年获取到了国家版权局所授权的计算机软件著作权登记证书。随着Flash应用的盛起,游戏连连看步入了在线发展历程。网上涌现出大量的Flash版本连连看游戏,“果蔬连连看”、“水晶连连看”等都是这阶段的代表作品。其中“水晶连连看”还以其华丽的界面成功吸引了一大批女性玩家。2008年,随着多选性开放平台的兴起和社交网络的普及,“连连看”游戏迈入到了社交网络领域。将“连连看”游戏与个人空间相结合,这一大创新促使其被快速的传播,立即成为当时的一款热门社交游戏,其中以在Manyou开放平台上由开发者Jonevey推出的“宠物连连看”最为流行。从“连连看”游戏的诞生发展至今,Android也在不断汲取着各领域“连连看”游戏的精华,并将它们的特色予以融合,推出了Android平台上更为完美的“连连看”。其以Android作业终端本身的便捷性,迎合着手机应用市场的大好发展时机,深扎Android手机用户的心里,广受喜爱。1.3“连连看”游戏发展前景由手机应用市场发展研究认为,未来手机游戏的商业价值极为可观,手机小游戏则依然是一个能给游戏厂商创造巨大财富的领域,因此急需寻找一个合适的切入点。由艾媒咨询分析认为,选择投资金额要求不高却具有广泛发展空间的小游戏“连连看”成为了这个切入点角色的首选,其主要优势有下:(1)存在诸多有利的外部因素来促进小游戏“连连看”的行业发展据有关调查得知,大概有31.2%的玩家青睐益智类游戏,另有25.8%的玩家倾心于策略类游戏,那么综合了策略和益智这两大元素的“连连看”小游戏自然最受欢迎,加上其本身操作简单,老少皆宜,风格清新可爱,使得女性玩家亦对其喜爱有加。从“连连看”小游戏全体用户的结构来看,大专及以上学历者超过了总数的一半;而就收入方面,“连连看”小游戏的38.4%的用户收入超过2000元,这远远超出了普通小游戏用户只有23.5%能收入超过2000元的比例。艾媒咨询分析,就“连连看小游戏”的用户结构中高学历、高收入在游戏中的高占比判定,连连看小游戏拥有更为高端的用户属性,其消费潜力较普通游戏也更大,另外“连连看”小游戏的用户规模也在日益增长,这种可观的用户规模及高端的用户属性将为小游戏“连连看”的媒体 基于Android平台的连连看游戏的开发与实现绪论价值打下良好基础,另外,各领域“连连看”小游戏仍在不断成熟和发展中,这将进一步促使这款小游戏的媒体价值得以充分释放,并有望在未来获取更大的发展空间,不断提升其市场价值。(2)“连连看”小游戏行业正处迅速发展阶段拥有的上升空间巨大根据近几年“连连看”小游戏在中国的游戏行业发展调查得知,“连连看”小游戏在中国市场于2007年的规模1亿元发展到2008年的2.5亿元,2009年以高于30%的增长率超过4.1亿元,之后的3年里,随着各类智能机的普及和电子信息技术的快速发展,“连连看”小游戏得到了进一步的迅速发展。由于“连连看”小游戏的制作门槛低,各大中小型团队都能加入到对其进行研发的行列【3】。随着开发运营商与产品数量的急剧增加,整个“连连看”小游戏市场得以充分调动而显得异常活跃,从而形成了一个成倍增长的发展状态。小游戏“连连看”的最大优势在于不需要下载客户端,这样使其更方便地移动于各大移动终端设备中,例如手机、掌上电脑等,同时给上网受限的用户也带来了不小便利。而未来一旦政府实现了于一线城市建设广域网的计划,正如社交网络版的“连连看”能风靡一时一样,小游戏“连连看”也必将迎来新一轮的迅猛发展。综上所述,小游戏“连连看”作为一种投资小、回报快的行业,必将成为资本市场风投重点关注对象。其上升空间巨大,商业价值极为可观。1.4课题研究价值及意义现在的小游戏越来越受到各大消费者的欢迎,除了游戏操作简单而无需游戏注册购买道具等,很多游戏也成为了经典中的经典,连连看游戏作为这其中的一款经典,很好地缓冲了当今人们的紧张生活节奏,为一些枯燥时刻带来另样而欢快的享受。无论是QQ游戏、4399游戏网还是任意一个移动终端设备,小游戏“连连看”总是排在最受玩家欢迎的前5名。它的游戏规则很简单,只需将相同的两个图案用3根以内的直线相连消除即可,上手极易,老少皆宜;画面清新可爱,游戏节奏轻松欢快,广受小朋友及女性玩家的喜爱;由于得在规定时间内消除所有的图案,而每通过一个关卡系统给予的任务完成时间也将减少,这给具有挑战心理的玩家带来刺激感,颇具吸引力。其休闲,趣味,益智,已成为一款广受大众喜爱的经典游戏。完成这次课题的研究,不仅可以提升我对新领域知识的自学能力与实践应用能力,增加项目经验。同时也能深入获悉用户对手机游戏的功能需求,进一步领 基于Android平台的连连看游戏的开发与实现绪论会手机游戏应具有的易于学习、可中断性、基于订阅及丰富的社会交互性这几大特征。另者也很好地了解并参与了游戏开发的基本流程,进一步拓宽了自己的知识面。通过最终实现这个基于Android平台的“连连看”小游戏,对图像编程、Android开发技术也都有了更加深入的理解,这为今后的继续学习和工作奠定了良好的基础。1.5论文结构安排整篇论文一共分为六章,大致安排如下:第1章绪论。主要是介绍课题背景,“连连看”小游戏的发展前景,此次课题研究具有的价值与意义以及论文结构的安排。其中包括手机应用市场现状、Android平台简介、“连连看”游戏发展历程简介以及行业发展前景窥探,也深入说明了课题研究的价值和意义。为该系统后续的分析与设计提供了强大的背景支持与理论依据。第2章相关开发技术介绍。本章介绍了开发本系统所需要使用的技术,主要包括Java技术和Android技术。其中又详细给出了Java与Android的关系、Java简介、Java语言特性、Android架构简介、Android开发技术简介。第3章系统分析与设计。本章从操作、技术、经济、社会四大方面对系统的可行性进行了详细分析,并结合系统的需求分析初步设计了系统,其中还包括了系统的基本流程设计以及模块的划分与设计,并最终定位了可爱的系统风格。这些为下一章的系统实现打下了基础。第4章系统的实现。本章的主要内容为系统的实现,先介绍了开发环境的搭建,再介绍系统工程的创建并对创建好的系统中各组成部分做出了解释说明,继而深入诠释了主要功能的实现并给出了功能实现后的效果图,并于最后展示了系统运行的各主要界面图。第5章系统测试与性能。在对系统进行测试的过程中,发现了不少问题和缺陷,之后及时对其进行了修正。总体上,本次系统的设计与开发达到了预期目标,基本实现了系统设计时的各项需求,完成后的系统其性能也很安全稳定。这标志着本次基于Android平台的连连看游戏设计开发工作圆满完成。第6章总结与展望。对整篇论文进行回顾,予以总结,并作出对未来工作的展望。1.6本章小结第一章主要是介绍课题背景,“连连看”小游戏的发展前景,此次课题研究具有的价值与意义以及论文结构的安排。其中包括手机应用市场现状、Android 基于Android平台的连连看游戏的开发与实现绪论平台简介、“连连看”游戏发展历程简介以及行业发展前景窥探,也深入说明了课题研究的价值和意义,对整体的论文结构做出了安排。为该系统后续的分析与设计提供了强大的背景支持与理论依据。 基于Android平台的连连看游戏的开发与实现相关开发技术介绍第二章相关开发技术介绍2.1Java技术简介2.1.1Java与Android的关系Android是一个以LINUXKERNEL为底层的操作系统,但它的开发利用是基于Java语言的。将Android与Java相比较,会发现它们具有很多相当性:(1)相当的类/字节码格式Android应用程序是利用Java语言编写成的,它先生成.java文件,再使用JDK的javac工具进行编译从而产生标准的Java字节码即.class文件。这些文件最后再转化成专为Dalvik(Android平台的Java虚拟机)设计的.dex格式文件。.dex格式可以认为是种被设计的更加优化的.class格式,好比把一个GIF格式的图像转换成更高级而等效的PNG格式,尽管它们拥有着完全不同的字节流。(2)JavaAPIs与AndroidRuntime相当AndroidRuntime使用了一个相当大的JavaSEAPIs子集。这些来自于Harmony项目的APIs虽然都是全新的实现,但它们都是参考JavaSEAPIS发展而来。(3)Dalvik与JVM相当经相关人士尝试发现,Android可以支持一个不完整的(但规模相当大的)Java1.5类库子集。其大到可以让一个复杂的JRuby项目几乎不用做任何修改便能在Android平台上运行起来。由此得知,作为Android平台的Java虚拟机Dalvik与纯Java虚拟机JVM是如此的兼容,例如Android能完全支持Java风格的线程和并发,甚至已深入到了高级的java.util.concurrent包。2.1.2Java简介Java是一种跨平台的面向对象的高级程序设计语言,最早是由Sun公司(SunMicrosystemsInc.)于1995年5月推出,并作为Java程序设计语言和Java平台的总称【4】。按应用领域可将Java平台划分为3种类型:JavaSE,是Java各应用平台的基础,主要由Java语言、JDK、JRE和JVM四大部分构成;JavaEE,以JavaSE为基础,定义了一系列的协议、服务及API等,适用于开发多层式、分布式、以组件或WEB为基础的应用程序;JavaME,Java平台版本中最小的一个,目的是作为小型数字设备上开发及部署应用程序的一个平台,像手机、PDA 基于Android平台的连连看游戏的开发与实现相关开发技术介绍、股票机等类似的嵌入式系统或者消费型电子产品。由于Java拥有着各种丰富资源与各种活跃的论坛,来自各个领域的开发人员及大师们各自都对Java做出了贡献,促使Java在广大开发者的支持下发展至今。2.1.3Java语言特性作为一种高级程序开发语言,Java拥有着许多重要的特性,主要表现有下:(1)简单的Java语言在设计时参考了许多C/C++的语法与特性,使得学习过C/C++的开发人员可以在短时间内熟悉Java的使用。与此同时,Java又舍弃了C/C++中的一些较少使用的、难以掌握的、可能不安全的功能,如操作符重载、指针及多重继承等。(2)面向对象的Java语言是一种纯面向对象高级程序设计语言,它让您可以用面向对象的思考方式来设计并编写程序【5】。面向对象的好处在于您可以设计可重用的组件或直接接用别人已设计好的组件来开发出更具有弹性并更易维护的软件。Java语言是通过提供类、接口实现及继承等机制来体现出这种面向对象特色的。较C++只能对虚函数实现动态绑定,Java则是全面支持动态绑定。(3)网络的Java本身就是诞生于网络中,从最初的Applet、Socket、JSP/Servlet直到现在热门的WebService,这都标明Java在网络服务等相关领域有着突出的贡献。例如在B/S开发方面,Java程序语言就要远远优于C++程序语言。(4)解释的程序要在一个平台上运行,首先必须得编译成这个平台所能理解的原始机器语言,但事实上不同的平台所能理解的原始机器语言不尽相同。为了解决这个在不同平台间都能运行的问题,Java引入了JVM(能执行Java字节码文件的虚拟操作系统),当运行Java程序时,JIT(Java实时编译器)就会将字节码编译成目标平台所能理解的原始机器语言。(5)安全的C++动态分配的内存空间或创造的指针总是必须在不需要的时候由开发人员编写代码予以回收,否则可能会导致程序或系统崩溃。然而Java提供了垃圾回收机制,让开发人员不再需要担心对象资源的回收问题。另外,Java还设计了异常处理架构,这使得开发人员可以很好地掌握程序中各种突发的异常情况。(6)可移植的要让程序移植到另一个平台上运行不是一件容易的事,这需要考虑诸多因素,例如数据类型在不同平台上所占的内存长度就是一个问题,而Java 基于Android平台的连连看游戏的开发与实现相关开发技术介绍的数据类型在不同平台上所占的内存长度都是统一的,这是C/C++等没达到的。因而对于“一次编写,到处运行”的这种梦想,Java提供了更高的可能性。2.2Android技术简介2.2.1Android架构简介Android是一种专门针对移动设备的软件集,其操作系统采用了分层方式,从上到下依次分为APPLICATIONS(应用程序层)、APPLICATIONFRAMEWORK(应用程序框架层)、LIBRARIES&ANDROIDRUNTIME(函数库和Android运行时)和LINUXKERNEL(Linux内核层)【6】。如图2.1所示:图2.1Android系统分层结构示意图(1)APPLICATIONS。在Android平台上,已存在着一些关键的应用程序,如网页浏览器、邮件、日历、收发客户端程序短信等【7】。鉴于平台的开放性特点,更多富有特色且功能强大的Android应用程序正在被广大开发者共同努力参与研发中。(2)APPLICATIONFFRAMEWORK。应用程序框架已随Android一同安装,但开发人员仍可以根据自己的需要来使用组件扩展该框架。该框架中,最重要的部分主要包含有:在控制应用程序的生命周期的同时维护着一个公共的"后退栈"来供用户导航的活动管理器;内容提供者,用来提供一些如联系人信息之类的 基于Android平台的连连看游戏的开发与实现相关开发技术介绍需要在应用程序之间共享的数据;涉及非代码内容的资源管理器;让Android手机能随时获取目前所处的位置信息的位置管理器;通知用户如收到信息、临近约会时间等事件的通知管理器。(3)LIBRARIES(C/C++函数库)。Android本机库是由一套C/C++函数库构成的,它们服务于上层Android应用程序组件,并通过这些组件将功能传递给开发者使用【8】。这些函数库主要包括:浏览器引擎(采用的是Webkit库)、2D和3D图形库、SQL数据库(一些轻量级的SQLite数据库引擎)、媒体功能库以及界面管理器等。(4)AndroidRuntime(Android运行时)。该层主要包含了Dalvik虚拟机和Java核心库,它们起到了将Android程序的运行过程有效优化的作用。(5)LINUXKERNEL。Android操作系统是基于优化了的Linux内核之上的,在作为手机软硬件的连接层的同时,也让Android通过它完成进程管理、内存管理、网络以及其他操作系统服务工作。2.2.2Android开发技术简介要想快速掌握Android技术,开发出Android应用程序,首先得对其开发技术的基础知识有个大概的了解,而Android程序都是通过各种组件(API)开发出来的,现将其重要组件归纳如下:(1)当前活动程序Activity:这是Android开发中最常使用到的应用程序组件。凡是要通过窗口与用户进行互动交流的都离不开Activity。Activity具有生命周期,运行、暂停、停止等几个状态则贯穿于整个生命周期中,这些状态间的转换可通过调用一系列函数来完成,这些函数包括onCreate()、onRestart()、onStart()、onFreeze()、onResume()、onPause()、onDestory()、onStop()等【9】。如果想要开启一个新的activity,则可以调用startSubActivity(Intent,int)或startActivity(Intent),前者通常和函数onActivityResult(int,int,String,Bundle)联合着一起使用,这样可以通过函数返回结果传递给调用者想要的信息。(2)图像显示View:android.view.View是Android中用来描绘块状视图的基类,在块状区域内还可包含对图像事件的处理。View是所有Widgets的基类,它的子类可以用来显示文本、图像等内容。通常进行的View方法调用有:填充View,调用onDraw(Canvas);用XML文件生成View调用inflate();测量View的高度和宽度调用onMeasure(int,int);onLayout()函数可以完成View的布局;当View中有按键操作时调用onKeyDown(int,KeyEvent);当View得到或失去关注时调用函数onFocusChanged(boolean,int);要设置View 基于Android平台的连连看游戏的开发与实现相关开发技术介绍点击事件监听器调用setOnClilckListener()。(3)Intent:Intent主要用来解决Android各应用组件之间的通讯。它对应用中的某种操作进行抽象描述,包括操作的动作、该动作涉及到的数等,Android再根据这种描述寻找相应的组件,并将Intent传递给它,从而完成相关组件的调用【10】。Intent能加载activity,从而对不同activity起到桥梁的作用。它除了action、data两大重要属性外,还具有一些如category(类别)、type(数据类型)等附加属性。常用的Intent方法有:构造intent,intent();添加intent类型,addcategory();获取intent数据,getData();获取intent动作getAction()等。(4)ContentProvider:作为Android的数据存取与共享机制,其为Android应用程序提供了一些访问方法,主要包括:实现数据信息的查询的Query(Uri,String[],String,String[],String,String,String),实现数据更新的update(Uri,Contentvalues,String,String[]),给Contentprovider插入新数据的insert(Uri,Contentvalues),用来删除数据的delete(Uri,String,String[]),获取数据类型的函数Gettype(Uri)。其中,ContentProvider存储的数据类型由参数Uri标示,在调用方法时都需根据Uri来标识路径以确定要访问的ContentProvider【11】。(5)Service:Service作为后台服务,并不直接与用户交互,而是种在后台运行的Android应用程序组件。当前活动程序可以通过调用函数Context.bindService()实现与后台服务间的通信,也可以调用方法Context.StartService()来开启一项后台服务。2.3本章小结本章介绍了开发本系统所需要使用的技术,主要包括Java技术和Android技术。其中又详细给出了Java与Android的关系、Java简介、Java语言特性,Android架构简介、Android开发技术简介。 基于Android平台的连连看游戏的开发与实现系统分析与设计第三章系统分析与设计3.1可行性分析3.1.1操作可行性对于一个游戏来说,其操作可行性是它成功与否的关键,应作为游戏设计的首要考虑因素。在以往的许多著名游戏中,游戏操作可行性经常成为玩家讨论的焦点,以此可见,一款游戏的操作可行性直接关系着对玩家的吸引力。游戏时间应设计合理,其不能过长也不能过短。经过对用户的需求调查,最终决定将游戏时间的第一关设为100秒,之后每通过一个关卡,时间递减10秒。这不仅保证了游戏能正常完成,让玩家感受到游戏的可玩性;也合理设置出各个关卡的通关难度,在保证操作可行性的同时给玩家带来了挑战感。3.1.2技术可行性Android的开发利用是基于Java语言的,而JDK是Java程序进行开发时必需含有的开发包。在Android应用程序开发前需先搭建起合适的开发环境,在这些开发环境中作为基于Java的可扩展整合型平台的Eclipse则是个不错的选择。Eclipse不仅是款免费并且优秀的开源IDE,在安装了Google公司提供的Android平台开发插件ADT后即可充当Android开发平台。Android平台为开发人员提供了源码开放的SDK(软件开发包),其中包含有Android平台应用程序开发所必要的工具和各组件(API)。在这些插件的配合下,可以实现从企业级Java应用平滑过度到智能机终端Android游戏的开发。Eclipse还是很好的动画游戏制作软件。鉴于其具有面向对象编程的特点,大大提升了程序开发效率。而且Eclipse自带着一些常用的组件,这为我们的开发提供了很大的便利。综上所得,此次系统开发在技术上是可行的。3.1.3经济可行性首先,综合手机应用市场研究与“连连看”游戏行业发展前景的调查研究得知,“连连看”小游戏作为一种投资小、回报快的行业,必将成为资本市场风投重点关注对象,其经济价值尤为可观。另者,开发该款游戏所需的软件、硬件系统都很容易获得,使得开发成本很低。综上可知,该系统具有经济可行性。 基于Android平台的连连看游戏的开发与实现系统分析与设计3.1.4社会可行性“连连看”游戏规则很简单,上手极易,老少皆宜;画面清新可爱,游戏节奏轻松欢快,广受小朋友及女性玩家的喜爱;由于得在规定时间内消除所有的图案,而每通过一个关卡系统给予的任务完成时间也将减少,这给具有挑战心理的玩家带来刺激感,极富吸引力。由其受欢迎的人群范围之广泛外加其多样的地图能不断地给玩家带来新鲜感得知,其具有社会可行性。3.2系统需求分析3.2.1系统功能需求分析并设计系统功能架构如图3.1所示:图3.1系统功能架构图3.2.2游戏基本规则 基于Android平台的连连看游戏的开发与实现系统分析与设计在游戏地图上,每次选择两个相同的图案进行连接,若连接成功则消除它们。若在系统限制的时间内地图上所有的图案都得以消除,则玩家顺利通过此关,进入下一关。每通过一个关卡,系统限制时间都会递减10秒,直至所有的关卡结束。在游戏过程中,玩家可以使用道具帮助,它提供了3次地图刷新和3次图案自动消除提示机会。3.3系统设计3.3.1系统基本流程设计该系统实现的是一款基于Android平台的“连连看”游戏,玩家打开游戏,进入欢迎界面,显示标识开始游戏的图像按钮。当玩家点击标示开始游戏的图像按钮后,进入游戏界面。这时,若在系统规定的时间内消去所有图片则弹出成功对话框,否则弹出失败对话框,这两个对话框上都附带着菜单界面:若玩家点击该界面上标识进入下一关的图像按钮,则进入下一个关卡;若玩家点击该界面上的标识退出游戏的图像按钮,则退出连连看游戏程序;若玩家点击该界面上的标识重新本关游戏的图像按钮,则重新开始本关游戏。在游戏过程中,玩家还可以使用道具,一种是重新刷新地图,另一种则是系统帮助自动消除图案,每个道具都只能使用3次。3.3.2系统模块设计从总体出发,将该系统划分为四大模块:“菜单设计”,“界面设计”,“消息响应设计”和“算法设计”。如图3.2所示:图3.2系统总体设计 基于Android平台的连连看游戏的开发与实现系统分析与设计这四大模块又可以进一步划分如下:(1)菜单设计,可进一步划分为三个模块,分别是:“退出游戏”,“重新开始”,“进入下一关”,如图3.3所示:图3.3菜单设计(2)界面设计,可进一步划分为:“框架设计”,“进度条设计”和“地图设计”,如图3.4所示:图3.4界面设计(3)消息响应设计,可进一步划分为:“鼠标响应”,“绘图响应”和“时间响应”,如图3.5所示:图3.5消息响应设计(4 基于Android平台的连连看游戏的开发与实现系统分析与设计)算法设计,它可继续划分出两个模块:“画线设计”和“消除算法设计”,如图3.6所示:图3.6算法设计其中,消除算法设计是整个系统的核心算法,现对其分析如下:每次当用户选择两个图案时,如果这两个图案完全一样,并且这两个图案之间存在着不受其它图案阻拦的拐角少于3的路径,那么这两个图案可以被成功消除。给定任意具有相同图案的两个格子,我们需要先寻找出这两个格子之间能直角转弯最少的路径,如果这条最优路径的拐角数小于3,则这两个格子可以被成功消除。从其拐角数出发,具体又可分以下三种情况:1)零拐角。直接连接消除。2)一拐角。若1失败,则尝试在第一个格子的同行,第二个格子的同列找一个空格子,看这个空格子与两个目标格子能否零拐角连接;或在第二个格子的同行,第一个格子的同列找一个空格子,看这个空格子与两个目标格子能否零拐角连接。成功则可将两格子“一拐角”连接消除。3)两拐角。若2失败后,再进行如下尝试:在第一个格子的同行寻找一个空格子,看它是否能与目标格子2以“一拐角”方式连接消除;或在第一个格子的同列寻找一个空格子,看它是否能与目标格子2以“一拐角”方式连接消除。若成功则两个格子“两拐角”消除,若所有的尝试都失败,则说明这两个格子不能消除。3.4系统风格定位经过多次风格替换尝试,最终将该系统风格定位为可爱,其原因有下:可爱的风格能吸引到额外的幼龄玩家和女性玩家,这将大大拓宽了用户群范围和规模,提升该系统的实用性;另一方面,可爱的风格能缓解玩家的心理压力,为玩家快节奏的现代生活营造出一种轻松愉快的氛围。 基于Android平台的连连看游戏的开发与实现系统分析与设计3.5本章小结本章从操作、技术、经济、社会四大方面对系统的可行性进行了详细分析,并结合了系统的需求分析初步设计了系统,其中还包括了系统的基本流程设计以及模块的划分与设计,并最终定位了可爱的系统风格。这些为下一章的系统的实现打下了基础。 基于Android平台的连连看游戏的开发与实现系统分析与设计第四章系统的实现4.1开发环境的搭建4.1.1JDK的安装与环境变量配置(1)从http://java.sun.com/javase/downloads/index.jsp下载JDK1.6版本。(2)安装JDK(3)配置环境变量:右击“我的电脑”-->"高级"-->"环境变量"。在系统变量里新建JAVA_HOME变量,变量值设为JDK的安装路径;新建classpath变量,变量值为:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar,它代表的是java加载类路径,当生成的类在classpath中时才能被java命令识别,特别要注意在路径前加上“.”来表示当前路径;在已存在的path变量中添加变量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin,使得系统在任何路径下都能识别java、javac命令【12】。4.1.2AndroidSDK与Eclipse的安装与配置(1)从Android官网上下载适应Windows平台的android-sdk_r04-windows.zip和adt-bundle-windows-x86-20130219.zip,下载好后再对它们进行解压缩,得到相应文件夹。(2)在文件夹adt-bundle-windows-x86-20130219中,有一个eclipse.exe应用程序,由于这款Eclipse已经捆绑了ADT(AndroidDevelopmentTools)Plug-in,而ADT是种支持Android在Eclipse 基于Android平台的连连看游戏的开发与实现系统分析与设计上开发的工具,所以这款Eclipse将能直接支持Android应用程序的开发。(3)进入上述的Eclipse,点击菜单Window-->AndroidSDKManager,随后在弹出的窗口中选择需要的SDK版本进行安装。在此次系统开发中,选择了API8的SDK2.2版本进行安装。4.1.3Android虚拟机AVD的配置点击Eclipse菜单Window->AndroidVirtualDeviceManager,在弹出的窗口中点击“new”按钮,进入到创建的AVD配置窗口,鉴于安装好的是Target为API8的SDK2.2版本,填写各项如图4.1所示: 基于Android平台的连连看游戏的开发与实现系统分析与设计图4.1AVD配置图配置成功后,选中avd1并点击“start”按钮进行测试,由于AVD第一次启动时间较长,需耐心等待。测试成功后如图4.2所示: 基于Android平台的连连看游戏的开发与实现系统分析与设计图4.2AVD界面图4.2系统工程的创建进入开发环境后,创建一个建立在API8SDK2.2版本上的工程llk.Android。生成后如图4.3所示: 基于Android平台的连连看游戏的开发与实现系统分析与设计图4.3工程架构图对上述工程架构介绍如下:(1)src目录:主要是完成工程的Java代码编写。(2)gen目录:系统自动生成的源代码目录,其中含有非常重要的R.java文件,它所包含的每一种静态内部类都对应着相应的一种资源。(3)assets目录:data资源目录(4)bin目录:输出文件夹。其中包含的.apk文件可以移植到手机上安装运行。(5)res目录:资源文件夹。其中drawable中存放了工程需要的图像资料,raw中存放着音乐资料。其中src中含有两个包:com.jingjing.llk.android和 基于Android平台的连连看游戏的开发与实现系统分析与设计com.jingjing.llk.view,如图4.4所示:图4.4src内容图其中各类或接口的说明如下:(1)OnStateListener接口:给出了一个能监听游戏状态(胜利、失败、暂停等)的方法。(2)OnTimerListener接口:给出了一个能监听游戏剩余时间的方法。(3)OnToolsChangeListener接口:给出了两个方法,分别是监听刷新地图道具剩余使有次数和图案消除提示剩余次数。(4)MyDialog类:一个实现了点击事件监听接口的对话框Dialog的子类。它将在游戏耗时结束时调用,提示用户此关是成功还是失败,并给出菜单选择,让用户可以选择退出游戏、重新开始本关游戏或进入下一关卡。(5)SoundPlay类:为多个声音流能同时播放提供可能性。先将多种声效添加到此类中的哈希表存储着,当游戏遇到不同的事件时,会在背景音乐播放的同时播放出相对应的声效。(6)BoardView类:层模块中的界面显示类。实现了地图的设置等。(7)GameView类:BoardView的子类,添加了图案消除算法,并处理了游戏中的消息提示。(8)WelActivity:提供与用户进行交互的窗口,并负责对时间、游戏状态、道具使用状态进行监控与处理。 基于Android平台的连连看游戏的开发与实现系统分析与设计4.3主要功能的实现3.1拼图游戏主要界面由于游戏拼图项目开发周期非常短,因此将尽量利用Android现有界面控件进行大部分游戏界面的开发,尽量减少手动绘制界面的操作以实现快速开发的目的。详细需求中说到游戏拼图的设计包括10个功能界面,分别为游戏Logo、主菜单、游戏帮助、游戏设置、游戏选关、游戏随机初始化、进行游戏、游戏胜利、信息输入、行榜功能;除了界面,它还有3个对话框,分别为游戏关于对话框、退出游戏对话框以及二级菜单对话框。通过详细需求首先我们可以把游戏Logo、主菜单拿出来;然后为了让游戏功能清晰,我们把剩下的功能界面以及对话框分成6大模块,分别为游戏过程、积分排名、游戏设置、游戏帮助、游戏关于以及退出游戏,这6大功能模块可以通过主菜单界面进行跳转。通过功能模块的名字我们可以对功能界面以及对话框进行划分:1.游戏过程模块:它是游戏开始到结束整个过程,所以它根据整个游戏过程又可以分为三个阶段,分别是游戏前(选关界面),游戏中(游戏随机初始化界面、游戏界面、二级菜单对话框、游戏胜利界面),游戏后(信息输入界面);2.游戏帮助模块:游戏帮助界面;3.积分排名模块:排行榜功能界面;4.游戏设置模块:游戏设置界面;5.游戏关于模块:游戏关于对话框;6.退出游戏模块:退出游戏对话框。3.2拼图游戏主要功能根据功能进行分块后为减小项目内部的复杂关联,游戏拼图项目采用多Activity模式进行开发设计。它们分别是游戏Logo界面(LogoActivity)、主菜单界(MenuActivity)、游戏帮助(HelpActivity 基于Android平台的连连看游戏的开发与实现系统分析与设计)、游戏设置(OptionActivity)、选关界面(SelectGame)、游戏过程界面(GameActivity)、信息输入界面(InputName)以及排行榜功能界面(RankActivity)共8个主要功能界面。1.游戏Logo:点击游戏图标进入Logo界面,这个界面负责游戏Logo的显示。2.游戏主菜单:Logo界面展示完毕自动进入游戏主菜单界面,这个界面负责各个功能模块的跳转。3.游戏过程:点击开始游戏进入选关界面,这个界面负责选择图片以及难度等级;游戏随机打乱开始进行游戏,在游戏过程中可以随时退出游戏;在游戏的过程中,界面出现计时器记录你游戏所用的时间;游戏完成,如果用户打破记录则跳转至信息输入界面,输入你的名字并且点击确定按钮就会把你的名字和使用时间记录到游戏排行榜;之后会自动跳转到游戏选关界面。4.游戏排行榜功能:点击积分排行进入游戏排行榜功能界面,这个界面就是显示你原来游戏完成所用的时间,它按照从低到高,从简单到困难依次排序,按返回按键跳转回到游戏主菜单界面。5.游戏设置:点击游戏设置按钮进入游戏设置界面,在这个界面可以关闭或开启背景音乐以及清空排行榜信息,点击返回按钮或返回键跳转到游戏主菜单界面。6.游戏关于:点击游戏关于按钮查看游戏相关的信息。弹出对话框,介绍游戏的版权以及相关信息,点击返回按钮或返回键返回到游戏主菜单界面。7.游戏帮助:点击“游戏帮助”按钮,跳转到游戏帮助界面。为不熟悉游戏操作的用户提供游戏规则以及游戏系统说明,点击返回键可返回到游戏主菜单界面。8.退出游戏:点击退出游戏按钮直接弹出二次确认对话框,再次确认直接退出游戏。 基于Android平台的连连看游戏的开发与实现系统分析与设计4拼图游戏的设计思路4.1基本操作的流程图当前是从LogoActivity界面跳转到主菜单界面,在主界面菜单下显示游戏帮助、游戏排行、游戏选择、游戏退出、游戏关于和游戏设置按钮;在游戏界面由GameView组成,GameView是由格子组构成;在游戏排行界面可以跳转到任何一个界面,而且它本来就是从游戏结束界面,输入游戏者的信息后保存在数据库中,然后跳转到游戏排行界面;在游戏过程中和游戏完成时都有不同的音乐,音乐的音量及开关都在游戏设置中进行设置。图4.1Activity类的关系图 基于Android平台的连连看游戏的开发与实现系统分析与设计图4.2Music类与其他类的关系图图4.3Rank类与其他类的关系图 基于Android平台的连连看游戏的开发与实现系统分析与设计4.2开始动画并跳转到菜单页面点击游戏图标进入Logo界面,这时每张Logo图片会占满全屏并保持2秒时间切换3张Logo图片依次展示后游戏自动进入主菜单界面。游戏Logo部分只能一张图片显示2两秒后自动跳到下张图片,所以做成一个帧动画,两秒跳过一震,并在logview中启动动画,当动画结束后跳转到菜单界面。其实在logo界面的切换中是利用的帧动画,通过总的时间然后自动跳转到菜单界面。通过对菜单界面的布局让其显示成有规律的界面,并对界面的按钮进行了监听事件,实现按钮的点击事件,达到需要功能的目的。如图4.3所示 基于Android平台的连连看游戏的开发与实现系统分析与设计图4.4游戏菜单界面主要代码过程:PublicclassMenuActivityextendsActivityimplementsOnClickListener{//初始化一个Activity集合publicstaticArrayList
此文档下载收益归作者所有