CN107544805B - 基于Android系统可复用框架的手机游戏系统架构 - Google Patents
基于Android系统可复用框架的手机游戏系统架构 Download PDFInfo
- Publication number
- CN107544805B CN107544805B CN201710784019.3A CN201710784019A CN107544805B CN 107544805 B CN107544805 B CN 107544805B CN 201710784019 A CN201710784019 A CN 201710784019A CN 107544805 B CN107544805 B CN 107544805B
- Authority
- CN
- China
- Prior art keywords
- android
- game
- module
- class
- screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 124
- 238000012545 processing Methods 0.000 claims description 70
- 230000000694 effects Effects 0.000 claims description 24
- 238000007726 management method Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 67
- 238000013461 design Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 abstract description 10
- 238000011160 research Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 8
- 238000011056 performance test Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 5
- 241001147416 Ursus maritimus Species 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Display Devices Of Pinball Game Machines (AREA)
Abstract
目前的Android手机游戏在设计和开发方法上存在整体开发效率较低,可扩展性和可移植性较差等问题。针对以上问题,本发明的“基于Android系统可复用框架的手机游戏系统架构”,研究和设计了一套可复用的Android游戏开发框架,设计应用系统,分别从性能和效率角度进行了验证。通过采用可复用框架,Android游戏的系统架构从三层架构精简为两层,并且游戏开发者只需处理游戏具体实现模块这一层的内容,这样更加有利于游戏的整体开发进程把握,降低了游戏的开发难度,节约了游戏的开发时间,也使游戏的开发质量更加有保证。
Description
技术领域
本发明涉及Android系统手机游戏开发领域。
背景技术
随着Android系统近年来的快速普及与发展,越来越多的厂商加入到Android的阵营,中商情报网发表的研究报告称2016年Android市场份额已经达到81.7%,占据了市场的主导地位。智能手机性能的不断改进和提升为手机游戏提供了一个强大而全新的硬件平台。此外,移动通信技术的快速发展和推广给手机游戏的下载和分享创造了前所未有的便捷性。三者的有益结合催生Android手机游戏成为用户手机娱乐的主流应用,并且拥有了庞大的用户群体。
目前,经典Android游戏系统架构如下:
依照自顶向下的原则,采用分层次的设计方式来对Android游戏进行整体架构设计,可以分为3层:表示层,逻辑层,持久层。如图2所示。
(1)视图更新模块
该模块负责界面显示内容的更新。一般游戏有几个界面就设计几个基于SurfaceView或View的界面类,并调用图像绘制模块进行绘图,调用声音处理模块进行声音处理等。
(2)图像绘制模块
该模块用于图片和文本的绘制。
(3)声音处理模块
该模块负责游戏音乐及其他音效的播放。
(4)输入模块
该模块负责监听用户的按键和触摸事件,并提供输入事件给核心处理模块处理用户的输入响应。
(5)核心处理模块
该模块负责游戏的逻辑处理,包括维护游戏主循环以驱动游戏不断进行,对用户输入的分发处理,以及一些核心算法(包括碰撞检测算法,游戏地图更新算法等)的实现。
(6)资源管理模块
该模块负责初始化时游戏资源的导入及游戏运行中的资源管理。
(7)世界模块
该模块负责游戏运行过程中游戏世界的各个实体类的状态信息更新等,包括游戏背景和各显示元素的刷新等。世界模块中包含角色模块和地图模块等子模块。
(8)文件输入输出模块
该模块负责对文件的读写操作。在Android平台上可以使用文件,数据库或Preference等来操作。
然而,经典Android游戏系统架构设计存在如下弊端:
(1)游戏开发效率较低
从经典的Android游戏系统架构图中,我们可以看出设计和实现一款Android游戏的复杂性。在不考虑游戏本身设计需求的情况下,我们需要处理太多的和Android平台相关的事务,开发效率较低。
(2)游戏运行开销较大
从游戏的驱动流程角度来看,主Activity的设计过于庞大,既要维护程序活动的生命周期,又要去处理用户输入事件,还要负责切换不同的显示View。另外多个显示View的设计将增加系统的开销,如果游戏中设计多个Activity也会有增加系统开销的问题。
(3)游戏维护成本较高
因为Android平台相关的代码和游戏的具体逻辑代码设计的过于紧密,耦合性相对较高,在游戏需求变动或后期更新维护的情况下将会面临不少的困难,维护成本较高。
(4)游戏平台可移植性较差
因为Android平台相关的代码和游戏的具体逻辑代码设计的过于紧密,未能将平台无关的游戏代码独立出来,在将该Android游戏移植到其他平台时将会有很多的困难,可移植性较差。
发明内容
本发明考虑目前的Android手机游戏在设计和开发方法上存在整体开发效率较低,可扩展性和可移植性较差等问题。针对以上问题,本发明研究和设计了一套可复用的Android游戏开发框架,并从性能和效率角度进行了验证。
本发明技术方案为:
一种基于Android系统可复用框架的手机游戏系统架构,其特征在于,包括游戏具体实现模块层、可复用框架模块层,其中,
所述游戏具体实现模块层包括:世界模块、逻辑处理模块、资源管理模块、界面更新模块,各个模块与传统经典中对应的各个模块一样;
所述可复用框架模块层包括:框架处理模块、输入模块、视图更新模块、图像绘制模块、声音处理模块、文件输入输出模块;
所述框架处理模块的AndroidGameActivity继承于Activity,实现Game接口,维护活动的生命周期,在Activity类的onCreate方法中创建了可复用框架模块层中的其它功能模块的实例化对象并保存对它们的引用,将当前的显示View设置为gameView;所述框架处理模块实现Game接口,负责协调可复用框架模块层内的各个功能模块的功能调用,某个功能模块如果需要调用其它模块的功能,可以通过调用框架处理模块中的相关get方法来获取对应模块的实例化对象来进行处理;所述框架处理模块的AndroidGameActivity负责显示screen的切换,通过调用setScreen方法实现。所述setScreen方法会先暂停前一个screen的显示并释放相关资源,再调用当前screen的初始化和启动方法来切换;
所述输入模块的AndroidInput类继承于Input接口,其中的两个成员keyHandler和touchHandler分别是按键事件的处理类和触摸事件的处理类,在框架处理模块AndroidGameActivity的onCreate方法中将会创建AndroidInput的对象,AndroidInput实例化的时候会自动创建KeyHandler类和TouchHandler类的对象,分别赋值给成员keyHandler和touchHandler;所述AndroidInput类中的方法最终都会调用KeyHandler类和TouchHandler类中的方法来实现;
所述输入模块的TouchHandler实例对象注册了对触摸事件的监听,通过其中onTouch方法的处理,输入模块将会获取到Android系统上报的触摸事件,并将这些触摸事件都保存到列表中;在Android游戏运行当中,游戏的逻辑处理模块会每隔一段时间就来获取从上一次事件获取到现在全部的触摸事件,并根据收到的触摸事件做出反应;逻辑处理模块通过调用TouchHandler类中的getTouchEvents方法来获取触摸事件,将触摸事件都返回给调用者的同时,getTouchEvents方法会将这次的触摸事件都从触摸事件列表中移除掉;
所述的视图更新模块,负责更新游戏的显示界面,将该模块分为两部分:AndroidGameView和Screen;所述AndroidGameView负责Android平台相关的部分,而Screen用来负责和Android平台无关的界面显示内容更新及逻辑部分的处理;
所述AndroidGameView类继承于SurfaceView,并实现了Runnable接口,在它的resume方法中创建了一个新线程,该新线程用来维护游戏的主循环及调用Screen的相关刷新方法来更新游戏界面;Screen用来负责和Android平台无关的界面显示内容更新及逻辑部分的处理,是和具体的游戏部分相结合的,Screen类设计为一个抽象类,继承于Screen类的具体显示XXXXScreen不属于可复用的Android游戏框架范围,XXXXScreen需要实现Screen抽象类中的init、update、draw方法;所述init方法用于具体screen的初始化操作;所述update方法会被AndroidGameView中的run方法自动调用到,处理逻辑部分和输入事件的获取处理;所述draw方法会被AndroidGameView中的run方法自动调用到,用于具体screen的界面显示内容的更新;
所述图像绘制模块负责图像的具体绘制,包括画点、画线、画矩形、画图片、背景清除,AndroidGraphics中实现的绘制方法最终是通过Canvas类中的绘制方法来实现;
所述声音处理模块负责声音的播放;包括两类音源,一类是文件较大且播放时间较长的音源,另一类是密集短促的即时音效;针对第一类的音源文件,通过封装调用MediaPlayer类来播放处理;针对第二类的音源文件,通过封装调用SoundPool类来播放处理;播放游戏中的背景音乐可以通过下面的步骤来完成:第一步,先实例化AndroidMusic对象,在AndroidMusic构造函数中,根据传入的背景音乐名称先初始化;第二步,通过AndroidMusic的play方法来实现背景音乐的播放;播放游戏中的即时音效可以通过下面步骤来完成:第一步,先实例化AndroidSound对象;第二步,通过AndroidSound中的play方法来实现。
所述文件输入输出模块,负责文件的读写,通过AndroidFileIO类中的方法来实现文件的读取和写入功能;通过AndroidFileIO中的readFile方法来打开文件,通过AndroidFileIO中的writeFile方法来写入文件;数据存储方式采用Preference用来存取基本数据类型的数据。
有益效果
针对目前的Android手机游戏在设计和开发方法上存在整体开发效率较低,可扩展性和可移植性较差等问题。本发明研究和设计了一套可复用的Android游戏开发框架。通过采用可复用框架,Android游戏的系统架构从三层架构精简为两层,并且游戏开发者只需处理游戏具体实现模块这一层的内容,这样更加有利于游戏的整体开发进程把握,降低了游戏的开发难度,节约了游戏的开发时间,也使游戏的开发质量更加有保证。
附表说明
表1两种框架下的性能对比测试图
表2经典Android游戏开发方法所用的开发时间
表3基于可复用框架开发方法所用的开发时间
表4两种方式下实现的Android游戏开发效率对比
附图说明
图1基于可复用框架的Android游戏系统架构图
图2经典Android游戏系统架构图
图3可复用的Android游戏框架类结构图
图4可复用Android游戏框架的输入模块类结构图
图5可复用Android游戏框架的视图更新模块类结构图
图6可复用Android游戏框架的图像绘制模块类结构图
图7可复用Android游戏框架的声音处理模块类结构图
图8Android游戏框架的文件输入输出模块类结构图
图9GameBench性能测试基本结果对比
图10GameBench性能测试资源占用对比
图11GameBench性能测试LCD刷新帧率对比
图12为实施例不同系统架构的对照示意图。
具体实施方式
本实施例如图12所示,包括如下3个方面:
①框架处理模块
②输入模块
③视图更新模块
④图像绘制模块
⑤声音处理模块
⑥文件输入输出模块
⑦可复用Android游戏框架的导出
⑧性能和开发效率测试分析
如图1所示,本发明的系统架构包括两层,分别为游戏具体实现模块层、可复用框架模块层。
其中,所述游戏具体实现模块层包括世界模块、逻辑处理模块、资源管理模块、界面更新模块,各个模块与传统经典中对应的各个模块一样,所以已为现有技术。
其中,所述可复用框架模块层,如图1、图3所示,具体介绍如下:
①
框架处理模块
(1)框架处理模块AndroidGameActivity继承于Activity,实现Game接口(和具体游戏需求相关的getStartScreen方法除外),维护活动的生命周期,在Activity类的onCreate方法中创建了可复用框架模块层中的其它功能模块的实例化对象并保存对它们的引用,将当前的显示View设置为gameView;
(2)框架处理模块实现了Game接口(和具体游戏需求相关的getStartScreen方法除外),负责协调可复用框架模块层内的各个功能模块的功能调用,某个功能模块如果需要调用其它模块的功能,可以通过调用框架处理模块中的相关get方法来获取对应模块的实例化对象来进行处理。以A功能模块想要调用输入模块的相关功能为例,A功能模块只需通过调用框架处理模块中的getInput方法即可获得输入模块的实例对象;
(3)框架处理模块AndroidGameActivity还负责显示screen的切换,通过调用setScreen方法即可实现。setScreen方法会先暂停前一个screen的显示并释放相关资源,再调用当前screen的初始化和启动方法来切换。因为显示screen部分是和游戏框架无关,所以该方法将会被游戏的逻辑处理模块来调用。
可复用的Android游戏框架类结构图如图3所示。
②
输入模块
本发明针对按键输入和触摸输入这两类输入事件进行设计。从图3“Android游戏框架类结构图”中提取出了和输入模块相关的部分,如图4所示。
(1)输入模块的AndroidInput类继承于Input接口,其中的两个成员keyHandler和touchHandler分别是按键事件的处理类和触摸事件的处理类。在框架处理模块AndroidGameActivity的onCreate方法中将会创建AndroidInput的对象,AndroidInput实例化的时候会自动创建KeyHandler类和TouchHandler类的对象,分别赋值给成员keyHandler和touchHandler。AndroidInput类中的方法最终都会调用KeyHandler类和TouchHandler类中的方法来实现;
(2)TouchHandler实例对象注册了对触摸事件的监听,通过其中onTouch方法的处理,输入模块将会获取到Android系统上报的触摸事件,并将这些触摸事件都保存到列表中;
(3)在Android游戏运行当中,游戏的逻辑处理模块会每隔一段时间就来获取从上一次事件获取到现在全部的触摸事件,并根据收到的触摸事件做出反应。逻辑处理模块通过调用TouchHandler类中的getTouchEvents方法来获取触摸事件,将触摸事件都返回给调用者的同时,getTouchEvents方法会将这次的触摸事件都从触摸事件列表中移除掉。
③
视图更新模块
视图更新模块负责更新游戏的显示界面,将该模块分为两部分:AndroidGameView和Screen。AndroidGameView负责Android平台相关的部分,而Screen用来负责和Android平台无关的界面显示内容更新及逻辑部分的处理。可复用Android游戏框架的视图更新模块的类结构图如图5所示。
(1)AndroidGameView类继承于SurfaceView,并实现了Runnable接口,在它的resume方法中创建了一个新线程,该新线程用来维护游戏的主循环及调用Screen的相关刷新方法来更新游戏界面;
(2)Screen用来负责和Android平台无关的界面显示内容更新及逻辑部分的处理,是和具体的游戏部分相结合的,所以Screen类我们设计为一个抽象类,继承于Screen类的具体显示XXXXScreen不属于可复用的Android游戏框架范围,XXXXScreen需要实现Screen抽象类中的init,update,draw等方法。init方法用于具体screen的初始化操作。update方法会被AndroidGameView中的run方法自动调用到,处理逻辑部分和输入事件的获取处理。draw方法也会被AndroidGameView中的run方法自动调用到,用于具体screen的界面显示内容的更新。
④图像绘制模块
图像绘制模块主要负责图像的具体绘制,包括画点,画线,画矩形,画图片,背景清除等,该模块的类结构图如图6所示。AndroidGraphics中实现的绘制方法最终是通过Canvas类中的绘制方法来实现的。
⑤声音处理模块
(1)声音处理模块主要负责声音的播放。在游戏中主要有两类音源,一类是文件较大且播放时间较长的音源(如背景音乐等),另一类是密集短促的即时音效。针对第一类的音源文件,通过封装调用MediaPlayer类来播放处理;针对第二类的音源文件,通过封装调用SoundPool类来播放处理。声音处理模块的类结构图如图7所示。
(2)播放游戏中的背景音乐可以通过下面的步骤来完成:
第一步,先实例化AndroidMusic对象,在AndroidMusic构造函数中,根据传入的背景音乐名称先初始化;
第二步,通过AndroidMusic的play方法来实现背景音乐的播放。
(3)播放游戏中的即时音效可以通过下面步骤来完成:
第一步,先实例化AndroidSound对象;
第二步,通过AndroidSound中的play方法来实现。
⑥文件输入输出模块
文件输入输出模块主要负责文件的读写,通过AndroidFileIO类中的方法来实现文件的读取和写入功能。文件输入输出模块的类架构图如图8所示。
通过AndroidFileIO中的readFile方法来打开文件,通过AndroidFileIO中的writeFile方法来写入文件。在Android平台上,有一个轻量级的数据存储方式:Preference,可以用来存取一些基本数据类型的数据。
⑦可复用Android游戏框架的导出
在可复用Android游戏框架实现后,我们可以将该框架导出生成aar文件,其他Android游戏开发时只需导入该aar文件即可达到复用该框架的目的。
⑧性能和开发效率测试
为了更好地验证基于可复用框架的Android游戏开发方法和经典Android游戏开发方法之间的优劣,本发明实现了这两种设计方法下《奔跑北极熊》的游戏开发,并在同一台真机中进行性能对比。具体结果如下:
(1)两种方式下实现的游戏性能对比如表1所示。
GameBench应用是专门用来测试游戏性能的工具,在后台运行GameBench的情况下,每个方式实现的游戏各运行3分钟,进行游戏性能对比。从性能对比测试图中,可以看出两种方式下实现的游戏总体来说,总体游戏的响应性能差距不大,但基于可复用框架实现的游戏在资源占用率上更低。
图9中,左侧图片是经典Android游戏开发方法实现的游戏性能测试结果,右侧图片是基于可复用框架开发方法实现的游戏性能测试结果。可以看出,两者的游戏性能测试结果相当。
图10中,左侧图片是经典Android游戏开发方法实现的游戏资源占用测试结果,右侧图片是基于可复用框架开发方法实现的游戏资源占用测试结果。可以看出,基于可复用框架开发方法实现的游戏占用CPU和RAM更少,在资源占用率上占优。
图11中,左侧图片是经典Android游戏开发方法实现的游戏刷新帧率测试结果,右侧图片是基于可复用框架开发方法实现的游戏刷新帧率测试结果。可以看出基于可复用框架开发方法实现的游戏LCD刷新帧率更加稳定。
(2)开发效率对比
经典的Android游戏开发方法,需要开发者自己创建Activity和维护Activity的生命周期,需要开发者自己实现多线程和维护游戏主循环,需要开发者熟悉Android的输入模块,视图更新模块,图像绘制模块,声音处理模块,文件输入输出模块。这些对于开发者,特别是Android开发经验不是很足的开发者来说,需要花费大量的精力去实现。而基于可复用框架的Android游戏开发方法很好地封装了这些模块,降低了开发难度和出错的几率,使开发者可以尽快地专注于游戏本身的设计和实现上,这样可以很大地提升开发效率,缩短开发周期。
本发明分别采用经典Android游戏开发方法和可复用框架开发方法,在游戏《奔跑北极熊》的开发内容和开发时间上做如下对比,如图表2,表3所示。两种方式下实现的Android游戏开发效率对比如表4所示。
基于可复用框架实现的Android游戏开发复杂度更小,开发时间更短,代码量更精简,所开发的系统逻辑也更加清晰,可以更好地应对游戏需求变动的情况,也更方便于后期的游戏维护,减少后期维护的工作量。
从对可复用框架和经典开发两种方法实现的游戏《奔跑北极熊》的性能对比来看,基于可复用框架开发的游戏占用CPU和RAM的资源更少,游戏运行中的LCD刷新帧率更加稳定,整体性能占优。同时,在游戏开发效率的对比上,基于可复用框架的开发方法可以显著地减少开发工作量,并使系统更具扩展性和可移植性,验证了此方法的可行性。
说明书附表
表1
表2
表3
表4
创新点
提出了一种Android系统手机游戏开发的可复用框架构造,从而在提高了开发效率,增强了可扩展性和可移植性。本发明考虑目前的Android手机游戏在设计和开发方法上存在整体开发效率较低,可扩展性和可移植性较差等问题。针对以上问题,本发明研究和设计了一套可复用的Android游戏开发框架,并从性能和效率角度进行了验证,从而有利于游戏的整体开发进程,降低了游戏开发难度,节约了游戏开发时间,保证了游戏的开发质量。
Claims (1)
1.一种基于Android系统可复用框架的手机游戏系统架构,其特征在于,包括游戏具体实现模块层、可复用框架模块层,其中,
所述游戏具体实现模块层包括:世界模块、逻辑处理模块、资源管理模块、界面更新模块,各个模块与传统经典中对应的各个模块一样;
所述可复用框架模块层包括:框架处理模块、输入模块、视图更新模块、图像绘制模块、声音处理模块、文件输入输出模块;
所述框架处理模块的AndroidGameActivity继承于Activity,实现Game接口,维护活动的生命周期,在Activity类的onCreate方法中创建了可复用框架模块层中的其它功能模块的实例化对象并保存对它们的引用,将当前的显示View设置为gameView;所述框架处理模块实现Game接口,负责协调可复用框架模块层内的各个功能模块的功能调用,某个功能模块如果需要调用其它模块的功能,可以通过调用框架处理模块中的相关get方法来获取对应模块的实例化对象来进行处理;所述框架处理模块的AndroidGameActivity负责显示screen的切换,通过调用setScreen方法实现;所述setScreen方法会先暂停前一个screen的显示并释放相关资源,再调用当前screen的初始化和启动方法来切换;
所述输入模块的AndroidInput类继承于Input接口,其中的两个成员keyHandler和touchHandler分别是按键事件的处理类和触摸事件的处理类,在框架处理模块AndroidGameActivity的onCreate方法中将会创建AndroidInput的对象,AndroidInput实例化的时候会自动创建KeyHandler类和TouchHandler类的对象,分别赋值给成员keyHandler和touchHandler;所述AndroidInput类中的方法最终都会调用KeyHandler类和TouchHandler类中的方法来实现;
所述输入模块的TouchHandler实例对象注册了对触摸事件的监听,通过其中onTouch方法的处理,输入模块将会获取到Android系统上报的触摸事件,并将这些触摸事件都保存到列表中;在Android游戏运行当中,游戏的逻辑处理模块会每隔一段时间就来获取从上一次事件获取到现在全部的触摸事件,并根据收到的触摸事件做出反应;逻辑处理模块通过调用TouchHandler类中的getTouchEvents方法来获取触摸事件,将触摸事件都返回给调用者的同时,getTouchEvents方法会将这次的触摸事件都从触摸事件列表中移除掉;
所述的视图更新模块,负责更新游戏的显示界面,将该模块分为两部分:AndroidGameView和Screen;所述AndroidGameView负责Android平台相关的部分,而Screen用来负责和Android平台无关的界面显示内容更新及逻辑部分的处理;
所述AndroidGameView类继承于SurfaceView,并实现了Runnable接口,利用resume方法创建了一个新线程,该新线程用来维护游戏的主循环及调用Screen的相关刷新方法来更新游戏界面;Screen用来负责和Android平台无关的但和具体的游戏部分相结合的界面显示内容更新及逻辑部分的处理;Screen设计为一个抽象类,继承了Screen类,具体显示XXXXScreen;XXXXScreen需要实现Screen抽象类中的init、update、draw方法;所述init方法用于具体screen的初始化操作;所述update方法会被AndroidGameView中的run方法自动调用到,处理逻辑部分和输入事件的获取处理;所述draw方法会被AndroidGameView中的run方法自动调用到,用于具体screen的界面显示内容的更新;
所述图像绘制模块负责图像的具体绘制,包括画点、画线、画矩形、画图片、背景清除,AndroidGraphics中实现的绘制方法最终是通过Canvas类中的绘制方法来实现;
所述声音处理模块负责声音的播放;包括两类音源,一类是文件较大且播放时间较长的音源,另一类是密集短促的即时音效;针对第一类的音源文件,通过封装调用MediaPlayer类来播放处理;针对第二类的音源文件,通过封装调用SoundPool类来播放处理;播放游戏中的背景音乐可以通过下面的步骤来完成:第一步,先实例化AndroidMusic对象,在AndroidMusic构造函数中,根据传入的背景音乐名称先初始化;第二步,通过AndroidMusic的play方法来实现背景音乐的播放;播放游戏中的即时音效可以通过下面步骤来完成:第一步,先实例化AndroidSound对象;第二步,通过AndroidSound中的play方法来实现;
所述文件输入输出模块,负责文件的读写,通过AndroidFileIO类中的方法来实现文件的读取和写入功能;通过AndroidFileIO中的readFile方法来打开文件,通过AndroidFileIO中的writeFile方法来写入文件;数据存储方式采用Preference存取基本数据类型的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710784019.3A CN107544805B (zh) | 2017-09-04 | 2017-09-04 | 基于Android系统可复用框架的手机游戏系统架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710784019.3A CN107544805B (zh) | 2017-09-04 | 2017-09-04 | 基于Android系统可复用框架的手机游戏系统架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544805A CN107544805A (zh) | 2018-01-05 |
CN107544805B true CN107544805B (zh) | 2020-08-14 |
Family
ID=60959069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710784019.3A Expired - Fee Related CN107544805B (zh) | 2017-09-04 | 2017-09-04 | 基于Android系统可复用框架的手机游戏系统架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544805B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762904B (zh) * | 2018-05-23 | 2021-08-20 | 武汉山骁科技有限公司 | 一种可配置的回合制游戏框架实现方法 |
CN111488146A (zh) * | 2019-01-25 | 2020-08-04 | 上海原品网络科技有限公司 | 一种基于安卓系统的游戏开发系统 |
CN113138780B (zh) * | 2021-05-19 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种终端性能评测方法、装置、设备及存储介质 |
CN114626322A (zh) * | 2022-05-12 | 2022-06-14 | 西安芯瞳半导体技术有限公司 | 提升时钟精确级的芯片架构模型、建模方法、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168872A1 (en) * | 2006-01-19 | 2007-07-19 | Raytheon Company | Multi-monitor, multi-JVM java GUI infrastructure with layout via XML |
CN103902274A (zh) * | 2012-12-31 | 2014-07-02 | 青岛海尔软件有限公司 | 智能电视ui开发的平台 |
-
2017
- 2017-09-04 CN CN201710784019.3A patent/CN107544805B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168872A1 (en) * | 2006-01-19 | 2007-07-19 | Raytheon Company | Multi-monitor, multi-JVM java GUI infrastructure with layout via XML |
CN103902274A (zh) * | 2012-12-31 | 2014-07-02 | 青岛海尔软件有限公司 | 智能电视ui开发的平台 |
Non-Patent Citations (1)
Title |
---|
基于Android平台的手机游戏的研究与开发——组字游戏的设计与实现;王丽君;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150215(第02期);第1-75页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107544805A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544805B (zh) | 基于Android系统可复用框架的手机游戏系统架构 | |
US20210105340A1 (en) | Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework | |
Meier | Professional Android 4 application development | |
US20240184438A1 (en) | Interactive content generation method and apparatus, and storage medium and electronic device | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
CN110070496B (zh) | 图像特效的生成方法、装置和硬件装置 | |
CN112767231B (zh) | 图层合成方法和设备 | |
KR102668137B1 (ko) | 태스크들 및 작업 흐름들의 상태 비저장 병렬 프로세싱 방법 및 장치 | |
US10474574B2 (en) | Method and apparatus for system resource management | |
CN110533755A (zh) | 一种场景渲染的方法以及相关装置 | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN110362375A (zh) | 桌面数据的显示方法、装置、设备和存储介质 | |
JP2023525091A (ja) | 画像特殊効果の設定方法、画像識別方法、装置および電子機器 | |
CN117632746A (zh) | 一种插桩处理方法、装置、存储介质及电子设备 | |
CN109840168B (zh) | 软件恢复方法、装置、终端和介质 | |
EP4095687A1 (en) | Cloud computation for applications on media devices | |
CN113515329B (zh) | 特效属性设置方法及装置 | |
CN102081517A (zh) | 用户界面显示方法和用户界面显示装置 | |
Bryksin et al. | Ubiq Mobile+ QReal a Technology for Development of Distributed Mobile Services | |
CN109002361B (zh) | 数据处理方法、分配方法、电子设备、客户端和存储介质 | |
CN1190211A (zh) | 面向对象的多媒体结构 | |
US20070033596A1 (en) | Reconfigurable State Structure Based System Design for Embedded Multimedia System | |
US11705091B2 (en) | Parallelization of GPU composition with DPU topology selection | |
CN117806617B (zh) | 一种用于页面搭建的互动组件及构建方法 | |
Albazaz | Design a mini-operating system for mobile phone. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200814 |
|
CF01 | Termination of patent right due to non-payment of annual fee |