CN106951288B - 一种热更资源的开发、应用方法及装置 - Google Patents
一种热更资源的开发、应用方法及装置 Download PDFInfo
- Publication number
- CN106951288B CN106951288B CN201710166724.7A CN201710166724A CN106951288B CN 106951288 B CN106951288 B CN 106951288B CN 201710166724 A CN201710166724 A CN 201710166724A CN 106951288 B CN106951288 B CN 106951288B
- Authority
- CN
- China
- Prior art keywords
- lua
- function
- language
- script
- target application
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种热更资源的开发方法、装置及热更资源的应用方法、装置,热更资源的开发方法包括:基于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定目标应用的热更界面;基于视图层与热更资源开发框架的控制器层的关联关系,确定与目标应用的热更界面关联的Lua控制脚本;基于控制器层与热更资源开发框架的模型层的关联关系,确定与Lua控制脚本关联的数据处理脚本;将确定的目标应用的热更界面、与目标应用的热更界面关联的Lua控制脚本和与Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为目标应用的热更资源。在本申请中,通过以上方式缩短了热更资源的整体开发时间,实现了热更资源的高效开发。
Description
技术领域
本申请涉及资源的开发、应用领域,特别涉及一种热更资源的开发、应用方法及装置。
背景技术
随着网络的发展和普及,网络应用(如网络游戏)也得到迅速发展。在网络应用发布之后,及时发现和解决网络应用运营过程中出现的问题,是运营企业着重关心的问题。
目前,解决网络应用运营过程中出现的问题的有效手段为:进行网络应用更新。而在网络应用更新时,若网络应用安装包较大且将网络应用全部资源重新打包发布,会造成运行客户端的下载量大,导致更新速度慢。为了提高更新速度,能够减少下载量的热更新(简称为:热更)技术应用而生。热更技术即只更新网络应用中的部分数据,不必将网络应用全部资源重新打包发布,从而实现以较少的下载量完成目标网络应用的更新。
为了使网络应用支持热更,目前可以采用的方式为:实现网络应用中的资源可以被热更,但是如何高效的开发热更资源成为问题。
发明内容
为解决上述技术问题,本申请实施例提供一种热更资源的开发、应用方法及装置,以达到缩短热更资源的整体开发时间,实现热更资源的高效开发的目的,技术方案如下:
一种热更资源的开发方法,包括:
基于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面;
基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本;
基于所述控制器层与所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本;
将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源。
一种热更资源的应用方法,包括:
获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个;
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联;
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本;
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本;
利用获取到的待热更资源对目标应用进行更新。
一种热更资源的开发装置,包括:
第一开发模块,用于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面;
第二开发模块,用于基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本;
第三开发模块,用于基于所述控制器层和所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本;
确定模块,用于将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源。
一种热更资源的应用装置,包括:
获取模块,用于获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个;
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联;
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本;
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本;
更新模块,用于利用获取到的待热更资源对目标应用进行更新。
与现有技术相比,本申请的有益效果为:
在本申请中,首先按照目标应用的架构的开发模式,构建热更资源开发框架,然后基于构建的热更资源开发框架,开发热更资源。
由于热更资源开发框架为按照目标应用的架构的开发模式,构建得到的框架,因此热更资源开发框架为开发人员所熟悉的框架结构,开发人员不需要重新了解热更资源开发框架的架构内容,可以直接基于热更资源开发框架进行热更资源的开发,避免了前期学习框架的过程,从而缩短了热更资源的整体开发时间,实现了热更资源的高效开发。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的热更资源的开发***的结构框图;
图2是本发明实施例提供的热更资源的开发方法的一种流程图;
图3是本发明实施例提供的热更资源开发框架的一种结构示意图;
图4是本发明实施例提供的热更资源的开发方法的一种子流程图;
图5是本发明实施例提供的自定义关联脚本与Lua控制脚本的映射关系示意图;
图6是本发明实施例提供的热更资源的开发方法的另一种子流程图;
图7是本发明实施例提供的热更资源的开发方法的另一种流程图;
图8是本发明实施例提供的热更资源的应用***的结构框图;
图9是本发明实施例提供的热更资源的应用方法的一种流程图;
图10是本发明实施例提供的热更资源的应用方法的另一种流程图;
图11是Lua控制脚本的执行信令图;
图12是本发明实施例提供的热更资源的应用方法的再一种流程图;
图13是本发明实施例提供的热更资源的开发装置的一种逻辑结构示意图;
图14是本发明实施例提供的热更资源的开发装置的另一种逻辑结构示意图;
图15是本发明实施例提供的热更资源的开发设备的硬件结构图;
图16是本发明实施例提供的热更资源的应用装置的一种逻辑结构示意图;
图17是本发明实施例提供的热更资源的应用装置的另一种逻辑结构示意图;
图18是本发明实施例提供的热更资源的应用装置的再一种逻辑结构示意图;
图19是本发明实施例提供的热更资源的应用设备的硬件结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图1为本发明实施例提供的热更资源的开发***的结构框图,参照图1,该热更资源的开发***可以包括:开发设备11和测试设备12。
开发设备11,用于完成对目标应用的开发,具体涉及目标应用的热更资源的开发。开发设备11在完成对目标应用的热更资源的开发后,使目标应用支持热更,从而实现在目标应用的版本变更后,保证目标应用运行的终端以最少的下载量完成目标应用的更新。
开发设备11可以由单台服务器实现,也可以是多台服务器组成的服务器群组。
测试设备12,用于对开发设备11开发完成的目标应用进行运行测试,具体用于对开发设备11开发完成的目标应用的热更方式进行运行测试。测试设备12首先需要下载原始版本的目标应用,运行原始版本的目标应用,在目标应用的热更资源部分发生改变,其他资源部分未变更的情况下,测试设备12获取目标应用的热更资源,将目标应用的当前热更资源替换为获取到的目标应用的热更资源,重新运行目标应用,依据运行结果进行开发设备11完成的热更资源的评估。
开发设备11和测试设备12可以为各自独立的设备,当然,两者也可以集成到一个设备上,同时完成开发和测试。
由于Lua代码能够轻松实现热更,因此若要实现目标应用支持热更,采用的实现方式可以为:将目标应用需要热更的内容采用Lua代码实现。其中,Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio deJaneiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes和LuizHenrique de Figueiredo所组成并于1993年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作***和平台上都可以编译,运行。
而将目标应用需要热更的内容采用Lua代码实现,首先需要构建热更资源开发框架(如,Lua框架)。基于构建的热更资源开发框架,采用Lua语言编写目标应用需要热更的内容。
在构建热更资源开发框架之后,可以在后续进行热更资源的开发时,直接利用已构建的热更资源开发框架,不需要在每次进行热更资源的开发时,均重新构建一次热更资源开发框架。
当然,在开发项目有框架重新构建需求时,可以对已构建的热更资源开发框架进行调整或重新设计热更资源开发框架,得到重新构建的热更资源开发框架,作为热更资源开发的开发引导支撑。
在本方法实施例中,优选的,采用构建热更资源开发框架的方式为:按照目标应用的架构的开发模式,构建热更资源开发框架。构建出的热更资源开发框架为开发人员熟悉的架构,便捷开发目标应用需要热更的内容。
在本方法实施例中,构建出的热更资源开发框架的框架模式为MVC(模型(model)-视图(view)-控制器(controller))。采用MVC作为热更资源开发框架的框架模式,可以实现基于热更资源开发框架开发出的程序的业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
构建出的热更资源开发框架包括:模型层、视图层和控制器层,所述视图层通过自定义关联脚本与所述控制器层关联,所述控制器层与所述模型层关联。
目标应用的开发环境及运行环境可能并不支持Lua代码的调用,为了规避目标应用的开发环境及运行环境不支持Lua代码的调用的问题,因此,在视图层上关联自定义关联脚本,自定义关联脚本为与目标应用的开发环境及运行环境适配的脚本,目标应用的开发环境及运行环境支持自定义关联脚本的调用,再将自定义关联脚本与控制器层关联,保证首先调用自定义关联脚本,再由自定义关联脚本调用控制器层的Lua脚本,再由控制器层的Lua脚本执行模型层的Lua脚本,从而实现目标应用的开发环境及运行环境间接支持Lua代码的调用。
站在图1示出的热更资源的开发***中的开发设备的角度,对热更资源的开发方法进行阐述,请参见图2,其示出了本发明实施例提供的热更资源的开发方法的一种流程图,可以包括以下步骤:
步骤S101:基于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面。
步骤S102:基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本。
视图层与控制器层的关联关系具体指视图层与控制器层之间的函数调用关系。其中,视图层与控制器层之间的函数调用关系更具体的为:视图层中的每个界面均会绑定一个游戏开发工具的基类脚本,基类脚本将所有操作转交给控制器层处理。
步骤S103:基于所述控制器层与所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本。
控制器层与模型层的关联关系具体是指控制器层与模型层的函数调用关系。其中,控制器层与模型层的函数调用关系更具体的为:控制器层会调用模型层的相关函数来实现某些功能,模型层会将一些事件(如数据刷新、网络回复等)下发给控制器层,以通知控制器层进行下一步操作。
数据处理脚本用于对目标应用的热更界面关联的数据进行交互处理,具体的,数据处理脚本通过Lua控制脚本与目标应用的热更界面建立联系,在与目标应用的热更界面建立联系后,对目标应用的热更界面管理的数据进行交互处理。
步骤S104:将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源。
因热更资源开发任务的不同,所确定的热更资源有所不同,如:在热更资源开发任务为仅进行目标应用的热更界面的显示元素本身的开发时,仅确定目标应用的热更界面即可;在热更资源开发任务为进行目标应用的热更界面的显示元素本身的开发及目标应用的热更界面的显示元素的显示处理方式的开发时,则确定目标应用的热更界面和Lua控制脚本。
根据热更资源的开发任务,利用所述热更资源开发框架,确定目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个,所确定出的目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个即为目标应用的热更资源。
需要说明的是,热更资源开发任务与热更资源更新任务相对应,即目标应用需要更新的内容对应需要开发的热更资源的内容。具体的,需要根据目标应用需要更新的内容(即热更资源更新任务)来确定需要开发的热更资源的内容(即热更资源开发任务)。
在本申请中,首先按照目标应用的架构的开发模式,构建热更资源开发框架,然后基于构建的热更资源开发框架,开发热更资源。
由于热更资源开发框架为按照目标应用的架构的开发模式,构建得到的框架,因此热更资源开发框架为开发人员所熟悉的框架结构,开发人员不需要重新了解热更资源开发框架的架构内容,可以直接基于热更资源开发框架进行热更资源的开发,避免了前期学习框架的过程,从而缩短了热更资源的整体开发时间,实现热更资源的高效开发。
在本实施例中,构建出的热更资源开发框架具体可以但不局限于为图3示出的框架,如图3所示,视图层为界面Prefab,控制器层为xxxPanel和UIPanel,模型层为LuaSysMgr、xxxSys、IInitializealble、IUpdateable等为公共数据处理类。界面Prefab为目标应用的热更资源的整体资源,LuaBehaviour为自定义关联脚本,xxxPanel为与自定义关联脚本关联的Lua控制脚本,UIPanel为公共Lua控制类,xxxSys为数据处理脚本,LuaSysMgr为xxxSys的管理脚本,IInitializealble、IUpdateable等为公共数据处理类,LuaEnent为事件。
LuaBehaviour挂载在界面Prefab上,LuaBehaviour与xxxPanel关联,实现界面Prefab挂载xxxPanel。xxxPanel为Lua代码,可以被热更,从而实现界面Prefab可以被热更。
xxxPanel继承自UIPanel,xxxPanel可以通过xxxSys定义的接口函数与xxxSys关联,当然xxxPanel也可以通过LuaEnent与xxxSys关联。
xxxSys继承自IInitializealble、IUpdateable等为公共数据处理类。
在本实施例中,视图层具体通过自定义关联脚本与控制器层进行关联。且在图3示出的热更资源开发框架的基础上,自定义关联脚本具体可以包括:所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数。
非Lua行为函数即采用非Lua语言(如C#语言)编写的行为函数,Lua行为函数即采用Lua语言编写的行为函数。
在自定义关联脚本具体包括:所述目标应用的热更界面对应的所有非Lua行为函数的情况下,基于所述视图层与所述控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本的具体过程可以参见图4,可以包括以下步骤:
步骤S11:基于所述视图层与所述控制器层的关联关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组。
自定义关联脚本中的各个非Lua行为函数及自定义关联脚本中的各个非Lua行为函数各自映射出的Lua行为函数可以参见图5,如图5所示,自定义关联脚本中的各个非Lua行为函数各自均需要映射出一个Lua行为函数。
虽然,Lua行为函数组中为从自定义关联脚本映射得到的所有Lua行为函数,但是,可以根据具体的开发需求,对Lua行为函数组中的各个Lua行为函数设置行为开关,将当前开发需求所需要使用的Lua行为函数的行为开关设置为开,不需要使用的Lua行为函数的行为开关设置为关。
行为开关设置为开的Lua行为函数可以被执行,行为开关设置为关的Lua行为函数不被执行。
步骤S12:分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本。
待使用Lua行为函数即行为开关设置为开的Lua行为函数。
在本方法实施例中,分别编写所述Lua行为函数组中的各个待使用Lua行为函数的具体过程可以为:
编写所述Lua行为函数组中的各个待使用Lua行为函数中用于调用C语言导出函数的C语言代码交互函数;
所述C语言导出函数,用于在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
其中,C语言具体可以但不局限于为C#。下文描述中的C语言同样可以但不局限于为C#。
由于目标应用中的热更资源是由Lua代码开发实现的,而目标应用中的非热更资源是由非Lua代码(如C语言代码)开发实现的,因此在目标应用的热更资源需要与非热更资源进行交互时,为了保证Lua代码能够与C语言代码进行交互,通过C语言代码交互函数来实现Lua代码与C语言代码的交互。
在本方法实施例中,编写出的C语言代码交互函数用于调用C语言导出函数,通过C语言导出函数进行C语言函数的调用。由于C语言导出函数为导出的共用接口,在对不同的C语言函数进行调用时,不再需要对每个C语言函数进行导出再调用,因此减少了对每个C语言函数进行导出的代码空间消耗。
其中,以C#为例,C语言导出函数的编写原理如下:
首先,采用自定义的C#数据类型描述规则,对需要进行调用的C#函数进行描述,并以">"分隔(前面为返回值,后面为参数)函数调用返回值与参数,得到用于表示C#函数的字符串。
自定义的C#数据类型描述规则如表1所示:
表1
参数 | 说明 |
b | 对应C#类型SByte、Boolean(sbyte,bool) |
B | 对应C#类型Byte(byte) |
u | 对应C#类型Int16(short) |
U | 对应C#类型UInt16(ushort) |
i | 对应C#类型Int32(int) |
I | 对应C#类型UInt32(uint) |
l | 对应C#类型Int64(long) |
L | 对应C#类型UInt64(ulong) |
f | 对应C#类型Single(float) |
d | 对应C#类型Double(double) |
s | 对应C#类型String(string) |
o | 对应C#类型Object(object) |
例如,采用自定义的C#数据类型描述规则,对C#函数void func(int a,int b)进行描述,并以″>″分隔函数调用返回值与参数,得到表示void func(int a,int b)的字符串为″>ii″。
其次,通过uLua提供的导出方法将用于表示C#函数的字符串对应的C#函数导出,得到可在Lua控制脚本中执行的C#导出函数。
例如,上述void func(int a,int b)对应的C#导出函数为:CSharpFunctionWraper.CallFunc(1,″>ii″,arg0,arg1)。数字“1”是在导出时生成的C#函数标识(即id值),方便在C#代码空间中查找C#函数;″>ii″为C#函数描述,arg0,arg1为C#函数描述对应的参数。
每个C#导出函数均以C函数标识(即id值)与C#导出函数的对应的方式,同时存储在C#代码空间中。
以C#导出函数为:CSharpFunctionWraper.CallFunc(1,″>ii″,arg0,arg1)为例,对C#代码交互函数进行说明,C#代码交互函数为
function func(arg0,arg1)
CSharpFunctionWraper.CallFunc(1,″>ii″,arg0,arg1)
end
以上述C#代码交互函数为例,对在Lua控制脚本中调用C#函数的过程进行说明,具体过程为:在Lua控制脚本中执行C#代码交互函数即function func(arg0,arg1),调用C#导出函数CSharpFunctionWraper.CallFunc(1,″>ii″,arg0,arg1),从而调用到C#函数voidfunc(int a,int b)。
在图3示出的热更资源开发框架的基础上,基于所述控制器层和所述模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本的具体过程可以参见图6,可以包括以下步骤:
步骤S21:基于所述控制器层和所述模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组。
控制器层和模型层可以通过事件关联,或通过接口函数关联。
基于控制器层和模型层通过事件关联的关系或通过接口函数关联的关系,构建与Lua控制脚本关联的数据处理函数组包括:
构建与所述Lua控制脚本通过事件关联的数据处理函数组;
和/或,构建与所述Lua控制脚本通过接口函数关联的数据处理函数组。
其中,构建得到的与所述Lua控制脚本通过事件关联的数据处理函数组中包含事件发起代码,Lua控制脚本中包含事件监听代码。事件发起代码,用于发起携带有Lua数据的事件。事件监听代码,用于监听所述事件发起代码执行后发起的事件。
接口函数包含在数据处理函数组中。
步骤S22:编写所述数据处理函数组中的各个数据处理函数,得到数据处理脚本。
数据处理函数组中可能包含各种类型的数据处理函数,例如网络交互函数、本地数据处理函数和服务器数据处理函数。
针对数据处理函数组中的服务器数据处理函数的编写,具体为:编写数据处理函数组中的服务器数据处理函数;
所述服务器数据处理函数,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用所述网络交互函数,与服务器建立通信,从所述服务器上获取所述服务器数据交互请求对应的数据,并调用用于将所述服务器数据交互请求对应的数据转换为Lua数据的预设数据格式转换函数,得到Lua数据,并发出所述Lua数据。
预设数据格式转换函数实现了将服务器数据转换为Lua数据。
其中,由于服务器数据在网络上是以二进制数据的形式进行传输,因此从服务器上获取到的服务器数据交互请求对应的数据为二进制数据,预设数据格式转换函数本质上用于将表示服务器数据的二进制数据转换为Lua数据,具体的转换过程为:采用Lua数据描述字段,对获取到的二进制数据进行描述,得到Lua数据。
Lua数据描述字段如表2所示:
表2
Lua数据描述字段的生成过程为:
将服务器数据描述(即对服务器数据的描述)转换为Lua数据描述;
对转换得到的Lua数据描述进行整理,得到Lua数据描述字段。
现举例对将服务器数据描述转换为Lua数据描述进行说明,例如,在服务器数据为C#数据时,服务器数据描述如下:
将上述服务器数据描述转换为Lua数据描述,得到的Lua数据描述为:
在图2示出的热更资源的开发方法的基础上扩展出另外一种热更资源的开发方法,请参见图7,在图2示出的热更资源的开发方法的基础上还包括以下步骤:
步骤S105:为所述目标应用的热更资源添加唯一热更标识。
所述唯一热更标识用于标识资源为热更资源。
为目标应用的热更资源添加唯一热更标识后,可以方便打包程序从目标应用的所有资源中选取出热更资源,并对选取出的热更资源进行封装,得到热更资源包。
实施例二
图8为本发明实施例提供的热更资源的应用***的结构框图,参照图8,该热更资源的应用***可以包括:服务器21和终端22。
服务器21为目标应用的后台服务器,用于获取图2示出的开发设备11所开发的目标应用的热更资源,并将目标应用的热更资源进行发布。
服务器21和开发设备11可以集成为一个设备。
服务器21可以由单台服务器实现,也可以是多台服务器组成的服务器群组。
终端22为目标应用运行的设备,如智能手机、平板电脑、笔记本电脑等用户设备。终端22从服务器21中获取新发布的目标应用的热更资源,并完成目标应用的更新。
站在图8示出的热更资源的应用***中的终端的角度,对热更资源的应用方法进行阐述,请参见图9,其示出了本发明实施例提供的热更资源的应用方法的一种流程图,可以包括以下步骤:
步骤S201:获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个。
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联。
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本。
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本。
步骤S202:利用获取到的待热更资源对目标应用进行更新。
步骤S201至步骤S202可以在目标应用启动时执行,实现目标应用启动时即完成目标应用的更新,避免在目标应用运行过程中进行更新,从而影响目标应用运行的带宽及效率。
在本方法实施例中,所述视图层通过自定义关联脚本与所述控制器层进行关联,自定义关联脚本具体包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;
则,所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组,并分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本。
若所述待热更资源为所述Lua控制脚本,在完成目标应用的Lua控制脚本的更新后,在目标应用运行时,运行待热更资源的具体过程可以参见图10,如图10所示,则图9示出的热更资源的应用方法还可以包括以下步骤:
步骤S203:将所述目标应用的热更界面关联的自定义关联脚本与所述Lua控制脚本进行动态绑定。
步骤S204:若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数,执行对应的Lua行为函数对应的操作。
步骤S203至步骤S204即执行Lua控制脚本的过程。
Lua控制脚本的执行信令图请参见图11,如图11所示,在执行目标应用的热更界面的打开操作时,自定义关联脚本与Lua控制脚本进行动态绑定,Lua控制脚本进行初始化,初始化后,开始执行Awake、Start等一系列Lua行为函数。
其中,在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数的具体过程可以为:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数中的C语言代码交互函数,执行以下过程:调用C语言导出函数,执行以下过程:
在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
在本方法实施例中,数据处理脚本具体为基于所述热更资源开发框架的所述控制器层和模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组,并编写所述数据处理函数组中的各个数据处理函数,得到的数据处理脚本。
若所述待热更资源为所述数据处理脚本,在完成目标应用的数据处理脚本的更新后,在目标应用运行时,运行待热更资源的具体过程可以参见图12,如图12所示,则图9示出的热更资源的应用方法还可以包括以下步骤:
步骤S205:在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,执行与服务器建立通信的过程。
步骤S206:从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,执行将所述服务器数据交互请求对应的数据转换为Lua数据的过程。
步骤S207:发出所述Lua数据。
步骤S205至步骤S207为执行数据处理脚本的过程。
在本实施例中,发出所述Lua数据的具体方式因数据处理脚本与Lua控制脚本的关联方式不同而有所不同,其中:
在数据处理脚本与Lua控制脚本通过事件关联时,发出所述Lua数据的具体过程为:
执行事件发起代码,发起携带有所述Lua数据的事件,以由所述Lua控制脚本中的事件监听代码监听所述事件发起代码执行后发起的事件,并将监听到的事件中的Lua数据传入所述目标应用的用户界面。
在数据处理脚本与Lua控制脚本通过数据处理脚本提供的接口函数关联时,发出所述Lua数据的具体过程为:
若接收到所述Lua控制脚本触发的接口函数调用请求,则调用所述数据处理脚本中的接口函数,执行以下过程:
发送所述Lua数据至所述目标应用的用户界面。
实施例三
与方法实施例一相对应,本实施例提供了一种热更资源的开发装置,请参见图13,热更资源的开发装置包括:第一开发模块31、第二开发模块32、第三开发模块33和确定模块34。
第一开发模块,用于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面。
第二开发模块,用于基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本。
第三开发模块,用于基于所述控制器层和所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本。
确定模块,用于将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源。
在所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数的情况下,所述第二开发模块包括:映射单元和第一编写单元。
映射单元,用于基于所述视图层通过自定义关联脚本与所述控制器层关联的关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组。
第一编写单元,用于分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本。
第一编写单元具体可以包括:
第一编写子单元,用于编写所述Lua行为函数组中的各个待使用Lua行为函数中的C语言代码交互函数;
所述C语言代码交互函数,用于调用C语言导出函数;
所述C语言导出函数,用于在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
第三开发模块具体可以包括:构建单元和第二编写单元。
构建单元,用于基于所述控制器层和所述模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组。
构建单元具体可以包括:第一构建子单元,和/或,第二构建子单元。
所述第一构建子单元,用于构建与所述Lua控制脚本通过事件关联的数据处理函数组。
第二构建子单元,用于构建与所述Lua控制脚本通过接口函数关联的数据处理函数组。
第二编写单元,用于编写所述数据处理函数组中的各个数据处理函数,得到数据处理脚本。
第二编写单元具体可以包括:第二编写子单元,用于编写所述数据处理函数组中的服务器数据处理函数;
所述服务器数据处理函数,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用所述网络交互函数,与服务器建立通信,从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,得到Lua数据,并发出所述Lua数据;
所述预设数据格式转换函数,用于将所述服务器数据交互请求对应的数据转换为Lua数据。
图13示出的热更资源的开发装置还可以包括:添加模块35,如图14所示。
添加模块35,用于为所述目标应用的热更资源添加唯一热更标识,所述唯一热更标识用于标识资源为热更资源。
本装置实施例还提供了一种热更资源的开发设备,该热更资源的开发设备可以包括上述热更资源的开发设备,热更资源的开发设备可以是部署在网络侧的热更资源的开发服务器,请参见图15,其示出了热更资源的开发设备的硬件结构,热更资源的开发设备可以包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:基于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面;
基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本;
基于所述控制器层与所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本;
将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源。
实施例四
与方法实施例二相对应,本实施例提供了一种热更资源的应用装置,请参见图16,热更资源的应用装置包括:获取模块41和更新模块42。
获取模块41,用于获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个。
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联。
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本。
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本。
更新模块42,用于利用获取到的待热更资源对目标应用进行更新。
在所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;所述Lua控制脚本为基于所述视图层通过自定义关联脚本与所述控制器层关联的关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组,并分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本的情况下,若所述待热更资源为所述Lua控制脚本,图16示出的热更资源的应用装置还包括:绑定模块43和第一调用模块44,如图17所示。
绑定模块43,用于将所述目标应用的热更界面关联的自定义关联脚本与所述Lua控制脚本进行动态绑定。
第一调用模块44,用于若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数,执行对应的Lua行为函数对应的操作。
第一调用模块具体可以包括:
第一调用单元,用于若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数中的C语言代码交互函数,执行以下过程:调用C语言导出函数,执行以下过程:
在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
在所述数据处理脚本为基于所述控制器层和模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组,并编写所述数据处理函数组中的各个数据处理函数,得到的数据处理脚本的情况下,若所述待热更资源为所述数据处理脚本,图16示出的热更资源的应用装置还包括:第二调用模块45、第三调用模块46和发送模块47,如图18所示。
第二调用模块45,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,执行与服务器建立通信的过程。
第三调用模块46,用于从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,执行将所述服务器数据交互请求对应的数据转换为Lua数据的过程。
发送模块47,用于发出所述Lua数据。
在本装置实施例中,发送模块47具体可以包括:执行单元或第二调用单元。
执行单元,用于执行事件发起代码,发起携带有所述Lua数据的事件,以由所述Lua控制脚本中的事件监听代码监听所述事件发起代码执行后发起的事件,并将监听到的事件中的Lua数据传入所述目标应用的用户界面。
第二调用单元,用于若接收到所述Lua控制脚本触发的接口函数调用请求,则调用所述数据处理脚本中的接口函数,执行以下过程:
发送所述Lua数据至所述目标应用的用户界面。
本装置实施例还提供了一种热更资源的应用设备,该热更资源的应用设备可以包括上述热更资源的应用设备,请参见图19,其示出了热更资源的应用设备的硬件结构,热更资源的应用设备可以包括:处理器5,通信接口6,存储器7和通信总线8;
其中处理器5、通信接口6、存储器7通过通信总线8完成相互间的通信;
可选的,通信接口6可以为通信模块的接口,如GSM模块的接口;
处理器5,用于执行程序;
存储器7,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令;
处理器5可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器7可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个;
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联;
所述Lua控制脚本为基于所述视图层与所述控制器层关联的关系,确定出的与所述目标应用的热更界面关联的控制脚本;
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本;
利用获取到的待热更资源对目标应用进行更新。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种热更资源的开发、应用方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种热更资源的开发方法,其特征在于,包括:
基于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面;
基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本;
基于所述控制器层与所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本;
将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源;
其中,所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;
所述基于所述控制器层和所述模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本,包括:
基于所述控制器层和所述模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组;
编写所述数据处理函数组中的各个数据处理函数,得到数据处理脚本。
2.根据权利要求1所述的方法,其特征在于,
基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本,包括:
基于所述视图层通过自定义关联脚本与所述控制器层关联的关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组;
分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本;
其中,分别编写所述Lua行为函数组中的各个待使用Lua行为函数,包括:
编写所述Lua行为函数组中的各个待使用Lua行为函数中用于调用C 语言导出函数的C语言代码交互函数;
所述C语言导出函数,用于在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
3.根据权利要求1所述的方法,其特征在于,
所述构建与所述Lua控制脚本关联的数据处理函数组,包括:
构建与所述Lua控制脚本通过事件关联的数据处理函数组;
和/或,构建与所述Lua控制脚本通过接口函数关联的数据处理函数组;
以及,编写所述数据处理函数组中的各个数据处理函数,包括:
编写所述数据处理函数组中的服务器数据处理函数;
所述服务器数据处理函数,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,与服务器建立通信,从所述服务器上获取所述服务器数据交互请求对应的数据,并调用用于将所述服务器数据交互请求对应的数据转换为Lua数据的预设数据格式转换函数,得到Lua数据,并发出所述Lua数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述目标应用的热更资源添加唯一热更标识,所述唯一热更标识用于标识资源为热更资源。
5.一种热更资源的应用方法,其特征在于,包括:
获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个;
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联;
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本;
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本;
利用获取到的待热更资源对目标应用进行更新;
其中,所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;
所述数据处理脚本为基于所述热更资源开发框架的所述控制器层和模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组,并编写所述数据处理函数组中的各个数据处理函数,得到的数据处理脚本。
6.根据权利要求5所述的方法,其特征在于,
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组,并分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本;
若所述待热更资源为所述Lua控制脚本,所述方法还包括:
将所述目标应用的热更界面关联的自定义关联脚本与所述Lua控制脚本进行动态绑定;
若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数,执行对应的Lua行为函数对应的操作;
其中,在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数,包括:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数中的C语言代码交互函数,执行以下过程:调用C语言导出函数,执行以下过程:
在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
7.根据权利要求5所述的方法,其特征在于,
若所述待热更资源为所述数据处理脚本,所述方法还包括:
在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,执行与服务器建立通信的过程;
从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,执行将所述服务器数据交互请求对应的数据转换为Lua数据的过程;
发出所述Lua数据;
其中,发出所述Lua数据,包括:
执行事件发起代码,发起携带有所述Lua数据的事件,以由所述Lua控制脚本中的事件监听代码监听所述事件发起代码执行后发起的事件,并将监听到的事件中的Lua数据传入所述目标应用的用户界面;
或,若接收到所述Lua控制脚本触发的接口函数调用请求,则调用所述数据处理脚本中的接口函数,执行以下过程:
发送所述Lua数据至所述目标应用的用户界面。
8.一种热更资源的开发装置,其特征在于,包括:
第一开发模块,用于按照目标应用的架构的开发模式,构建得到的热更资源开发框架的视图层,确定所述目标应用的热更界面;
第二开发模块,用于基于所述视图层与所述热更资源开发框架的控制器层的关联关系,确定与所述目标应用的热更界面关联的Lua控制脚本;
第三开发模块,用于基于所述控制器层和所述热更资源开发框架的模型层的关联关系,确定与所述Lua控制脚本关联的数据处理脚本;
确定模块,用于将确定的所述目标应用的热更界面、与所述目标应用的热更界面关联的Lua控制脚本和与所述Lua控制脚本关联的数据处理脚本中的任意一个或多个,作为所述目标应用的热更资源;
其中,所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;
所述第三开发模块包括:
构建单元,用于基于所述控制器层和所述模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组;
第二编写单元,用于编写所述数据处理函数组中的各个数据处理函数,得到数据处理脚本。
9.根据权利要求8所述的装置,其特征在于,所述第二开发模块包括:
映射单元,用于基于所述视图层通过自定义关联脚本与所述控制器层关联的关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组;
第一编写单元,用于分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本;
所述第一编写单元包括:
第一编写子单元,用于编写所述Lua行为函数组中的各个待使用Lua行为函数中的C语言代码交互函数;
所述C语言代码交互函数,用于调用C语言导出函数;
所述C语言导出函数,用于在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
10.根据权利要求8所述的装置,其特征在于,所述构建单元包括:第一构建子单元,和/或,第二构建子单元;
所述第一构建子单元,用于构建与所述Lua控制脚本通过事件关联的数据处理函数组;
第二构建子单元,用于构建与所述Lua控制脚本通过接口函数关联的数据处理函数组;
所述第二编写单元包括:
第二编写子单元,用于编写所述数据处理函数组中的服务器数据处理函数;
所述服务器数据处理函数,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,与服务器建立通信,从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,得到Lua数据,并发出所述Lua数据;
所述预设数据格式转换函数,用于将所述服务器数据交互请求对应的数据转换为Lua数据。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
添加模块,用于为所述目标应用的热更资源添加唯一热更标识,所述唯一热更标识用于标识资源为热更资源。
12.一种热更资源的应用装置,其特征在于,包括:
获取模块,用于获取待热更资源,所述待热更资源为目标应用的热更界面、Lua控制脚本和数据处理脚本中的任意一个或多个;
所述目标应用的热更界面为基于热更资源开发框架的视图层,构建得到的热更界面,所述热更资源开发框架包括:模型层、视图层和控制器层,所述视图层与所述控制器层关联,所述控制器层与所述模型层关联;
所述Lua控制脚本为基于所述视图层与所述控制器层的关联关系,确定出的与所述目标应用的热更界面关联的控制脚本;
所述数据处理脚本为基于所述控制器层和所述模型层的关联关系,确定出的数据处理脚本;
更新模块,用于利用获取到的待热更资源对目标应用进行更新;
其中,所述视图层通过自定义关联脚本与所述控制器层进行关联,所述自定义关联脚本包括所述目标应用的热更界面对应的所有非Lua行为函数,所述非Lua行为函数用于调用所述自定义关联脚本关联的Lua行为函数;
所述数据处理脚本为基于所述热更资源开发框架的所述控制器层和模型层的关联关系,构建与所述Lua控制脚本关联的数据处理函数组,并编写所述数据处理函数组中的各个数据处理函数,得到的数据处理脚本。
13.根据权利要求12所述的装置,其特征在于,所述Lua控制脚本为基于所述视图层通过自定义关联脚本与所述控制器层关联的关系,将所述自定义关联脚本中的各个非Lua行为函数各自映射出一个Lua行为函数,得到Lua行为函数组,并分别编写所述Lua行为函数组中的各个待使用Lua行为函数,得到与所述目标应用的热更界面关联的Lua控制脚本的情况下,若所述待热更资源为所述Lua控制脚本,所述装置还包括:
绑定模块,用于将所述目标应用的热更界面关联的自定义关联脚本与所述Lua控制脚本进行动态绑定;
第一调用模块,用于若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数,执行对应的Lua行为函数对应的操作;
其中,所述第一调用模块包括:
第一调用单元,用于若在所述目标应用的热更界面上接收到操作请求,则在所述自定义关联脚本中调用所述操作请求对应的非Lua行为函数,执行以下过程:
在所述Lua控制脚本中调用所述操作请求对应的非Lua行为函数对应的Lua行为函数中的C语言代码交互函数,执行以下过程:调用C语言导出函数,执行以下过程:
在C语言代码空间中查找到与所述C语言导出函数中的C语言函数标识对应的C语言函数,并从Lua代码空间中获取所述C语言导出函数中的C语言函数描述对应的参数,将所述C语言导出函数中的C语言函数描述对应的参数传入所述与C语言导出函数中的C语言函数标识对应的C语言函数中,并调用所述C语言导出函数中的C语言函数标识对应的C语言函数。
14.根据权利要求13所述的装置,其特征在于,若所述待热更资源为所述数据处理脚本,所述装置还包括:
第二调用模块,用于在监听到所述目标应用用户界面的服务器数据交互请求时,调用网络交互函数,执行与服务器建立通信的过程;
第三调用模块,用于从所述服务器上获取所述服务器数据交互请求对应的数据,并调用预设数据格式转换函数,执行将所述服务器数据交互请求对应的数据转换为Lua数据的过程;
发送模块,用于发出所述Lua数据;
其中,所述发送模块包括:
执行单元,用于执行事件发起代码,发起携带有所述Lua数据的事件,以由所述Lua控制脚本中的事件监听代码监听所述事件发起代码执行后发起的事件,并将监听到的事件中的Lua数据传入所述目标应用的用户界面;
或,第二调用单元,用于若接收到所述Lua控制脚本触发的接口函数调用请求,则调用所述数据处理脚本中的接口函数,执行以下过程:
发送所述Lua数据至所述目标应用的用户界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166724.7A CN106951288B (zh) | 2017-03-20 | 2017-03-20 | 一种热更资源的开发、应用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166724.7A CN106951288B (zh) | 2017-03-20 | 2017-03-20 | 一种热更资源的开发、应用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951288A CN106951288A (zh) | 2017-07-14 |
CN106951288B true CN106951288B (zh) | 2020-04-28 |
Family
ID=59473354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710166724.7A Active CN106951288B (zh) | 2017-03-20 | 2017-03-20 | 一种热更资源的开发、应用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951288B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874376B (zh) * | 2018-06-19 | 2021-09-07 | 北京智明星通科技股份有限公司 | 函数和类的导出方法及装置、终端和计算机可读存储介质 |
CN109783072A (zh) * | 2019-01-23 | 2019-05-21 | 深圳智链物联科技有限公司 | 业务处理方法、装置、终端设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630472A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 制造执行***客户端快速开发框架及其软件开发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150113429A1 (en) * | 2013-10-21 | 2015-04-23 | NQ Mobile Inc. | Real-time dynamic content display layer and system |
-
2017
- 2017-03-20 CN CN201710166724.7A patent/CN106951288B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630472A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 制造执行***客户端快速开发框架及其软件开发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106951288A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108830720B (zh) | 智能合约运行方法、装置、***和计算机可读存储介质 | |
CN109656807B (zh) | 基于信息安全的接口mock测试方法、装置、设备及存储介质 | |
CN106569856B (zh) | 一种应用视图资源文件的加载方法和装置 | |
CN112162753A (zh) | 软件部署方法、装置、计算机设备和存储介质 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN104750487A (zh) | 一种移动终端app的开发方法及启动方法 | |
CN111124286A (zh) | 一种基于Libcloud的多云管理实现方法 | |
CN108733370B (zh) | 原生app的样式化显示方法、装置、终端及存储介质 | |
CN114116134A (zh) | 智能合约部署和执行方法、设备及存储介质 | |
CN106951288B (zh) | 一种热更资源的开发、应用方法及装置 | |
CN113641503B (zh) | 多云多集群的Kubernetes管理***及方法与设备 | |
WO2020199597A1 (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN112965721B (zh) | 基于Android的项目编译方法、装置、计算机设备及存储介质 | |
CN112925586B (zh) | 一种小程序路由方法、装置、计算机设备及存储介质 | |
CN111683005B (zh) | 一种物联网智能网关设备及其构建方法 | |
CN106802805B (zh) | 一种适用服务器管理的应用服务管理方法及装置 | |
CN114490103A (zh) | 一种操作***接口调用方法、装置以及电子设备 | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
US20180196724A1 (en) | Cloud servers and methods for handling dysfunctional cloud services | |
CN114896317A (zh) | 一种数据结构转换方法、装置、电子设备及存储介质 | |
US11425203B2 (en) | Commissioning a virtualized network function | |
CN114258012A (zh) | Esim号码的预制方法及esim虚拟***、设备及存储介质 | |
CN114356379A (zh) | 基于备份的服务升级方法、装置、设备及存储介质 | |
CN108804236B (zh) | 一种aidl文件的共享方法及*** | |
CN111309322A (zh) | 一种基于规则式的响应式智能应用开发*** |
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 |