热更新方法、装置、计算机设备以及存储介质与流程

文档序号:33963359发布日期:2023-04-26 17:31阅读:29来源:国知局
热更新方法、装置、计算机设备以及存储介质与流程

本公开涉及计算机的,具体而言,涉及一种热更新方法、装置、计算机设备以及存储介质。


背景技术:

1、现有客户端(例如,游戏客户端)通常通过脚本对该客户端的相关业务进行热更新,其中,常用的脚本语言包含lua、js(javascript)等脚本语言。现有客户端的开发框架所使用的编程语言与脚本语言不同,例如,游戏客户端的开发框架所使用的编程语言为xlua、puerts等语言。在基于脚本对客户端进行热更时,需要调用客户端的原生方法。由于脚本语言和客户端的开发框架所使用的编程语言不同,将导致对原生方法的调用效率降低,从而影响对客户端的热更新效率。


技术实现思路

1、本公开实施例至少提供一种热更新方法、装置、计算机设备以及存储介质。

2、第一方面,本公开实施例提供了一种热更新方法,应用于客户端,包括:运行对客户端进行热更新的脚本文件;在所述脚本文件运行过程中,确定所述脚本文件中调用原生方法的目标脚本代码;其中,所述目标脚本代码的编程语言与所述原生方法的编程语言不同;在确定出所述目标脚本代码的情况下,查找所述目标脚本代码对所述原生方法的调用缓存信息;其中,所述调用缓存信息用于指示所述原生方法的方法属性和调用关系;在查找到所述调用缓存信息的情况下,基于所述调用缓存信息调用并执行所述原生方法。

3、一种可选的实施方式中,所述查找所述目标脚本代码对所述原生方法的调用缓存信息,包括:确定所述脚本文件中所述目标脚本代码的代码标识;在目标缓存空间中查找与所述代码标识相匹配的缓存信息,并将所述相匹配的缓存信息确定为所述目标脚本代码对所述原生方法的调用缓存信息;其中,所述目标缓存空间用于存储历史时刻所述脚本文件中脚本代码对相应原生方法的调用信息。

4、一种可选的实施方式中,所述原生方法的数量为多个;所述在查找到所述调用缓存信息的情况下,基于所述调用缓存信息调用并执行所述原生方法,包括:在所述调用缓存信息中解析每个所述原生方法的方法属性;所述方法属性包括:所述原生方法的方法名、所述原生方法的类名和所述原生方法的方法类型;在所述调用缓存信息中解析多个所述原生方法的调用关系;基于所述方法属性和所述调用关系执行多个所述原生方法。

5、一种可选的实施方式中,所述在所述脚本文件运行过程中,确定所述脚本文件中调用原生方法的目标脚本代码,包括:在所述脚本文件运行过程中,确定目标起始代码和目标结束代码;其中,所述目标结束代码和所述目标起始代码对应相同的代码标识;将所述脚本文件中位于所述目标起始代码和所述目标结束代码之间的脚本代码确定为所述目标脚本代码。

6、一种可选的实施方式中,所述方法还包括:在未查找到所述调用缓存信息的情况下,调用所述目标脚本代码;在调用所述目标脚本代码的过程中,确定所述目标脚本代码对所述原生方法的调用信息;其中,所述调用信息用于指示所述原生方法的方法属性和调用关系;将所述调用信息作为所述原生方法的调用缓存信息缓存至目标缓存空间。

7、一种可选的实施方式中,所述目标脚本代码包含多个多个子代码;所述在调用所述目标脚本代码的过程中,确定所述目标脚本代码对所述原生方法的调用信息,包括:在所述多个多个子代码执行过程中,确定每个所述多个子代码所调用的原生方法的方法属性,并确定多个所述多个子代码所调用相应原生方法之间的调用关系;基于所述方法属性和所述调用关系确定所述调用信息。

8、一种可选的实施方式中,所述方法还包括:在查找到所述调用缓存信息的情况下,确定所述调用缓存信息中所调用的原始方法与所述目标脚本代码中所调用原始方法是否相同;在确定出所述调用缓存信息中所调用的原始方法与所述目标脚本代码中所调用原始方法相同的情况下,基于所述调用缓存信息调用并执行所述原生方法;在确定出所述调用缓存信息中所调用的原始方法与所述目标脚本代码中所调用原始方法不相同的情况下,返回执行调用所述目标脚本代码的步骤。

9、第二方面,本公开实施例提供了一种热更新装置,包括:运行单元,用于运行对客户端进行热更新的脚本文件;确定单元,用于在所述脚本文件运行过程中,确定所述脚本文件中调用原生方法的目标脚本代码;其中,所述目标脚本代码的编程语言与所述原生方法的编程语言不同;查找单元,用于在确定出所述目标脚本代码的情况下,查找所述目标脚本代码对所述原生方法的调用缓存信息;其中,所述调用缓存信息用于指示所述原生方法的方法属性和调用关系;调用执行单元,用于在查找到所述调用缓存信息的情况下,基于所述调用缓存信息调用并执行所述原生方法。

10、第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

11、第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

12、在本公开实施例中,首先,运行对客户端进行热更新的脚本文件;之后,可以在脚本文件的运行过程中,确定脚本文件中调用原生方法的目标脚本代码,并查找所述目标脚本代码对该目标脚本代码所调用原生方法的调用缓存信息;在查找到该调用缓存信息的情况下,就可以基于该调用缓存信息调用并执行原生方法。

13、上述实施方式中,通过对原生方法的方法属性和调用关系进行缓存,并在脚本文件中确定出目标脚本代码之后,通过查找目标脚本代码对原生方法的调用缓存信息,并基于该调用缓存信息调用并执行该原生方法,可以在不执行目标脚本代码的情况下,实现原生方法的调用,从而省略了跨语言调用的过程,进而提高了对原生方法的调用效率,并提高了对客户端的热更新效率。

14、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。



技术特征:

1.一种热更新方法,其特征在于,应用于客户端,包括:

2.根据权利要求1所述的方法,其特征在于,所述查找所述目标脚本代码对所述原生方法的调用缓存信息,包括:

3.根据权利要求1所述的方法,其特征在于,所述原生方法的数量为多个;所述在查找到所述调用缓存信息的情况下,基于所述调用缓存信息调用并执行所述原生方法,包括:

4.根据权利要求1所述的方法,其特征在于,所述在所述脚本文件运行过程中,确定所述脚本文件中调用原生方法的目标脚本代码,包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述目标脚本代码包含多个多个子代码;所述在调用所述目标脚本代码的过程中,确定所述目标脚本代码对所述原生方法的调用信息,包括:

7.根据权利要求5所述的方法,其特征在于,所述方法还包括:

8.一种热更新装置,其特征在于,包括:

9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任意一项所述的热更新方法的步骤。

10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的热更新方法的步骤。


技术总结
本公开提供了一种热更新方法、装置、计算机设备以及存储介质,其中,该方法包括:运行对客户端进行热更新的脚本文件;在所述脚本文件运行过程中,确定所述脚本文件中调用原生方法的目标脚本代码;其中,所述目标脚本代码的编程语言与所述原生方法的编程语言不同;在确定出所述目标脚本代码的情况下,查找所述目标脚本代码对所述原生方法的调用缓存信息;其中,所述调用缓存信息用于指示所述原生方法的方法属性和调用关系;在查找到所述调用缓存信息的情况下,基于所述调用缓存信息调用并执行所述原生方法。

技术研发人员:葛农
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:
技术公布日:2024/1/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1