基于Android的数独库程序的设计毕业设计.docx
- 文档编号:12661894
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:44
- 大小:313.23KB
基于Android的数独库程序的设计毕业设计.docx
《基于Android的数独库程序的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android的数独库程序的设计毕业设计.docx(44页珍藏版)》请在冰豆网上搜索。
基于Android的数独库程序的设计毕业设计
上海电力学院
本科毕业设计(论文)
题 目:
基于Android的数独库程序设计
院 系:
计算机与信息工程学院
专业年级:
2008电子科学与技术
2012年06月11日
基于Android的数独库程序的设计
摘要
本文主要阐述以面向对象的程序开发语言eclipse为开发工具,基于智能手机Android之上设计一个数独游戏。
论文通过五个大块对android以及数独游戏进行阐述。
第一部分大致介绍了设计数独游戏的目的、起源及发展过程。
第二部分、第三部分是对android系统的概述,通过对android平台架构及特性、操作系统和开发环境的介绍对android的整体有了大致的了解,有利于下一步的游戏设计。
第四部分是对数独库整个项目的设计方法以及算法进行分析对之后的程序界面及逻辑设计打下基础。
最后一部分介绍了数独程序的启动界面设计、游戏部分2D图形设计、多媒体设计和存储本地数据设计。
通过分块介绍清晰地说明了整个数独程序设计的流程以及所用方法。
关键词android2.1数独库,游戏逻辑及算法,游戏界面
ThedesignanddevelopmentofSudokubasedonAndroid
Abstract
Thisarticledescribedtheobjectorientedprogramminglanguageeclipsefordevelopmenttools,BasedonintelligentmobilephonebasedonAndroiddesignaSudokugame.ThispaperthroughthefivelargeandelaborateonAndroidSudokugame.ThefirstpartbrieflyintroducesdesignSudokupurpose,originanddevelopment.Thesecondpart,thethirdpartisontheAndroidsystem,basedonAndroidplatformarchitectureandcharacteristics,operatingsystemanddevelopmentenvironmentareintroducedtotheandroidasawholehaveageneralunderstanding,ishelpfulforthenextstepofthegamedesign.Thefourthpartisthelogarithmofthebaseoftheentireprojectdesignmethodandalgorithmanalysisonaftertheprograminterfaceandlogicdesignfoundation.ThelastpartintroducesSudokuprograminterfacedesign,graphicdesign,multimedia2Dgamepartdesignandstoringlocaldatadesign.BytheblockintroductionillustratesclearlytheentireSudokuprogramdesignprocessandusingmethod.
Keywords:
Android2.1Sudokulibrary,thegamelogicandalgorithm,thegameinterface
1.引言
1.1研究背景
在生活中有许多的游戏,但是游戏不同,它也会给玩家带来不同的感受和生活理念。
游戏是日常生活的一个必不可少的娱乐项目,也带动了游戏相关产业市场的发展。
游戏平台是经过从游戏机到电视游戏,然后从到pc游戏,到手机游戏,中间经历了很多的技术的更新和变革。
但随着新技术的发展和生活水平质量的提高,手机开始逐渐变为普及,因为手机是非常小巧便捷的,而且方便的特性成为日常生活中必备通讯工具。
而基于手机平台的游戏也就拥有的市场空间是巨大的,也因3g的开通和应用,手机游戏必然会迎来新的一轮游戏热潮!
[1]
1.2课题来源
现在的移动电话是小型的计算机,它的处理能力与台式机的标准处理能力相比很有限,但是足够运行一个小型的游戏。
现在的手机的一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。
除了语音数据以外,它们还可以发送和接收其它类型的数据。
所以这样的网络游戏也可以在手机上实现。
短信类游戏就好像“虚拟宠物”那样。
短信游戏是通过玩家和游戏服务商通过短信中的文字的内容来交流,达到进行游戏的目的的一种文字游戏。
由于短信游戏的整个游戏过程都是通过文字来表达,造成短信游戏的娱乐性较差。
但是短信游戏却是兼容性最好的手机游戏之一。
只要您的手机可以发短信,您就可以畅快的享受短信游戏给您带来的快乐了。
图形类游戏更接近常说的“电视游戏”,玩家通过动画的形式来发展情节进行游戏。
由于游戏采用了更为直观且更为精美的画面直接表现,因此图形类游戏的游戏性和代入感往往较文字类游戏高。
因此广受玩家们的欢迎。
嵌入式游戏是一种将游戏程序预先固化在手机的芯片中的游戏。
由于这种游戏的所有数据都是预先固化在手机芯片中的,因此这种游戏是无法进行任何修改的。
也就是说,您不能更换其它游戏的,只能玩您手机中已经存在的娱乐游戏,而且您也不能将它们删除。
手机在网络游戏行业在多年的技术经验与运营经验的积累与总结之后,到了2009年迫不及待的需要创新出新的游戏模式和崭新的运营模式来推动手机游戏市场的爆发和发展。
其中比较吸引人们的是手机的休闲类的游戏。
应该可以说它是与PC网络游戏完全的脱离开了,而且充分发挥了自身的优势手机终端。
休闲类的游戏恰巧与之相反,只需要很少的网络流量的网络环境,通过少量多次的游戏形式带给玩家流畅的游戏体验满足玩家瞬间提升的快感,但是同时却很难具有长期的“沉迷”性。
本题目是基于Android平台开发的一个小型的程序。
其实都差不多,在有JAVA的智能手机上都可以运行。
其实手机是生活中不可缺少的工具,这些小游戏可以带给快乐和放松心情。
无论什么样手机,想买起来的时候上面就有一些它自带的各种小游戏,其中有一个独特的小游戏也是非常重要的。
1.3国内外研究现状
Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。
Google通过与运营商、设备制造商、开发商和其它有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。
发现,全球为数众多的移动电话用户从未使用过任何基于Android的电话。
谷歌的目标是让(移动通讯)不依赖于设备甚至平台。
出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:
通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
、
智能手机(Smartphone),具有独立的操作系统,像个人电脑一样支持用户自行安装软件、游戏等第三方服务商提供的程序,并通过此类程序不断对手机的功能进行扩充,同时可通过移动通讯网络来实现无线网络接入。
目前,全球多数手机厂商都有智能手机产品,而芬兰诺基亚、美国苹果、加拿大RIM(黑莓)、美国摩托罗拉、中国台湾宏达(htc)更是智能机中的佼佼者。
智能手机具有五大特点:
1.具备了无线接入互联网的能力,即要有GSM的支持网络下的GPRS或者是CDMA网络支持下的CDMA1X或3G网络。
2.人性化,可以根据个人需要扩展机器的功能。
3.它是具有开放性的操作系统,还可以安装非常多的应用程序,使得智能手机的功能可以得到无限的扩展。
4.具有PDA功能,其中包括个人信息管理、日程记事、任务安排、多媒体应用、浏览网页。
5.强大的功能,扩展性能强,第三方软件支持多。
Android操作系统版本
Android1.5“Cupcake”这是第一个主要版本,发布于2009年5月.这个升级之后,它的更新给用户带来了新的体验。
用户界面得到了极大的改良,并且增添了以下功能。
Android1.6“Donut”2009年9月发布。
搭载Android1.6的HTCHero获得了意想不到的成功。
使得原来用许多都没有用过Android的人都对Android非常的关注,并且也让竞争者苹果和微软更加警惕了。
Android2.0/2.1:
2009年10月26日,又一个主要版本升级以创纪录的速度放出。
这次,大版本升级到了Android2.0/2.1“Eclair.”。
Android2.0.1SDK在2009年12月3日发布出来,后来是2010年1月10日发布的2.1版本。
很多围观群众和用户可能会有点奇怪:
“Android为什么会被用甜点作为它系统版本的代号?
”,其实这个命名方法开始在Andoird1.5发布出来的时候。
每一个版本代表的甜点的尺寸就越变越大,然后按照字母的数序:
小蛋糕,甜甜圈和松饼。
在这之前人们预计2.2版本的代号可能是“馅饼”,但这个最终被证明是错误的,“FroYo”(冻酸奶)才是Android2.2这个伴随GoogleNexusOne发布的新版的最新代号。
而下一个版本的代号将会是“姜饼”。
Android2.2“Froyo”:
NexusOne的用户已经开始接受Android2.2“FroYo”的无线更新,其它机型的用户可能会在短时间内获取到这一更新的。
这一版本的更新出来会让大量让其它手机用户垂涎三尺。
从Android的发展旅途中,看到2003年Andy他是一个有远见的人,看到了2005年的起步和被Google的收购,也看到了系统的进步以及新的机型的快速发布。
所有这一切都让人们相信,Android将会走向世界第一移动操作系统宝座的步伐是势不可挡的。
Android平板电脑也在今年的夏天开始发布以及GoogleTV发布以后(也许还有GoogleMusic),Android可能真的会将继续带着人们走向移动设备梦想的彼岸。
2.Android系统概述
2.1Android的平台架构及特性
Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、KeyApps、Middleware、LinuxKernel四个部分在内的全套手机软件方案。
它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。
Android平台为开发应用程序提供了一套很好的框架,可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[2]。
Android的系统架构和其它操作系统一样,采用了分层的架构。
从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
2.1.1Android平台特性
Android平台有如下特性:
应用程序框架支持组建的重建与替换。
这在之前的手机操作系统中是很难想象的。
这意味着可以把系统中不喜欢的应用程序替换掉,安装自己喜欢的应用程序,例如,打电话应用程序、文件管理器等。
Dalvik虚拟机专门为移动设备做了优化。
Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。
Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多
内部集成浏览器基于开源的WebKit引擎。
有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机是一台“小电脑”可以网上随意遨游。
优化的库包括2D和3D图形库,3D图形库基于OpenGLES1.0.强大的图形库给游戏开发带来福音。
3G最为重要的应用莫过于手机上网和手机游戏了。
SQLite用作结构化的数据存储。
多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)。
GSM电话(依赖与硬件)。
蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖与硬件)。
照相机、GPS、指南针和加速计(依赖与硬件)。
丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成开发环境插件。
Google提供了Android开发包SDK,其中包含了大量的类库和开发工具。
并且专门开发了针对Eclipse的可视化开发插件ADT。
2.1.2Android平台架构
如图所示的是Android操作系统的体系结构
如图中可以看出Android操作系统体系结构分为4层,由上而下依次是应用程序、应用程序框架、核心类库和Linux内核。
其中在第三层还包括Android运行时环境。
图2-1Android架构图[3]
1.应用程序
Android连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。
所有的应用程序都是用Java编写的。
2.应用程序框架
开发者完全可以访问核心应用程序所使用的API框架。
该应用程序架构用来建华组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其发布的功能块(不过得遵循框架的安全性限制)。
该应用程序重用机制使得组件可以被用户替换。
以下所有的应用程序都有一些列的服务和系统组成,包括:
1)一个可扩展的视图(View)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(textboxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。
2)内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
3)一个资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串、图形和分层文件(layoutfiles)。
4)一个通知管理器(NotificationManager)使得应用程序可以在状态栏中显示客户通知信息。
5)一个活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
3.Android程序库
Android应用程序框架为开发者提供服务。
以下是一些主要的核心库。
1)系统C库:
一个从BSD继承来的标准C系统函数库(libc),专门为基于EmbeddedLinux的设备定制。
2)媒体库:
基于PacketVideoOpenCORE:
该哭支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF。
3)SurfaceManager:
对显示子系统的管理,并且为多个应用程序提供2D和3D图层无缝融合。
4)LibWebCore:
一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。
5)SGL:
一个内置的2D图形引擎。
6)3Dlibraries:
基于OpenGLES1.0APIs实现:
该哭可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
7)FreeType:
位图(bitmap)和向量(vectot)字体显示。
8)SQLite:
一个对于所有应用程序可用、功能强劲的轻型关系型数据库引擎。
4.Android运行库
Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik是针对同时高效的运行多个VMs来实现。
Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。
该虚拟机是基于寄存器的,所有的类都经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式有虚拟机执行。
Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。
5.Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。
Linux内核也是同作为硬件和软件堆栈之间的硬件抽象层。
2.2Android应用组件
Android应用程序没有统一的入口(例如main()方法),各个应用之间是相互独立的,并且运行在自己的程序当中。
根据完成的功能不同,Android划分了四类核心的组件类:
Activity、Service、BroadcastReceiver和ContentProvider。
相同组件和不同组件之间的导航通过Intent来完成。
Android还定义了View类来显示可视化界面,例如菜单、对话框、下来列表等。
下面详细介绍各个组件的意义和用法。
2.2.1Activity
Activity是Android组件中最基本也是最为常用的一种组件,在一个Android应用中,一个Activity通常就是一个单独的屏幕。
每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。
这个Activity类将会显示由几个Views空间组成的用户接口,并对事件做出响应。
大部分的应用都会包含多个屏幕。
例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。
每一个这样的屏幕就是一个Activity。
通过调用startActivity()方法可以从一个屏幕导航到另一个屏幕,打开Activity的条件被封装在Intent中。
当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在堆栈中。
用户可以返回到历史堆栈中前一个屏幕。
当屏幕不再使用时,还可以从历史堆栈中删除。
默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。
2.2.2Service
一个Service是一种长生命周期的、没有用户界面的程序。
比较好的一个例子就是正在从播放列表中播放歌曲的媒体播放器。
在一个媒体播放器的应用中,应该会有多个Activity,让使用者可以选择歌曲并播放歌曲。
然而,音乐播放这个功能并没有对应的Activity,因为使用者会认为在导航到其它屏幕时音乐应该还在播放。
在这个例子中,媒体播放器这个Activity会使用Context.startService()来启动一个Service从而可以在后台保持音乐的播放。
同时,系统也将保持这个Service一直执行,直到这个Service运行结束。
另外,还可以通过使用Context.bindService()方法连接到一个Service上(如果这个Service还没有运行则将启动它)。
当连接到一个Service之后可以进行暂停、重播等操作。
2.2.3BroadcastReceiver
BroadcastReceiver是为了实现系统广播提供的一种组件。
例如:
可以发出一种广播来检测手机电量的变化,这时候就可以定义一个BroadcastReceiver来接收广播,当手机电量较低时提示用户。
2.2.4ContentProvider
Android应用程序之间是相互独立的,各个组件运行在不同的进程中,这就意味着数据是不是能共享。
通过ContentProvider来实现不同之间数据的共享。
Android应用能够将它们的数据保存到文件和SQLite数据库中,甚至是任何有效的设备中。
当将应用数据与其它的应用共享时,ContentProvider就可以发挥作用了。
因为ContentProvider类实现了一组标准的方法,能够让其它的应用保存或读取此内容提供器处理的各种数据类型。
2.2.5View
View是Android中图形用户界面的基类,提供可视化界面的展示。
Android的图形展示可分为三层:
底层是Activity:
Activity上面是Window:
Window上面是Views。
View又可分为View和ViewGroup。
View是基本的控件,例如按钮、单选框、多选框、菜单等;ViewGroup是指布局控制,即用来控制界面中的控件如何布局摆放的。
2.2.6Intent
Intent是不同组件之间相互导航的纽带,封装不同组件之间导航查找的条件,在Intent的描述结构中,有两个最重要的不封:
动作和动作对应的数据。
典型的动作类型有MAIN(Activity的门户)、VIEW、PICK、EDIT等。
而动作对应的数据则以URI的进行标示。
例如,要查看一个人的联系方式,需要创建一个都工作类型为View的Intent,以及一个表示这个人的URI。
3.Android开发平台
3.1操作系统
目前只支持XP(32-bit)、Vista(32/64-bit)、MacOSX10.4.8或更新版本(x86)、Linux(只在LinuxUbuntuDapperDrake上面做过测试)。
3.2开发环境
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。
只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:
JavaRuntimeEnvironment)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。
同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。
[4]
3.3构建快
在AndroidSDK中定义的一些对象,其中最为重要的是活动、意图(intent)、服务和内容日供着。
下面是对它们的介绍。
3.3.1活动
一个活动纪实一个用户界面屏幕。
应用程序可以定义一个或多个活动,以处理程序不同阶段中的任务。
每个活动都要保存自己的状态,以便以后还原这些状态。
3.3.2意图
意图是一种描述具体动作的机制,例如“拍照”、“往家中拨电话”、或“打开仓门”。
在Android中,几乎所有事情都要经历意图这个阶段,所以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 数独库 程序 设计 毕业设计