基于Lua脚本技术的多终端共享底层框架生成、应用方法技术

技术编号:18444522 阅读:19 留言:0更新日期:2018-07-14 10:13
本发明专利技术涉及基于Lua脚本技术的多终端共享底层框架生成、应用方法,与现有技术相比解决了多终端无法共享底层框架的缺陷。本发明专利技术包括以下步骤:Lua引擎初始化;UI层的建立;Lua层的建立;UI层与Lua层的关联;数据库层与Lua层的关联。本发明专利技术将多个平台不同的开发方式在底层进行融合,使得各个平台只关注UI层的实现,而无需关注底层框架的形成,大幅度降低各个平台的开发时间和复杂度,提升了迭代的速度。

Generation and application method of multi terminal shared bottom framework based on Lua script technology

The invention relates to the multi terminal sharing underlying framework generation and application method based on Lua Scripting Technology. Compared with the existing technology, it solves the defect that the multi terminal can not share the underlying framework. The invention comprises the following steps: initialization of Lua engine; establishment of UI layer; establishment of Lua layer; correlation between UI layer and Lua layer; and correlation between database layer and Lua layer. The invention integrates the different development methods of multiple platforms at the bottom, so that each platform is only concerned with the implementation of the UI layer, without paying attention to the formation of the underlying framework, greatly reducing the development time and complexity of each platform, and improving the speed of the iteration.

【技术实现步骤摘要】
基于Lua脚本技术的多终端共享底层框架生成、应用方法
本专利技术涉及数据处理
,具体来说是基于Lua脚本技术的多终端共享底层框架生成、应用方法。
技术介绍
随着互联网技术的发展,多端协作的概念越来越被重视,特别是移动互联网的发展,促使软件服务商在开发产品时都需要考虑开发多个平台和终端的产品,比如WEB网站、手机APP、PC客户端等。目前,对于不同的终端都需要采用对应的编程语言实现,从底层数据处理到业务交互,每个端都需要编写一整套的代码。而事实上,同一款产品的数据库结构、底层业务逻辑都基本相同。特别是,近年来互联网的火爆带动了软件的不断发展,现有的开发方式开发起来无疑会做重复工作,并且在后期的软件维护中也继续需要针对不同平台做维护,导致后期维护成本较高。因此,如何能设计一种能够让多个终端共用的一套底层框架已经成为急需解决的技术问题。
技术实现思路
本专利技术的目的是为了解决现有技术中多终端无法共享底层框架的缺陷,提供一种基于Lua脚本技术的多终端共享底层框架生成、应用方法来解决上述问题。为了实现上述目的,本专利技术的技术方案如下:基于Lua脚本技术的多终端共享底层框架生成方法,包括以下步骤:11)Lua引擎初始化,将脚本解密加载到应用内存;12)UI层的建立,设定UI层,用于多终端与用户的交互处理;13)Lua层的建立,Lua层用于产生具体的业务逻辑供各个终端使用的Lua脚本,逻辑内容包括业务内容以及对数据库的操作,数据库操作为Lua产生SQL语句,由各个终端连接数据库执行该SQL,并将执行结果返回给Lua;14)UI层与Lua层的关联,UI层与Lua层建立数据类型和数据结构的关联;15)数据库层与Lua层的关联,数据库层与Lua层建立数据类型和数据结构的关联。所述的Lua引擎初始化包括以下步骤:21)获取本地Lua层程序包的版本号LocalVersion,通过网络请求获得远程最新版本号RemoteVersion;22)当RemoteVersion大于LocalVersion,下载远程程序包覆盖本地程序包,修改本地Lua层程序包版本号LocalVersion的值为远程最新版本号RemoteVersion;23)获取本地Lua层程序包;231)检查文件是否完整,包括文件字节数、文件MD5值,防止使用不合法的程序包;232)文件不完整,提示异常,退出程序;文件完整,加载文件流到内存;24)使用DES解密算法,对加载到内存的文件流进行解密;25)将解密后的内容装载到Lua系统引擎,待后续业务处理调用。所述UI层的建立步骤为UI控件使用各端原生控件或封装控件,控件布局及事件响应处理的逻辑使用LUA进行管理;其基本定义如下:布局的基本单元为页面,一个页面根为一个层,层中包含多个元素,元素为控件或层;页面布局步骤如下:31)若页面根层没有包含内容,绘制一个空白页面;;32)若页面根层包含元素,则遍历绘制所有元素;如果层是横向布局,则层中的元素按照横向依次绘制,如果层是纵向布局,则层中的元素按照纵向依次绘制;321)如果元素是控件,则绘制相应控件;如果控件是标题栏,绘制标题栏,设置标题内容、字体样式;如果是文本框,绘制文本框,设置输入内容格式、长度限制;如果是按钮,绘制按钮,设置按钮样式;如果控件有事件定义,则在绘制的控件上绑定响应的事件处理逻辑,事件包括点击、滑动、touch、内容变化;322)如果元素是层,返回32)步骤递归处理。所述Lua层的建立包括页面布局的定义管理、业务逻辑的处理和Lua程序包打包;其中,页面布局的定义管理包括以下步骤:41)在页面根层定义一个空白层;42)定义层的布局方向,如果层是横向布局,则层中的元素按照横向依次绘制,如果层是纵向布局,则层中的元素按照纵向依次绘制;若包含控件,则定义控件,进行标题栏、文本框和按钮的定义;43)如果控件需要绑定事件,则需定义的控件上绑定响应的事件处理逻辑,其中事件包括点击、滑动、touch、内容变化;43)如果层中包含层,返回42)递归处理继续定义。所述UI层与Lua层的关联包括以下步骤:51)利用Lua引擎将Lua脚本实现的函数压入堆栈中;52)利用UI层提供的Lua文件名和方法名调用堆栈中的业务逻辑函数,将执行结果返回给UI层;53)进行参数类型的转换,各平台UI层传递给Lua层的参数,统一转换JSON格式字符串,利用JSON4LUA转换成Lua的table类型供Lua层使用,Lua执行的结果参数,通过JSON4LUA转换成JSON字符串返回给UI层。所述数据库层与Lua层的关联包括以下步骤:61)Lua层产生SQL语句,传递给各平台数据库层;62)各平台数据库层使用原生操作数据库的方式,执行来自Lua层的SQL,然后将执行结果返回给Lua层;63)Lua与数据库的联接通过将各个平台原生语言实现的操作数据库的扩展函数注册到Lua解释器中供Lua进行调用。基于Lua脚本技术的多终端共享底层框架的应用方法,包括以下步骤:71)终端引入Lua库并进行配置,将Lua库的源码包放到对应工程目录下;72)实现Lua引擎,其具体步骤如下:721)建立Lua解释器对象,把所有Lua标准类库加载到该解释器中;722)将各个平台语言实现的扩展函数注册到解释器中,包括操作数据库、日志打印;723)编写执行调用Lua方法的通用方法,使其能够正确传递界面参数以及获取Lua的返回参数;73)JSON的解析和生成,针对Lua的基本数据类型进行与JSON格式的字符串的转换,采用CraigMason-Jones实现的JSON4Lua方案,其具体步骤如下:731)利用stringjson.encode控件将lua数据解析成JSON字符串;732)利用lua_objectjson.decode控件将JSON字符串转换成Lua对应的数据;74)将实现了业务逻辑的Lua脚本文件引入到项目中,将事先加密好的Lua脚本文件放到代码工程中,各个平台在启动程序的地方以读取工程内部文件的方式加载Lua脚本文件,其具体步骤如下:741)解密Lua文件,利用流读取lua脚本的内容,然后将其赋值给字符串变量,实现对Lua脚本的读取,并且放入Lua调用表中;742)UI层调用Lua,用一个变量记录Lua脚本的文件名和方法名,文件名和方法名以成对的形式存储;当UI层需要调用Lua方法时,根据提供的文件名和方法名调用对应的lua脚本方法,执行过程中使用注册的日志打印方法进行调试。所述业务逻辑的处理包括以下步骤:81)业务方法的定义,根据具体的业务需求及前端UI交互的需要,定义方法的功能、传入参数及返回结果;82)SQL语句组装,根据定义的参数及业务逻辑对参数进行逻辑运算或处理,结合数据库设计及数据存储的逻辑,使用标准SQL语法,拼写所需的数据库查询、新增或更新所需的SQL语句;83)执行SQL,根据82)步骤生成的SQL语句,调用各端的数据库连接接口,执行相应的SQL,取得相应的数据库操作结果;84)对数据库操作的结果再根据业务逻辑需要,组织数据结构为81)业务方法的定义步骤中定义的返回结果定义的要求;85)返回操作结果给UI层。所述Lua程序包打包包括以下步骤:91)代码混淆处理,对代码进行替换关键字及函数移本文档来自技高网...

【技术保护点】
1.基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,包括以下步骤:11)Lua引擎初始化,将脚本解密加载到应用内存;12)UI层的建立,设定UI层,用于多终端与用户的交互处理;13)Lua层的建立,Lua层用于产生具体的业务逻辑供各个终端使用的Lua脚本,逻辑内容包括业务内容以及对数据库的操作,数据库操作为Lua产生SQL语句,由各个终端连接数据库执行该SQL,并将执行结果返回给Lua;14)UI层与Lua层的关联,UI层与Lua层建立数据类型和数据结构的关联;15)数据库层与Lua层的关联,数据库层与Lua层建立数据类型和数据结构的关联。

【技术特征摘要】
1.基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,包括以下步骤:11)Lua引擎初始化,将脚本解密加载到应用内存;12)UI层的建立,设定UI层,用于多终端与用户的交互处理;13)Lua层的建立,Lua层用于产生具体的业务逻辑供各个终端使用的Lua脚本,逻辑内容包括业务内容以及对数据库的操作,数据库操作为Lua产生SQL语句,由各个终端连接数据库执行该SQL,并将执行结果返回给Lua;14)UI层与Lua层的关联,UI层与Lua层建立数据类型和数据结构的关联;15)数据库层与Lua层的关联,数据库层与Lua层建立数据类型和数据结构的关联。2.根据权利要求1所述的基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,所述的Lua引擎初始化包括以下步骤:21)获取本地Lua层程序包的版本号LocalVersion,通过网络请求获得远程最新版本号RemoteVersion;22)当RemoteVersion大于LocalVersion,下载远程程序包覆盖本地程序包,修改本地Lua层程序包版本号LocalVersion的值为远程最新版本号RemoteVersion;23)获取本地Lua层程序包;231)检查文件是否完整,包括文件字节数、文件MD5值,防止使用不合法的程序包;232)文件不完整,提示异常,退出程序;文件完整,加载文件流到内存;24)使用DES解密算法,对加载到内存的文件流进行解密;25)将解密后的内容装载到Lua系统引擎,待后续业务处理调用。3.根据权利要求1所述的基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,所述UI层的建立步骤为UI控件使用各端原生控件或封装控件,控件布局及事件响应处理的逻辑使用LUA进行管理;其基本定义如下:布局的基本单元为页面,一个页面根为一个层,层中包含多个元素,元素为控件或层;页面布局步骤如下:31)若页面根层没有包含内容,绘制一个空白页面;;32)若页面根层包含元素,则遍历绘制所有元素;如果层是横向布局,则层中的元素按照横向依次绘制,如果层是纵向布局,则层中的元素按照纵向依次绘制;321)如果元素是控件,则绘制相应控件;如果控件是标题栏,绘制标题栏,设置标题内容、字体样式;如果是文本框,绘制文本框,设置输入内容格式、长度限制;如果是按钮,绘制按钮,设置按钮样式;如果控件有事件定义,则在绘制的控件上绑定响应的事件处理逻辑,事件包括点击、滑动、touch、内容变化;322)如果元素是层,返回32)步骤递归处理。4.根据权利要求1所述的基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,所述Lua层的建立包括页面布局的定义管理、业务逻辑的处理和Lua程序包打包;其中,页面布局的定义管理包括以下步骤:41)在页面根层定义一个空白层;42)定义层的布局方向,如果层是横向布局,则层中的元素按照横向依次绘制,如果层是纵向布局,则层中的元素按照纵向依次绘制;若包含控件,则定义控件,进行标题栏、文本框和按钮的定义;43)如果控件需要绑定事件,则需定义的控件上绑定响应的事件处理逻辑,其中事件包括点击、滑动、touch、内容变化;43)如果层中包含层,返回42)递归处理继续定义。5.根据权利要求1所述的基于Lua脚本技术的多终端共享底层框架生成方法,其特征在于,所述UI层与Lua层的关联包括以下步骤:51)利用Lua引擎将Lua脚本实现的函数压入堆栈中;52)利用UI层提供的Lua文件名和方法名调用堆栈中的业务逻辑函数,将执行结果返回给UI层;53)进...

【专利技术属性】
技术研发人员:李健王胜史强
申请(专利权)人:合肥盈云信息科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1