




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)任务书毕业设计(论文)题目基于ANDROID的联系人擂台战的设计与实现毕业设计(论文)要求及原始数据(资料)1综述国内外ANDROID应用的研究现状;2熟悉ANDROID平台的功能特征及应用程序架构;3理解ANDROID应用程序的设计思想,在充分调研的基础上了解用户的需求;4设计并能实现应用程序的基本功能,有一定实用价值;5开发的应用程序应尽可能界面友好,操作方面,功能较强;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容1综述当前移动市场格局和ANDROID的发展背景;2了解ANDROID平台的系统构架和开发所需的相关技术;3熟练应用并搭载ANDROID的开发环境;4分析和规划APP的模块分类和功能实现;5着手设计该应用的UI交互界面;6编程实现该应用程序的系统模块的功能和设计;7根据设计,测试和完善系统功能,解决问题。8完成应用程序的设计开发,撰写及完善,整理论文稿。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。基于ANDROID的联系人擂台战的设计与实现摘要近年来,随着移动互联网和电子信息技术的迅猛发展,使用ANDROID技术开发的手机游戏受到越来越多人的青睐。手机游戏市场亦得到了很大的发展。本文通过对ANDROID应用开发的初步研究,设计出了一款基于ANDROID平台的联系人擂台战小游戏。在对系统进行详细需求分析的基础上,确定了系统的基本功能要求,对游戏的菜单界面、布局算法、系统数据获取、数据库操作进行了设计,最终实现了一款风格清新、娱乐体验丰富的手机联系人擂台战小游戏。本文介绍了实现游戏的相关理论基础、运行平台和实现技术,重点研究了SQLITE数据库的技术特点及游戏数据的存取,让本游戏的大量数据更易整合,提高数据的存取效率,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最后,论文对游戏的各个模块进行了功能和性能测试。关键词ANDROID;游戏;联系人;SQLITERESEARCHANDIMPLEMENTATIONOFTHECONTACTRINGWARBASEDONANDROIDABSTRACTINRECENTYEARS,WITHTHERAPIDDEVELOPMENTOFMOBILEINTERNETANDELECTRONICINFORMATIONTECHNOLOGY,USETHEANDROIDTECHNOLOGYDEVELOPMENTOFMOBILEGAMESFAVOREDBYMOREANDMOREPEOPLEMOBILEGAMEMARKETALSOGOTAGREATDEVELOPMENTTHISARTICLETHROUGHTOTHEPRELIMINARYRESEARCHONTHEANDROIDAPPLICATIONDEVELOPMENT,HASDEVISEDACONTACTCHALLENGEWARGAMEBASEDONANDROIDPLATFORMINTHESYSTEMINDETAIL,ONTHEBASISOFDEMANDANALYSIS,TODETERMINETHEBASICFUNCTIONSOFTHESYSTEMREQUIREMENTS,TOTHEGAMEMENUINTERFACE,LAYOUTALGORITHM,DATAACQUISITIONSYSTEM,DESIGNINGDATABASEOPERATIONS,ANDFINALLYACHIEVEDASTYLEISPUREANDFRESHANDRICHENTERTAINMENTEXPERIENCEOFMOBILEPHONECONTACTSCHALLENGEWARGAMETHISPAPERINTRODUCESTHETHEORETICALBASIS,RELATIVETOTHEIMPLEMENTATIONOFTHEGAMEPLATFORMANDIMPLEMENTATIONTECHNOLOGY,FOCUSESONTHETECHNICALCHARACTERISTICSOFSQLITEDATABASEANDGAMEDATAACCESS,MAKETHISGAMEALOTOFDATAEASIERINTEGRATION,IMPROVETHEEFFICIENCYOFDATAACCESS,ANDREASONABLELAYOUTOFTHEGAMEINTERFACE,MAKETHEGAMEMOREBEAUTIFULANDHUMANIZEDINTERFACE,REALIZETHEBASICFUNCTIONOFTHEGAME,FINALLY,THEPAPERONTHEGAMEOFTHEFUNCTIONSOFTHEVARIOUSMODULESANDPERFORMANCETESTINGKEYWORDSGAMES;ANDROID;CONTACTSQLITE目录1绪论711引言712课题背景介绍7121手机的应用市场发展现状7122ANDROID平台介绍813课题研究价值及意义814论文结构安排92相关技术介绍1021ANDROID系统架构1022ANDROID特性1123ANDROID开发环境搭建1224ANDROIDSQLITE数据库简介13241关系型数据库SQLITE13242SQLITE数据库特征14243SQLITE数据库扩展类15244SQLITE数据库操作163流程介绍与概要设计2031游戏流程介绍2032可行性分析20321操作可行性20322技术可行性21323社会可行性2133系统概要设计21331界面布局模块22332游戏角色模块22333战斗文案模块23334游戏排行模块23335游戏设置模块23336游戏实现模块2334系统风格定位2435小结244系统详细设计与实现2541系统工程的创建2542界面UI设计26421主要界面布局26422游戏界面布局2743游戏功能实现28431联系人获取28432角色属性赋值29433战斗文案分类和显示30434战斗结果判断31435战绩排行33436背景音乐设置3444本章小结365系统测试3751测试环境介绍3752功能模块测试3753出现的错误及解决方案4154系统性能分析4255本章小结42总结43致谢44参考文献45外文原文46中文翻译521绪论11引言在手机应用市场和移动互联网迅猛发展的形势下,作为智能手机平台而基于LINUX内核的操作系统ANDROID于2007年11月5日应运而生。在谷歌公司的运营开发下,并由2011年初数据显示,操作系统ANDROID虽仅正式上市两年却已跃居到全球最受人们欢迎的智能手机平台地位。鉴于ANDROID的开放性好、硬件选择丰富、不受运营商的束缚、开发商不受任何限制、能无缝结合优秀的GOOGLE应用这五大优势,当今的ANDROID不仅在手机市场上叱咤风云,还急速扩张到平板电脑市场。目前,全球手机用户数已超过了PC机用户数,其中智能手机的比例越来越高。智能手机是指像电脑一样可以通过下载、安装软件来拓展基本功能的手机,一般具有智能手机操作系统。相较于非智能手机,它功能更强,处理速度更快。基于LINUX的ANDROID手机操作系统,由于具有开源、免费的特性,迅速得到广大爱好者及厂商的支持。目前,移动应用软件中的手机游戏开发是一项非常热门的技术。游戏一直以来就是人们在休闲娱乐时的一项不错选择,它具有强大的吸引力,能给玩家带来挑战、刺激、新鲜、成就感等多种现实生活中欠缺而只能在虚拟世界才能感受到的东西。游戏的这些独特魅力,并伴着现代电子信息技术的巨大推进作用,使得游戏产业在全世界的娱乐领域中逐步占据主流位置。手机游戏一方面因为手机平台自身所具有的便捷性让人们更加容易接受并喜爱,另一方面反过来也为手机扩充了其功能面,它缓冲着当今人们的紧张生活节奏,给一些枯燥时刻带来另样而欢快的享受。此次设计将使用JAVA及ANDROID开发技术实现出一款基于ANDROID平台并能在模拟器、安卓系统手机上运行的联系人擂台战游戏。12课题背景介绍121手机的应用市场发展现状目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有SYMBIAN,IPHONE,WINDOWSPHONE以及当下正在逐步兴起的ANDROID。目前为止国内已经有很多ANDROID系统的用户。截止2010年第二季度ANDROID系统的国内市场占有率已经过10,在西欧以及北美智能手机市场占有率也在20左右。由此可见ANDROID和手机应用市场正处于起步阶段,市场和消费者需要个接受的过程,众多开发者也都在积极探索盈利31模式。ANDROID开发者实现盈利主要依赖两方面因素,一是全球ANDROID手机终端的爆发,另外就是海外付费应用程序的模式逐渐形成。目前ANDROID应用开发个人或团体虽未取得规模盈利,但也开始逐渐向盈利模式转移,获得不错收益。图12是中国移动应用软件超市2010年的统计数据,消费者下载量最高的依然是应用开发,其次便是游戏开发,占据39的下载量,而传统的增值业务则只占5,在移动互联网时代,开发者纷纷逃离营运商的束缚,转向利润较为丰厚的应用程序和游戏开发。由此图也可以看出手机游戏软件在消费者中的受欢迎程度,如果想在未来手机应用程序开发中实现规模则需要加大手机游戏方面的开发力度。122ANDROID平台介绍ANDROID是一种基于LINUX内核的智能机平台上的操作系统,最初由ANDYRUBIN开发,之后被谷歌公司收购并继续进行运营和开发。2007年11月,GOOGLE公司与84家软件开发商、硬件制造商及电信营运商一起组建了一个开放性的手机联盟来进行共同研发并逐步改良ANDROID系统。随后GOOGLE公司发布了开放性的ANDROID源代码,第一部ANDROID智能手机也于2008年10月得以推出。在ANDROID上市仅两年时间后,它便超过塞班系统而跃居全球手机市场第一的位置,在中国市场的占有率达到90,并扩张到平板电脑等其它移动设备领域迅速发展。ANDROID平台因为开放性使得这个平台具有非常好的发展前景。由于ANDROID构建在开源代码的框架之上,并且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以方便地扩展到ANDROID平台上来,利用它独特的功能来改进现有产品或者开发其他新颖产品。13课题研究价值及意义ANDROID软件在一两年的时间内已经迅速发展,在各类型应用系统中都有令用户满意的成果,本课题研究的就是基于此背景下ANDROID手机的一款小游戏。联系人擂台战的游戏是对手机联系人的恶搞小游戏,一方面很好地缓冲了当今人们的紧张生活节奏,为一些枯燥时刻带来另样而欢快的享受。另一方面通过联系人对战游戏发现通讯录中久未联系的朋友或亲人,增进感情。通过该游戏的设计,将自己学到的JAVA,ANDROID方面的理论知识应用于实践,提高自己的动手能力。在设计的过程中,不断的修补知识方面的漏洞,加深自己对程序设计的理解,提升我对新领域知识的自学能力与实践应用能力,增加项目经验。同时也能深入获悉用户对手机游戏的功能需求,进一步领会手机游戏应具有的易于学习、可中断性、基于订阅及丰富的社会交互性这几大特征。另者也很好地了解并参与了游戏开发的基本流程,进一步拓宽了自己的知识面。为将来的继续学习和从事软件开发事业奠定了良好的基础。14论文结构安排论文从最初构思到分析实践,结合了ANDROID开发资料,进行了一个联系人对战游戏的设计制作,其中,具体介绍游戏的制作步骤,包括一系列代码的编写和内部结构的链接,论文分为六个部分,安排如下1绪论。主要是介绍课题背景,此次课题研究具有的价值与意义以及论文结构的安排。其中包括手机应用市场现状、ANDROID平台简介,也深入说明了课题研究的价值和意义。为该系统后续的分析与设计提供了强大的背景支持与理论依据。2相关开发技术介绍。本章介绍了ANDROID的系统架构和ANDROID的特性、以及ANDROID开发环境的搭建流程和注意事项还有应用开发中主要用到的SQLITE数据库的介绍和使用方法。3流程介绍与概要设计。本章结合系统的需求分析初步设计了系统,其中还包括了系统的基本流程设计以及模块的划分与设计,并详细说明了游戏规则,定位了游戏的系统风格。这些为下一章的系统实现打下了基础。4系统详细设计与实现。本章的主要内容为系统的实现,先介绍了开发环境的搭建,再介绍系统工程的创建并对创建好的系统中各组成部分做出了解释说明,继而深入诠释了主要功能的实现并给出了功能实现后的效果图,并于最后展示了系统运行的各主要界面图。5系统测试与性能分析。在对系统进行测试的过程中,发现了不少问题和缺陷,之后及时对其进行了修正。总体上,本次系统的设计与开发达到了预期目标,基本实现了系统设计时的各项需求,完成后的系统其性能也很安全稳定。这标志着本次基于ANDROID平台的联系人擂台战游戏设计开发工作圆满完成。6总结。对整篇论文进行回顾,予以总结,并作出对未来工作的展望。2相关技术介绍21ANDROID系统架构ANDROID的系统架构和其操作系统一样,采用了分层的架构。ANDROID分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和LINUX核心层。(1)APPLICATIONS(应用程序层)。在ANDROID平台上,已存在着一些关键的应用程序,如网页浏览器、邮件、日历、收发客户端程序短信等。鉴于平台的开放性特点,更多富有特色且功能强大的ANDROID应用程序正在被广大开发者共同努力参与研发中。开发者可以利用JAVA语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。(2)APPLICATIONFFRAMEWORK(应用程序框架层)。该层是ANDROID应用开发的基础,开发人员大部分情况是在和它打交道。该框架中,最重要的部分主要包含有在控制应用程序的生命周期的同时维护着一个公共的“后退栈“来供用户导航的活动管理器;内容提供者,用来提供一些如联系人信息之类的需要在应用程序之间共享的数据;涉及非代码内容的资源管理器;让ANDROID手机能随时获取目前所处的位置信息的位置管理器;通知用户如收到信息、临近约会时间等事件的通知管理器等,除此之外还有窗口管理器、视图系统、包管理器、电话管理器和XMPP服务等部分。应用程序框架层包括在ANDROID平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。(3)LIBRARIES(C/C函数库)。ANDROID本机库是由一套C/C函数库构成的,它们服务于上层ANDROID应用程序组件,并通过这些组件将功能传递给开发者使用。这些函数库主要包括浏览器引擎(采用的是WEBKIT库)、2D和3D图形库、SQL数据库(一些轻量级的SQLITE数据库引擎)、媒体功能库以及界面管理器等。(4)ANDROIDRUNTIME(ANDROID运行时)。ANDROID运行时包括核心库和DALVIK虚拟机,前者既兼容了大多数JAVA语言所需要调用的功能函数,又包括了ANDROID的核心库,比如ANDROIDOS、ANDROIDNET、ANDROIDMEDIA等等。后者是一种基于寄存器的JAVA虚拟机,DALVIK虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。(5)LINUXKERNEL(LINUX内核层)。ANDROID操作系统是基于优化了的LINUX内核之上的,建立在LINUX26之上。LINUX内核提供了安全性,内存管理,进程管理,网络协议栈和驱动模型等核心系统服务。除此之外,LINUX内核也是系统硬件和软件叠层之间的抽象层。22ANDROID特性ANDROID系统是工作于智能手机之上的操作系统,处处体现了与手机相关的特性。由于手机硬件配置的关系ANDROID系统与PC机上的操作系统有着很大的差异。只有在充分了解ANDROID系统特性才能开发出适合手机运用的软件。以下为ANDROID的主要特性1应用程序框架支持组件的重用与替换。这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。2DALVIK虚拟机专门为移动设备进行了优化。ANDROID应用程序将由JAVA编写、编译的类文件通过DX工具转换成一种后缀名为DEX的文件来执行。DALVIK虚拟机是基于寄存器的,相对于JAVA虚拟机速度要快很多。3内部集成浏览器基于开源的WEBKIT引擎。有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。4优化的图形库包括2D和3D图形库,3D图形库基于OPENGLES10。强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。5SQLITE用作结构化的数据存储。6多媒体支持包括常见的音频、视频和静态印象文件格式如MPEG4、H264、MP3、AAC、AMR、JGP、PNG、GIF。7GSM电话(依赖于硬件)。8蓝牙(BLUETOOTH)、EDGE、3G、WIFI(依赖于硬件)。9照相机、GPS、指南针和加速度计(依赖于硬件)。10丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和ECLIPSE集成的开发环境插件。GOOGLE提供了ANDROID开发包SDK,其中包含了大量的类库和开发工具,并且针对ECLIPSE的可视化开发插件ADT。23ANDROID开发环境搭建为了在PC主机上得到ANDROID的开发环境,我们选择在WINDOWS操作系统中进行对ANDROID开发环境的搭建,具体步骤如下1JDK安装首先下载JDK,按照提示安装成功后,最重要的是进行环境变量的配置,步骤如下我的电脑属性高级环境变量系统变量中添加以下环境变量JAVA_HOME值为CPROGRAMFILESJAVAJDK16020(安装JDK的目录)CLASSPATH值为;JAVA_HOMELIBTOOLSJAR;JAVA_HOMELIBDTJAR;JAVA_HOMEBIN;PATH值添加CPROGRAMFILESJAVAJDK16020BIN;2ECLIPSE安装可下载一个绿色版的ECLIPSE,无需安装,和安装版一样都能为ANDROID开发提供功能。3ANDROIDSDK安装(1)在ANDROIDDEVELOPERS下载ANDROIDSDKR07WINDOWSZIP,下载完成后解压到任意路径。(2)在ANDROIDDEVELOPERS下载ANDROIDSDKR07WINDOWSZIP,下载完成后解压到任意路径。(3)运行SDKSETUPEXE,点击AVAILABLEPACKAGES。如果没有出现可安装的包,请点击SETTINGS,选中MISC中的“FORCEHTTPS/“这项,再点击AVAILABLEPACKAGES。(4)选择希望安装的SDK及其文档或者其它包,点击INSTALLATIONSELECTED、ACCEPTALL、INSTALLACCEPTED,开始下载安装所选包。在用户变量中新建PATH值为ANDROIDSDK中的TOOLS绝对路径。4ADT安装(1)打开ECLIPSEIDE,进入菜单中的“HELP“INSTALLNEWSOFTWARE“(2)点击ADD按钮,弹出对话框要求输入NAME和LOCATIONNAME自己随便取,LOCATION输入HTTP/DLSSLGOOGLECOM/ANDROID/ECLIPSE。如下图所示(3)确定返回后,在WORKWITH后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有DEVELOPERTOOLS,展开它会有ANDROIDDDMS和ANDROIDDEVELOPMENTTOOL,勾选他们。然后就是按提示一步一步NEXT。(4)完成之后,选择WINDOWPREFERENCES在左边的面板选择ANDROID,然后在右侧点击BROWSE并选中SDK路径,本机为DANDROIDDEVELOPANDROIDSDKWINDOWS(5)点击APPLY、OK。配置完成。5创建AVD为使ANDROID应用程序可以在模拟器上运行,必须创建AVD。1在ECLIPSE中。选择WINDOWSANDROIDSDKANDAVDMANAGER2点击左侧面板的VIRTUALDEVICES,再右侧点击NEW3填入NAME,选择TARGET的API,SDCARD大小任意,SKIN随便选,HARDWARE目前保持默认值4点击CREATEAVD即可完成创建AVD24ANDROIDSQLITE数据库简介241关系型数据库SQLITE每个应用程序都要使用数据,ANDROID应用程序也不例外,ANDROID使用开源的、与操作系统无关的SQL数据库SQLITE。SQLITE第一个ALPHA版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLITE已经被多种软件和产品使用,MOZILLAFIREFOX就是使用SQLITE来存储配置数据的,ANDROID和IPHONE都是使用SQLITE来存储数据的。SQLITE体系结构图如下图21SQLITE体系结构图编译器包括TOKENIZER(词法分析器)、PARSER(语法分析器)、CODEGENERATOR(代码产生器)。他们协同处理文本形式的结构化查询语句。后端由BTREE,PAGER,OSINTERFACE组成。BTREE的职责是负责排序,维护多个数据库页之间错综复杂的关系,将页面组织成树状结构,页面就是树的叶子。PAGER负责传输,根据BTREE的请求从磁盘读取页面或者写入页面。公共服务中有各种实用的功能比如内存分配、字符串比较,UNICODE转换等。242SQLITE数据库特征SQLITE数据库是DRICHARDHIPP用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB。它具有如下特征1、轻量级SQLITE和CS模式的数据库软件不同,它是一个非常轻量级自包含LIGHTWEIGHTANDSELFCONTAINED的DBMS,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。它可移植性好,很容易使用,使用SQLITE一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也相当小,高效而且可靠。2、独立性SQLITE一个非常流行的嵌入式数据库,核心引擎本身不依赖第三方软件,使用它也不需要“安装”,SQLITE嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。这样的好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。3、隔离性SQLITE数据库中的所有信息(比如表、视图、触发器)都包含在一个文件内,方便管理和维护。4、跨平台SQLITE数据库支持大部分操作系统,除了我们在电脑上使用的操作系统之外,很多手机操作系统同样可以运行,比如ANDROID、WINDOWSMOBILE、SYMBIAN、PALM等。5、多语言接口SQLITE数据库支持很多语言编程接口,比如CC、JAVA、PYTHON、DOTNET、RUBY、PERL等,得到更多开发者的喜爱。6、安全性SQLITE数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。243SQLITE数据库扩展类1扩展SQLITEOPENHELPERANDROID不自动提供数据库。在ANDROID应用程序中使用SQLITE,必须自己创建数据库,然后创建表、索引,填充数据。ANDROID提供了SQLITEOPENHELPER帮助你创建一个数据库,你只要继承SQLITEOPENHELPER类,就可以轻松的创建数据库。SQLITEOPENHELPER类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLITEOPENHELPER的子类,至少需要实现三个方法构造函数,调用父类SQLITEOPENHELPER的构造函数ONCREATE()方法;/TODO创建数据库后,对数据库的操作ONUPGRAGE方法。/TODO更改数据库版本的操作当你完成了对数据库的操作(例如你的ACTIVITY已经关闭),需要调用SQLITEDATABASE的CLOSE方法来释放掉数据库连接。操作数据库的最佳实践是创建一个辅助类,例如联系人模块CLASSCONTACTSDATABASEHELPEREXTENDSSQLITEOPENHELPER2CURSOR类ANDROID使用CURSOR类返回一个需要的值,CURSOR作为一个指针从数据库查询返回结果集,使用CURSOR允许ANDROID更有效地管理它们需要的行和列,你使用CONTENTVALUES对象存储键/值对,它的PUT方法允许你插入不同数据类型的键值。3数据类型SQLITE和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在CREATETABLE语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLITE将检查它的类型。如果该类型与关联的列不匹配,则SQLITE会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(STRING)放入INTEGER列。SQLITE称这为“弱类型”(MANIFESTTYPING)。244SQLITE数据库操作1创建和打开数据库在ANDROID中创建和打开一个数据库都可以使用OPENORCREATEDATABASE方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库创建成功则返回一个SQLITEDATEBASE对象,否则抛出异常FILENOTFOUNDEXCEPTION。打开或者创建PATH文件所代表的SQLITE数据库OPENORCREATEDATABASESTRINGPATH,SQLITEDATABASECURSORFACTORY打开或者创建FILE文件所代表的SQLITE数据库OPENORCREATEDATABASEFILEFILE,SQLITEDATABASECURSORFACTORY2创建表通过EXECSQL方法来执行一条SQL语句。/定义建表语句STRINGSQL“CREATETABLE表名(列名,列名,)“/执行建表语句DBEXECSQLSQL创建表的时候总要确定一个主键,这个字段是64位整型,别名_ROWID。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_ROWID会被回收),所以要唯一严格增长的自动主键必须加入关键字AUTOINCREMENT。3删除表MSQLITEDATABASE“DROPTABLE表名“4修改数据1插入记录SQLITEDATABASE的INSERT方法的签名为LONGINSERT(STRINGTABLE,STRINGNULLCOLUMNHACK,CONTENTVALUESVALUES)。方法的参数说明如下TABLE想插入数据的表名。NULLCOLUMNHACK代表强行插入NULL值的数据列的列名。当VALUES参数为NULL或不包含任何KEYVALUE对时该参数有效。VALUES代表一行记录的数据。INSERT方法要求把数据都打包到CONTENTVALUES中,CONTENTVALUES其实就是一个MAP,KEY值是字段名称,VALUE值是字段的值。它提供了PUT(STRINGKEY,XXXVALUE)(其中KEY为数据列的列名)方法用于存入数据,GETASXXX(STRINGKEY)用于取出数据。通过CONTENTVALUES的PUT方法就可以把数据放到CONTENTVALUES对象中,然后插入到表中去。具体实现如下CONTENTVALUESVALUESNEWCONTENTVALUESVALUESPUTTABLE_NUM,1VALUESPUTTABLE_DATA,“测试数据库数据“DBINSERT表名,NULL,VALUES不管第三个参数是否包含数据,执行INSERT()方法总会添加一条记录,如果第三参数为空,会添加一条除主键之外其他字段值都为NULL的记录。/同样可以使用EXECSQL方法来执行一条“插入“的SQL语句STRINGSQL“INSERTINTO表名(列名,)VALUES(值,)“DBEXECSQLSQL(2)更新记录SQLITEDATABASE的UPDATE方法的签名为UPDATE(STRINGTABLE,CONTENTVALUESVALUES,STRINGWHERECLAUSE,STRINGWHEREARGS)。方法的参数说明如下TABLE想更新数据的表名。VALUES代表想要更新的数据。WHERECLAUSE满足该WHERECLAUSE子句的记录将会被更新。WHEREARGS用于为WHERECLAUSE子句传入参数。该方法返回受此UPDATE语句影响的记录的条数。具体实现如下CONTENTVALUESVALUESNEWCONTENTVALUESVALUESPUTTABLE_NUM,3VALUESPUTTABLE_DATA,“修改后数据“DBUPDATE表名,VALUES,“NUM“ROWID,NULL/同样可以使用EXECSQL方法来执行一条“更新”的SQL语句STRINGSQL“UPDATE表名SET列名XXXWHEREXXXDBEXECSQLSQLUPDATE表名SET列名XXXWHERE条件(3)删除记录SQLITEDATABASE的DELETE方法的签名为DELETE(STRINGTABLE,STRINGWHERECLAUSE,STRINGWHEREARGS)。方法的参数说明如下TABLE想删除数据的表名。WHERECLAUSE满足该WHERECLAUSE子句的记录将会被删除。WHEREARGS用于为WHERECLAUSE子句传入参数。该方法返回受此DELETE语句影响的记录的条数。具体实现方法如下/要删除数据可以使用DELETE方法MSQLITEDATABASEDELETE表名,“WHERE_ID“0,NULL/也可以通过EXECSQL方法执行SQL语句删除数据MSQLITEDATABASEEXECSQL“DELETEFROM表名WHERE条件“4查询数据SQLITEDATABASE的QUERY方法的签名为CURSORQUERY(BOOLEANDISTINCT,STRINGTABLE,STRINGCOLUMNS,STRINGWHERECLAUSE,STRINGWHEREARGS,STRINGGROUPBY,STRINGHAVING,STRINGORDERBY,STRINGLIMIT)。方法的参数说明如下DISTINCT指定是否去除重复记录。TABLE执行查询数据的表名。COLUMNS要查询出来的列名。相当于SELECT语句SELECT关键字后面的部分。WHERECLAUSE查询条件子句,相当于SELECT语句WHERE关键字后面的部分,在条件子句中允许使用占位符“”。WHEREARGS用于为WHERECLAUSE子句中占位符传入参数值,值在数组中多个位置与占位符在语句中的位置必须一致,否则就会有异常。GROUPBY用于控制分组。相当于SELECT语句GROUPBY关键字后面的部分。HAVING用于对分组进行过滤。相当于SELECT语句HAVING关键字后面的部分。ORDERBY用于对记录进行排序。相当于SELECT语句ORDERBY关键字后面的部分。LIMIT用于进行分页,相当于SELECT语句LIMIT关键字后面的部分。该方法返回CURSOR对象。当应用程序需要进行条件不确定的查询时,使用QUERY方法可以避免手动拼接SQL语句。具体实现方法用案例给出,如下所示/要查询PERSON表中人名以“张”开头的记录CURSORCURSORDBQUERY“PERSON”,NEWSTRING“_ID,NAME,AGE”,“NAMELIKE”,NEWSTRING“张”,NULL,NULL,“PERSONIDDESC”,“5,10”;/处理结果集CURSORCLOSE();综上所述,使用SQLITEDATABASE进行数据库操作的步骤如下1获取SQLITEDATABASE对象,他代表了与数据库的连接。2调用SQLITEDATABASE的方法来执行SQL语句。3操作SQL语句的执行结果,比如用SIMPLECURSORADAPTER封装CURSOR。4关闭SQLITEDATABASE,回收资源。3流程介绍与概要设计31游戏流程介绍根据联系人对战游戏的游戏规则,本设计拟出游戏的大致流程如图31所示图31联系人对战游戏流程图32可行性分析321操作可行性对于一个游戏来说,其操作可行性是它成功与否的关键,应作为游戏设计的首要考虑因素。在以往的许多著名游戏中,游戏操作可行性经常成为玩家讨论的焦点,以此可见,一款游戏的操作可行性直接关系着对玩家的吸引力。游戏操作方法应设计合理。操作方法符合用户的操作习惯,简单直观。并且在进入游戏以及点击按钮时通过弹出框进行游戏操作提示,这不仅保证了游戏能顺利进行,让玩家感受到游戏的可玩性。322技术可行性ANDROID的开发利用是基于JAVA语言的,而JDK是JAVA程序进行开发时必需含有的开发包。在ANDROID应用程序开发前需先搭建起合适的开发环境,在这些开发环境中作为基于JAVA的可扩展整合型平台的ECLIPSE则是个不错的选择。ECLIPSE不仅是款免费并且优秀的开源IDE,在安装了GOOGLE公司提供的ANDROID平台开发插件ADT后即可充当ANDROID开发平台。ANDROID平台为开发人员提供了源码开放的SDK(软件开发包),其中包含有ANDROID平台应用程序开发所必要的工具和各组件API。在这些插件的配合下,可以实现从企业级JAVA应用平滑过度到智能机终端ANDROID游戏的开发。ECLIPSE还是很好的动画游戏制作软件。鉴于其具有面向对象编程的特点,大大提升了程序开发效率。而且ECLIPSE自带着一些常用的组件,这为我们的开发提供了很大的便利。综上所得,此次系统开发在技术上是可行的。323社会可行性联系人对战游戏规则很简单,上手极易,老少皆宜;画面搞怪诙谐,游戏节奏轻松欢快,广受玩家的喜爱;由于本游戏是将手机联系人作为游戏角色进行对战,在一定程度增加了游戏的搞怪性,极富吸引力。由其受欢迎的人群范围之广泛外加其多样的战斗方式能不断地给玩家带来新鲜感得知,其具有社会可行性。33系统概要设计本设计参考了联系人对战游戏流程图(图31)按照自顶向下的设计方式将游戏分为以下模块进行设计,如图32所示图32联系人擂台战游戏模块划分331界面布局模块由于本课题的题材是一款游戏,对于游戏的界面以及一些基本控件有必要介绍一下。本系统一共有四个界面一个选择界面,一个游戏界面,一个排行榜显示界面和一个设置界面,基本的控件有文本框,进度条,下拉列表,网格视图,按钮,图片视图等。下面简单介绍下它们的作用文本框主要是用来显示一些文本,这些文本基本是描述文本框所在位置的功能。下拉列表主要用在了本机联系人的获取,以及游戏积分的排行显示上。按钮是两个界面的链接枢纽,在第一个选择界面按下确定按钮,会跳转到游戏界面。在游戏界面也设置了一个按钮,主要是给玩家提供“重新游戏”的机会。图片视图只要用来显示图片,在游戏界面用图片视图显示图片,供玩家游戏。332游戏角色模块本游戏的游戏角色是基于手机联系人姓名获取的。游戏开始之前,在获取权限的基础上。玩家可以通过下拉框选择手机已有联系人的姓名作为游戏角色进行对战。角色拥有生命值和攻击值两种基本属性。攻击值是决定伤害值的关键。伤害值会对对方造成1比1的生命值损耗。角色的生命值和攻击值都是在选定对战双方,开始游戏后随机赋予的。这个随机值是基于一个基数所计算的随机值,这样就能在最大程度上使得双方属性平衡,增加游戏的可玩性。角色攻击所造成的伤害也是在攻击的基础上取得的随机数。这种随机赋值的方法能增加游戏的趣味性和未知性,又不会影响游戏的公平性。333战斗文案模块本游戏的战斗过程显示是以文字的方式显示在界面中,本创意来源于篮球赛事的文字现场直播。不同的是,整个战斗过程是对SQLITE数据库表中数据的操作,主要涉及数据的查询,插入和更新操作。战斗文案以字符串的格式分为动作和结果预编译好,写在数据库插入语句中。进入游戏时,在创建数据库,建表的过程中会直接存入数据库相应的表中。剩下的就是对数据的读取和显示操作了。战斗文案的显示与按钮关联。文案根据类型的不同划分为四种,通过点击不同的攻击按钮实现从不同的表中查询结果并显示。从数据库表中读取的数据也具有随机性,即点击一种攻击方式按钮,角色的攻击方式是未知的,通过在数据库中随机读取数据实现。334游戏排行模块在一局游戏结束后,胜方会以弹出框的形式提示并保存胜局信息。因为本游戏不基于网络,不实现从服务器调用获取数据,所以,角色胜局信息也是存入本机数据库中。在SQLITE数据库中,会有一个相应的表可以存入胜利一方的姓名和所胜局数。所胜局数会随游戏进行不断更新。最终排序显示在排行榜页面中。在这里涉及到数据的查询判断,插入,以及更新操作。首先判断表中所胜玩家的数据是否存在。存在则更新胜局数。不存在则存入姓名和胜局数。335游戏设置模块在游戏中,玩家可以选择游戏背景音乐的播放或停止,以及音乐音量大小的调节。这一点在游戏设置界面中可以实现。在设置界面中有两个开关按钮可以点击来打开或者关闭游戏背景音乐。还有一个拖动条,可以实现对音乐音量的大小调节。较为明了,并且操作简单。336游戏实现模块在进入游戏后,游戏会首先会请求获取联系人信息的权限。获得权限后,选择游戏按钮进入游戏界面。在游戏主界面中,通过下拉框先选择手机已有联系人姓名。点击PK按钮后,会对联系人所代表的角色进行生命和攻击的赋值,玩家生命状态会实时通过进度条显示,如有一方生命值耗尽,结束战斗,宣布胜方。34系统风格定位经过多次风格替换尝试,最终将该系统风格定位为搞怪恶搞风格,其原因有下搞怪的风格能吸引玩家,风趣的战斗方式会使其觉得新奇,这将大大拓宽了用户群范围和规模,提升该系统的实用性;另一方面,搞怪风格能缓解玩家的心理压力,为玩家快节奏的现代生活营造出一种轻松愉快的氛围。35小结本章从操作、技术、社会三方面对系统的可行性进行了详细分析,并结合了系统的需求分析初步设计了系统,其中还包括了系统的基本流程设计以及模块的划分与设计,并最终定位了搞怪的系统风格。这些为下一章的系统的实现打下了基础。4系统详细设计与实现41系统工程的创建进入开发环境后,创建一个ANDROID工程CONTACTRINGAPP。如图41所示图41工程架构图对上述工程架构介绍如下(1)SRC目录主要是完成工程的JAVA代码编写。(2)GEN目录系统自动生成的源代码目录,其中含有非常重要的RJAVA文件,它所包含的每一种静态内部类都对应着相应的一种资源。(3)ASSETS目录DATA资源目录(4)BIN目录该目录用于存放生成的目标文件,如JAVA的二进制文件,资源打包文件,DAVLIK虚拟机的可执行文件(DEX后缀)等。(5)RES目录资源文件夹。其中LAYOUT存放界面布局文件,VALUES目录下则存放各种XML格式的资源文件,DRAWABLE中存放了工程需要的图像资料,RAW中存放着音乐资料。(6)ANDROIDMANIFESTXML文件是ANDROID项目的系统清单文件,它用于控制ANDROID应用的名称,图标,访问权限等整体属性。除此之外ANDROID应用的ACTIVITY,SERVICE,CONTENTPROVIDER,BROADCASTRECEVIER这四大组件都需要在该文件中配置。其中各类或接口的说明如下(1)MAINACTIVITY游戏的主界面ACTIVITY,包含三个按钮和游戏LOGO,分别为“过上几招”,“战绩排行”,“设置”。在该类中完成对三个界面的选择跳转以及设置键弹出的开发者信息。(2)FIGHTACTIVITY顾名思义,是擂台战的游戏界面。在该ACTIVITY中进行游戏的主要操作方法和一些数据库查询现实操作,执行组件包括SPINNER,TEXTVIEW,BUTTON,EDITTEXT,PROGRESSBAR等。(3)PAIHANGACTIVITY战绩排行的显示界面,主要用于在LISTVIEW中显示经过战斗的玩家胜局信息。是通过从数据库相应的表中查询获取的并对数据进行了排行。执行组件包括LISTVIEW。(4)PLAYER类该类中是对角色生命值和攻击值的初始化。(5)SETTINGACTIVITY对游戏进行音乐开关和音量大小的基本设置。执行组件包括SEEKBAR,BUTTON,TEXTVIEW。(6)MYSQLITEOPENHELPER类是对数据库操作的帮助类,里面是数据库的建表语句,在程序加载时执行,可以较为方便地对数据库进行操作。以及游戏数据的查询和更新操作。(7)MUSICSERVICE游戏的背景音乐操作类,包含游戏的播放,停止等方法,用以在其他类中调用,比如设置。42界面UI设计421主要界面布局主要界面布局是在MAINXML中进行的,采用的是垂直线性布局,使用的组件包括一个IMAGEVIEW和三个BUTTON,IMAGEVIEW用以显示游戏LOGO,不可操作。三个BUTTON分别是游戏,排行和设置。为了能直观的感受到按钮的点击状态,BUTTON的背景是自定义SELECTOR的XML文件,其中设置了按钮的按下和释放的不同状态。所完成的主界面效果如图41显示图42主界面效果图422游戏界面布局游戏界面布局采用REALATIVELAYOUT相对布局,左右上角分别是要选取的两个联系人姓名,用SPINNER下拉框显示,下面分别是生命和攻击值表示在TEXTVIEW上,点击PK按钮后会有所显示,然后是代表双方生命值的进度条,下面是游戏操作的按钮,醒目的PK按钮位于正中间,攻击方式按钮分布在四周,在按钮下面用EDITTEXT显示文字战斗过程。所完成的游戏界面效果图如图43所示图43游戏界面效果图43游戏功能实现游戏代码具体运行流程是这样的游戏启动后,启动MAINACTIVITY,接着加载MAINXML初始化选择界面,在完成游戏界面选择后,ACTIVITY跳转进入FIGHTACTIVITY,即游戏界面,并加载ACTIVITY_FIGHTXML文件初始化游戏界面,然后根据界面上提示信息,选择联系人姓
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分行业绩考核规定
- 家电维修管理体系规范
- 在党旗下擦亮人民教师的精神名片教师节专题党课
- 2025浙江温州瑞安市司法局编外人员招聘1人笔试参考题库附答案解析
- 动物遗传多样性研究总结
- 2025云南省昭通市建飞中学招聘教师笔试备考试题及答案解析
- 考研英语听力:如何迅速提高水平
- 农村新型社会组织发展模式分析
- 2025西北工业学校教师招聘笔试含答案
- 榨汁机贷款量维修规定
- 2025年山西太原供水集团有限公司招聘笔试参考题库含答案解析
- 《医院员工激励问题研究11000字(论文)》
- 品管圈计划书(模板)
- GB/T 26559-2011机械式停车设备分类
- GB/T 2423.22-2012环境试验第2部分:试验方法试验N:温度变化
- 水土保持工程质量评定表
- 项目团队实施及人员配置
- 人像摄影:户外人像摄影课件
- 纸张消耗统计表
- 《中国传统服饰简介》PPT课件(完整版)
- 《教育技术学导论》课程教学大纲
评论
0/150
提交评论