1、 成 都 东 软 学 院毕 业 论 文2015 年 5 月 8 日论文题目 基于 Android 系统的 BusyBee 手游开发 学生姓名 TL 学 号 xxxxxxxxxxxx 专业班级 软件工程 xxxxxxx 指导教师 xxxxxxxxxxxxxx 院系名称 计算机科学与技术系 摘要摘 要随着移动互联网的飞速发展、智能手机的逐渐普及,手机游戏成为了越来越多的年轻人的娱乐方式。经调查,超过 50%以上的人都会用手机玩游戏,手机游戏(以下简称“手游”)已逐渐占据整个游戏市场(包括 PC 端等)的份额。本论文提出了一款基于 Android 系统的 BusyBee 手游开发系统,并对其具体设计
2、、实现进行了说明。在游戏设计实现过程中,我们参考了用户习惯、时下流行的游戏元素,并结合了 Android 自身系统特点,竭力打造一款不失创意又符合用户交互习惯的系统。BusyBee 是一款益智动作类游戏,主要包括选择关卡、开始游戏、暂停游戏、重新开始游戏、判断游戏胜利和失败、重置游戏、设置音乐和音效、腾讯微博分享、游戏评级功能模块。BusyBee 是由小组共同完成,我主要负责分析与设计、编码工作,整个开发我们采用了迭代递增的方式,分为三个阶段,每个阶段相应输出需求分析、概要设计、详细设计、编码、测试报告(第一个阶段之前做了调研,有相应调研报告),本论文总结了三个阶段的情况,主要从 Androi
3、d 技术与理论、需求分析与系统概要设计、详细设计、编码实现等方面做了相应阐述。关键词:安卓、手机游戏、游戏框架、统一建模语言ABSTRACTIABSTRACTWith the development of mobile Internet and intelligent mobile phone,the mobile phone games is becoming more and more popular among the young people. After investigation, more than 50% people play games with the mobile ph
4、one, mobile phone game(hereinafter referred to as the “Mobile Games“) has been gradually occupy the entire game market (including PC) of the share.This paper presents a BusyBee based Mobile Games development system of Android system, and the design, realization are presented. In the game design in t
5、he process of implementation, we reference the user habit and combined with the characteristics of Android system itself, to create a both creative and adaptive game system.BusyBee is an action puzzle game, mainly including the choose levels, start the game, pause the game, restart the game, the gam
6、e victory and failure judgment, reset the game, set the music and sound , Tencent micro-blog sharing, game rating function module.BusyBee is accomplished by the group together, I mainly responsible for the analysis 、design and coding, we use iteration increments, the all system is divided into three
7、 stages, each stage needs analysis, outline design, detailed design, coding, test report,in this report, summarizes the three stages of the situation, mainly from the Android technology and theory, demand analysis and system outline design, detailed design, code realization etc.Keywords:Android、Phon
8、e Game、Games Framework、UML目录II目 录1 绪论 .11.1 课题背景 .11.2 国内外研究现状 .11.3 课题研究意义 .21.4 论文结构安排 .22 Android 技术与理论 .32.1 Android 系统开发简介 .32.1.1 Android 技术简介 .32.1.2 SurfaceView 游戏框架 .32.1.3 Android 存储方式 .32.2 Android 应用的构成和工作机制 .42.2.1 Activity .42.2.2 Service 服务 .42.2.3 Content Provider 内容提供者 .42.2.4 Broad
9、castReceiver 广播接收器 .53 需求分析与系统概要设计 .63.1 总体需求 .63.1.1 研究内容 .63.1.2 研究方案 .63.2 需求规定 .73.2.1 对功能的规定 .73.2.2 对性能的规定 .83.2.3 系统顶层活动图 .83.3 分析 .93.3.1 顶层用例图 .103.3.2 参与者 .103.3.3 用例规约与分析 .113.3.3.1 选择关卡(Select Level) .113.3.3.2 开始游戏(Start Game) .123.3.3.3 重新开始(Restart Game) .143.3.3.4 暂停游戏(Pause Game) .1
10、73.3.3.5 游戏胜利(Win Game) .193.3.3.6 游戏失败(Lose Game) .203.3.3.7 游戏评级(Rank Game) .233.3.3.8 社交分享(Social Share) .253.3.3.9 重置游戏(Reset Game) .273.3.3.10 设置音乐(Set Music) .29目录III3.3.3.11 设置音效(Set Sound) .313.3.3.12 观看背景视频(Watch Video) .323.4 概要设计 .343.4.1 系统架构图 .353.4.2 系统架构说明 .353.4.3 数据存储设计 .354 系统详细设计
11、.364.1 开发工具和平台环境 .374.2 选择关卡模块设计 .374.2.1 实现类设计 .374.2.2 顺序图 .394.3 开始游戏模块设计 .404.3.1 实现类设计 .404.3.2 顺序图 .464.4 重新开始模块设计 .474.4.1 实现类设计 .474.4.2 顺序图 .504.5 暂停游戏模块设计 .514.5.1 实现类设计 .514.5.2 顺序图 .544.6 游戏胜利模块设计 .554.6.1 实现类设计 .554.6.2 顺序图 .594.7 游戏失败模块设计 .594.7.1 实现类设计 .594.7.2 顺序图 .624.8 游戏评级模块设计 .63
12、4.8.1 实现类设计 .644.8.2 顺序图 .674.9 社交分享模块设计 .674.9.1 实现类设计 .674.9.2 顺序图 .704.10 重置游戏模块设计 .714.10.1 实现类设计 .714.10.2 顺序图 .744.11 设置音乐模块设计 .754.11.1 实现类设计 .754.11.2 顺序图 .78目录IV4.12 设置音效模块设计 .784.12.1 实现类设计 .784.12.2 顺序图 .814.13 观看背景视频模块设计 .814.13.1 实现类设计 .814.13.2 顺序图 .835 编码实现 .835.1 主要代码 .84结 论 .87谢 辞 .
13、88参 考 文 献 .89绪论01 绪论1.1 课题背景如今的手机市场,智能手机早已占据了大部分份额,其中又以Android,ios,Windows Phone 8 操作系统最为突出。经调查,益智休闲类的手游一直都备受青睐,原因有几点:(1)益智类游戏时间较短,相比手机中的 RPG(角色扮演类游戏)、音乐游戏来说,每一关的游戏时间不长;(2)用户大多在空闲时候选择玩手游,益智游戏不仅有效地打发了时间,也可以开发智力,轻松之余锻炼自己的脑力。然而,如今益智类游戏市场上,大多产品都是属于昙花一现或山寨泛滥,因此,大胆创新而又与众不同的益智游戏正是用户急切需求的。1.2 国内外研究现状随着移动互联网
14、的飞速发展、智能手机的逐渐普及,手机游戏成为了越来越多的年轻人的娱乐方式。经调查,超过 50%以上的人都会用手机玩游戏,手机游戏(以下简称“手游”)已逐渐占据整个游戏市场(包括 PC 端等)的份额。手游的蓬勃发展之余,也存在很多问题,就中国市场来说,第一个问题是盈利模式不成熟。到目前为止中国手游用户的付费比例相当相当的小,付费金额也不高。第二个问题是流量问题。流量问题有两个,一个是指使用流量,另一个指的是移动搜索入口提供的流量、平台提供的流量。第三个问题就是竞争问题。因为手游公司门槛偏低,手游公司扎堆涌现的现象非常严重,其带来的后果更多的是产品同质化,版权因素、开发过程中的借鉴因素、缺乏创新意
15、识造成的手游同质化问题已经成为了中国手游市场发展的一大瓶颈。第四个问题就是市场格局问题。老牌网游巨头腾讯等向手游的成功转型和新贵触控科技等在早期抓住机遇占据了大部分市场份额的双重夹击下,中小型手游公司的生存让人堪忧。解决以上问题的关键在于产品自身品质和产品的推广,而根据游戏市场特有性质,一款好的游戏必须是具有其玩法创新性、操作简易性、画面美观性、音效特效绪论1高品质性等特点。1.3 课题研究意义BusyBee 手游系统是在小学期和综合实训已经实现部分功能的项目,我们希望在更充沛的市场调研和对 Android 进阶学习下,通过二次开发改进和完善本游戏系统,同时通过系统开发培养自主学习即收集、整理
16、、分析文献等能力,加深对Android 游戏研发背景和技术的了解与掌握,通过团队协作的方式,提高我们团队协作能力!1.4 论文结构安排本文首先给出了系统的研究背景,对当前手机游戏的发展现状做了简单的介绍;接下来分析了 Android 技术与理论,主要从 Android 系统本身、Android 应用构成和工作机制两方面进行了阐述;最后从需求分析与概要设计、详细设计和编码三个方面详细地说明了 BusyBee 游戏系统的整个实现过程。Android 技术与理论22 Android 技术与理论2.1 Android 系统开发简介2.1.1 Android 技术简介Android 应用程序由 java
17、 语言编写,Android SDK 工具编译代码、数据和资源文件,并且将其打包成一个后缀名为.apk 的 APK 文件,一个 APK 文件包含 Android应用的所有内容,并且是 Android 设备用来安装 Android 应用的安装包文件。Android 中有四种不同类型的应用程序组件,每种类型服务于不同的目的,由不同的生命周期定义了创建和销毁等状态。2.1.2 SurfaceView 游戏框架在 Android 系统中,有一种特殊的视图称为 SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView 的 UI
18、就可以在一个独立的线程中进行行绘制。又由于不占用主线程资源,SurfaceView 一方面可以实现复杂而高效的 UI,另一方面又不会导致用户输入得不到及时响应。2.1.3 Android 存储方式Android 提供了四种存储方式,分别是 SharePreference、SQLite、Content Provider 和 File,每种存储方式都有其固有特点,BusyBee 游戏系统因为目前版本存储的数据不多,所以采用 SharePreference 的存储方式。SharedPreference 是 Android 提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,其以键值对的方
19、式存储,使得我们能很方便进行读取和存入。SQLite 是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的 C 库中。ContentProvider 为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。Android 技术与理论3File 即常说的文件(I/O)存储方法,常用于存储大数量的数据。2.2 Android 应用的构成和工作机制2.2.1 ActivityActivity 是 Android 组件中最基本也是最为常见用的四大组件之一。Activity是一个应用程序组件,其中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过 se
20、tContentView(View)来显示指定控件。在一个 android 应用中,一个 Activity 通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity 之间通过Intent 进行通信。2.2.2 Service 服务Service 是 android 系统中的四大组件之一,它跟 Activity 的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service 可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他 Activity 这个时候程序要在后台继续播放,总之 Service 总是藏在后台的。Servi
21、ce 启动两种方式:context.startService() 和 context.bindService()。2.2.3 Content Provider 内容提供者android 平台提供了 Content Provider 使一个应用程序的指定数据集提供给其他应用程序,其他应用可以通过 ContentResolver 类从该内容提供者中获取或存入数据,只有需要在多个应用程序间共享数据时才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中,它的好处是统一数据访问方式。2.2.4 BroadcastReceiver 广播接收器广播接收器是一个用来响应系统范围内广播通知信息的组件。许多广播起源于