一种移动应用高效迭代Spark框架的制作方法

文档序号:13557326阅读:179来源:国知局
一种移动应用高效迭代Spark框架的制作方法

本发明为使用c#和lua语言开发的移动应用高效迭代框架关键技术转化项目,本发明适用于移动互联网应用开发,本发明基于unity和lua,具有完善的资源管理、静态数据管理、ui界面管理和网络通信机制,同时支持资源热更新等功能,可以通过本发明的代码框架高效开发移动应用。



背景技术:

近年来,我国移动智能终端爆发式增长,截至2016年7月,中国的移动互联网用户数已经达到8.72亿。随着移动互联网的普及,移动互联网应用和游戏应用的开发需求也越来越强烈。目前,移动游戏引擎市场占有率较高的企业主要有cocos2d-x、unity3d、flashair、unreal、corona等。不同的统计方给出的数据略有差异,但总体来讲,行业首选的游戏引擎主要集中在cocos2d-x与unity3d。

unity3d(以下简称unity)是一款跨平台的综合型工具,目前unity引擎的使用人群非常庞大,据苹果公司官方应用商店统计,unity引擎在新游戏的市场占有率高达70%。腾讯公司开发的《王者荣耀》、暴雪公司开发的《炉石传说》、playrix公司开发的《梦幻花园》和rovio公司开发的《愤怒的小鸟2》都是使用unity引擎制作的。

但是这些游戏的开发框架都或多或少的存在一些缺陷,或者只支持资源更新,或者不支持国际化,或者使用原生界面开发框架开发。而我司自助研发的kunlunspark框架是一套轻量级的通用游戏框架,在界面开发框架、资源管理、热更新和国际化方面都做出了重大改进。我司自助研发的kunlunspark框架内提供的功能模块都是经过多个项目开发经验总结出来的,能够有效的提升开发效率,缩短项目的生产时间,可以让初创企业和独立开发者把注意力集中在业务逻辑和产品品质上。



技术实现要素:

本发明为了克服上述技术的不足和缺陷,提供了一种移动应用高效迭代spark框架。

所述迭代框架包括spark界面系统、spark的数据管理模块和spark网络模块,界面系统包括界面组件、界面管理、导出模块这三个模块,在spark的界面管理系统中,界面基类负责管理界面的生命周期,支持界面的各种模式:模态、叠加、弹出、置顶。同时管理界面的打开记录,便于在后续界面返回到前置历史记录;spark的数据管理模块支持多种格式的数据管理和导入,spark数据管理和导入模块将原始的静态数据文件要求文件按照格式定义数据的字段描述,字段类型支持字符串、整数、浮点数、布尔值、数组在内的多种格式;spark网络模块包含了三个子模块:长连接组件、短连接组件和协议组件,spark网络模块还包含了协议组件,协议组件对常用的网络协议,比如json、protobuf做了进一步封装。

所述界面组件模块是界面的基础模块,这个模块提供了界面的组件和组件基类,开发人员可以通过组合这些界面组件来组成图形界面,其中界面基类,即uiview,是spark界面系统的核心部分,它提供了界面所需的主要接口,是其他界面组件的父类,常用界面组件除了上图所列出的图片组件、列表组件之外,还有文本组件、形状组件、选项卡组件、滚动视图组件等组件需要特殊说明的是列表组件除了常规的列表视图之外,还有表格视图、网格视图另外两种形式,通过这几种不同的视图,可以形成丰富的表格、列表界面;

界面管理模块主要实现界面的对象管理、生命周期管理、上下文管理和风格管理功能,界面管理模块还提供了参数控制功能,为界面组件提供多种参数,包括但不限于风格参数,通过改变这些参数可以在不改变代码只改变参数的情况下实现界面的多样化,从而降低了开发成本,提升开发效率;

界面导出模块是spark界面系统的最后一个重要组成部分,也是核心部分之一,它主要为开发人员提供了方便的输出、存储方式,通过简单的操作,将界面的数据持久化存储为预制件和代码两种文件。

spark数据模块将原始静态数据持久化为数据描述文件和数据文件两部分,持久化模块可以根据程序或应用的需要导出成c#或者lua在内的多种格式。

所述spark框架同时提供了对长连接和短连接的支持,目前支持的连接方式包括:tcpsocket、httpsocket、httprequest、httploader,这些模块可以处理长、短连接网络数据的发送和接受行为,同时支持http层面的“push”技术,短连接模块基于http的c#实现,可以处理短连接的http请求和响应,下载模块基于http的下载实现,对各种httpstatus做了封装,可以实现下载功能、存储、断点续传等功能,spark网络模块还包含了协议组件,协议组件对常用的网络协议,比如json、protobuf做了进一步封装,spark网络系统实了现protobuf协议格式的词法解析器和语法分析器,将protobuf协议文件导出成程序结构,每个消息都提供了编码和解码方法,同时将与服务端进行通信的信息导出格式为发送协议的方法,项目开发中只需要调用相应的通信协议方法就可以与服务端进行数据通信。

kunlunspark框架是完全针对unity引擎开发的一套轻量级的通用游戏框架,并没有针对公司内的项目做特殊处理。框架内提供的功能模块都是经过多个项目开发经验总结出来的,能够有效的提升开发效率,缩短项目的生产时间,可以让初创企业和独立开发者把注意力集中在业务逻辑和游戏性上。而且kunlunspark移动应用高效迭代框架基于开发者熟悉的unity和lua语言进行开发,转型难度较低,而且框架本身的超高开发效率,可以帮助企业提升产品开发速度,增强企业竞争力。

使用kunlunspark移动应用高效开发框架技术开发的产品可以节省研发成本,提升用户体验,创造经济效益。

《艾尔战记》于2015年12月在国内上线,2016年5月在东南亚上线,2016年12月韩国上线。凭借kunlunspark移动应用高效开发框架技术带来的开发优势,《艾尔战记》在上线后不断优化版本,改进产品体验,已经历经了13次版本更新。凭着优秀的游戏品质,《艾尔战记》在各国屡获苹果和谷歌的双榜推荐,不仅在国内市场表现优异,而且走出国门,发行了海外版本,其优异的表现在中国台湾地区、韩国、东南亚、欧美市场占据了一席之地。截止2017年4月,《艾尔战记》已在全球范围创造了1.4亿元收入和0.3亿元利润。

《神魔圣域》于2016年8月在国内市场上线,2016年9月在东南亚和韩国上线,历经8次重大版本更新,全球范围创造了3.7亿元收入和近1亿元利润。

通过kunlunspark移动应用高效迭代框架技术可以提升20%-40%开发效率,缩短开发周期,可以更迅速的验证产品思路,节省研发成本。

根据运营提供的数据参考,每次app整包更新都会造成10%-20%的用户流失。而使用kunlunspark移动应用高效迭代框架的热更模块,无需在更新完整的app程序即可更新业务逻辑和增加新功能。并且项目组能够对线上版本快速修复错误的逻辑,避免用户大量流失,造成大额经济损失。同时,在国际化方面的功能支持有利于产品出口和创收,在各个地区都可以进行很好的品牌推广。

使用kunlunspark移动应用高效开发框架,可以提升研发人员水平,提升产品竞争力,提升企业形象,具有广泛的推广价值和意义。kunlunspark移动应用高效迭代框架对界面开发、网络模块开发、资源维护都提供了规范化的接口。通过使用kunlunspark移动应用高效迭代框架,可以培养研发人员的正确的编码习惯和开发习惯,提升研发人员的编码水平和设计水平。而且kunlunspark移动应用高效迭代框架的易用性,使得部分其他工种人员也参与到客户端界面功能的开发中,并且能够快速制作出可用的功能雏形。

kunlunspark移动应用高效迭代框架能够大幅降低移动互联网应用的研发成本,能够有效的降低移动互联网应用开发的进入门槛,让更多的中小企业参与到移动互联网应用开发中来,将自己的创意转化为产品,为“互联网+”的建设添砖加瓦,同时也可以提供更多优秀文化创意和高品质内容,丰富了我国的互联网文化产业和市场,kunlunspark移动应用高效迭代框架还可以有效的帮助产品进行国际化,可以使产品在国际市场上更具有竞争力,可以增强企业竞争力,同时也有利于文化输出,提升我国的文化形象。配合国家在文化领域的建设,同时向国内及海外用户弘扬中国传统文化,促进中国文创产业健康有序发展。由于本项目的创新性,通过本框架可以有效的加快移动互联网应用的开发效率,从而提高业界的技术层次,加速优胜劣汰,体现出集群比较优势和集群竞争优势,有助于提高相关文化创意产业集群的创新能力,从而进一步带动提高文创产业集群的技术水平、经营能力、和管理能力。有利于文化创意产业体系形成良性生态,保持竞争力、生机和活力。

附图说明

附图1是spark界面系统的结构图。

附图2是spark的数据管理模块结构图。

具体实施方式

下面对本发明作进一步详细说明。

实施例1

一种移动应用高效迭代spark框架,其特征在于:所述迭代框架包括spark界面系统、spark的数据管理模块和spark网络模块,界面系统包括界面组件、界面管理、导出模块这三个模块,在spark的界面管理系统中,界面基类负责管理界面的生命周期,支持界面的各种模式:模态、叠加、弹出、置顶。同时管理界面的打开记录,便于在后续界面返回到前置历史记录;spark的数据管理模块支持多种格式的数据管理和导入,spark数据管理和导入模块将原始的静态数据文件要求文件按照格式定义数据的字段描述,字段类型支持字符串、整数、浮点数、布尔值、数组在内的多种格式;spark网络模块包含了三个子模块:长连接组件、短连接组件和协议组件,spark网络模块还包含了协议组件,协议组件对常用的网络协议,比如json、protobuf做了进一步封装。

所述界面组件模块是界面的基础模块,这个模块提供了界面的组件和组件基类,开发人员可以通过组合这些界面组件来组成图形界面,其中界面基类,即uiview,是spark界面系统的核心部分,它提供了界面所需的主要接口,是其他界面组件的父类,常用界面组件除了上图所列出的图片组件、列表组件之外,还有文本组件、形状组件、选项卡组件、滚动视图组件等组件需要特殊说明的是列表组件除了常规的列表视图之外,还有表格视图、网格视图另外两种形式,通过这几种不同的视图,可以形成丰富的表格、列表界面;

界面管理模块主要实现界面的对象管理、生命周期管理、上下文管理和风格管理功能,界面管理模块还提供了参数控制功能,为界面组件提供多种参数,包括但不限于风格参数,通过改变这些参数可以在不改变代码只改变参数的情况下实现界面的多样化,从而降低了开发成本,提升开发效率;

界面导出模块是spark界面系统的最后一个重要组成部分,也是核心部分之一,它主要为开发人员提供了方便的输出、存储方式,通过简单的操作,将界面的数据持久化存储为预制件和代码两种文件。

spark数据模块将原始静态数据持久化为数据描述文件和数据文件两部分,持久化模块可以根据程序或应用的需要导出成c#或者lua在内的多种格式。

spark网络模块包含了三个子模块:长连接组件、短连接组件和协议组件。移动互联网应用对网络的需求有各种场景,对接口的要求有很多,为了简化这一情况我们在网络模块队各种场景做了封装。考虑到公司以及研发部门各项组的实际情况,spark框架同时提供了对长连接和短连接的支持。目前支持的连接方式包括:tcpsocket(tcp长连接)、httpsocket(polling长连接)、httprequest(短连接请求)、httploader(下载类)。这些模块可以处理长、短连接网络数据的发送和接受行为,同时支持http层面的“push”技术。短连接模块基于http的c#实现,可以处理短连接的http请求和响应。下载模块基于http的下载实现,对各种httpstatus做了封装,可以实现下载功能、存储、断点续传等功能。

spark网络模块还包含了协议组件,协议组件对常用的网络协议,比如json、protobuf做了进一步封装。spark网络系统实了现protobuf协议格式的词法解析器和语法分析器,将protobuf协议文件导出成程序结构,每个消息都提供了编码和解码方法,同时将与服务端进行通信的信息导出格式为发送协议的方法,项目开发中只需要调用相应的通信协议方法就可以与服务端进行数据通信。

spark的界面系统根据移动互联网应用的界面特点对界面的生命周期重新进行了设计。我们设计时结合之前移动互联网应用开发的经验,制定spark的界面生命周期:创建、打开、焦点改变、关闭、销毁、运行中。通过本系统的界面生命周期,移动互联网应用的开发者可以方便的进行界面管理,并且可以实现界面的多样性。

在spark的界面管理系统中,界面基类负责管理界面的生命周期,支持界面的各种模式:模态、叠加、弹出、置顶。同时管理界面的打开记录,便于在后续界面返回到前置历史记录。

uiviewroot主要提供的方法有:打开界面、关闭界面、退出界面等接口。

通过界面导出简化工作量

常规开发流程在完成界面设计后,需要在代码中声明界面对象,以便获取界面对象,然后才能进行界面事件绑定,对界面添加控制逻辑。在这个开发过程中的绑定事件操作、编写操作逻辑这2个步骤是重复工作量,开发人员往往会在这2个步骤花费很大的时间。spark界面系统对界面开发环节做了优化,在代码中获取界面对象和绑定界面事件都会由spark框架的spark界面系统自动帮完成,开发人员只需将剩余的流程完成,从而达到了减少工作量,减少开发成本,提升开发效率的目的。

界面布局使用unity自身的编辑器完成,通过spark提供的界面导出工具导出界面为编辑时预制件、运行时预制件和界面布局代码。编辑时预制件用于界面的后续修改,运行时预制件在执行时中使用,界面布局代码是界面呈现的基础。spark界面导出系统在导出界面时会自动将界面中的所有组件,导出定义和事件到代码中。这样后续对该界面编写控制逻辑时,可直接调用,提高了生产力。

统一的资源管理接口

传统的unity项目中有两种资源管理方式:直接获资源和assetbundle方式的资源。这两种方式使用了不同的应用程序变成接口和管理机制,分别应用在项目开发的不同阶段:产品开发初期使用直接获取资源的方式,产品上线后资源更新需要使用assetbundle。直接使用原生的资源管理会导致以下几个问题:1)不同的应用程序接口,导致加载资源代码逻辑不统一;2)assetbundle文件之间存在依赖关系,需要在加载的时候按照依赖依次加载,增加了资源加载逻辑的复杂性。

spark框架中提供了统一的资源管理接口,通过统一的加载函数获取的资源。避免了上述问题。spark的资源管理模块的实现机制分成两部分:

1)资源文件压缩模块:实现了资源打包工具,将资源分别打包成不同的资源包文件,同时记录各资源文件所属的资源包信息,以及资源文件之间的依赖关系,并将这些配置信息存储在文件中。

2)资源加载模块:资源管加载模块通过上述配置信息,在加载资源时可以做出不同的加载策略:如果资源不在资源包文件中,直接加载文件;如果资源在资源包中,依次加载该资源包依赖的资源文件,然后再从资源包中加载资源。

spark的资源加载模块对上层提供了多种资源对象加载接口,对于不同类型的资源都可用统一的接口进行加载,不针对资源类型在调用方式上做区分。

基于上述资源管理架构提供资源热更新支持

移动互联网时代,各种应用场景和业务逻辑变化都很快,对于外界的需求我们需要做到及时响应。但是对用户来讲,更新我们的应用需要重新下载客户端,对用户和服务器来讲都是一种负担。所以我们开发了热更新模块,可以做到不需要重新下载整个应用就可以做到更新业务逻辑。

spark的热更新模块包括热更新打包工具、热更新部署工具和热更新管理组件。热更新打包工具主要负责对热更新的文件打包、压缩处理,同时会根据打包和压缩情况对热更新文件列表生成索引文件。spark热更新模块的压缩功能支持gzip、lzma、zlib、brotli等多种主流压缩算法,应用层可以根据实际需要选择合适的压缩算法。

spark热更新模块还实现了一种算法,会自动根据热更新文件之间的依赖关系对文件进行分组打包,这样减少热更新文件的依赖和耦合,能够有效的减少应用运行时内存消耗。热更新模块还支持通过配置文件生产热更包的功能,应用开发人员可以通过这种方式实现快速构建热更文件的功能。

热更新部署工具主要提供自动上传热更服务器的功能。热更新部署工具的上传功能还支持增量上传,并且支持上传、分发到不同的cdn服务器。同时,热更新不熟工具并且提供资源列表检查的功能,可以自动对比本地文件列表及文件详情和服务器文件列表及详情。

热更新管理组件提供了热更新文件版本管理功能,可以自动对比客户端本地文件列表和服务器文件列表,只下载服务器存在但是本地不存在的文件。这种方式有效的减少了用户的流量消耗,也减少了服务器的流量开销,达到了节省成本的目的。热更新管理组件还会根据用户的网络状况,比如无线网络、移动蜂窝网络、飞行模式等各种情况,做了特殊处理。对于无法正确解析域名的情况,spark也提供了默认的缺省地址支持。

国际化模块和多语言支持

spark的国际化模块支持一份代码同时支持多语言,除了包含应用内部界面、代码和资源的管理之外,还支持语言设定,支持语言切换功能。

spark国际化模块要求应用层提供语言包文件作为多语言文字的资源文件。语言包文件按照key、value的形式存储文本,spark的国际化模块会根据用户选择的语言自动加载对应语言的语言包文件以显示正确的语言。

应用中用到的图片字会根据语言合并为不同的图集,spark的国际化模块会根据用户语言选择对应语言的图集。

同时,spark的国际化模块还提供了对比和合并工具,开发者可以通过这些工具对语言包进行开发和维护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1