The invention discloses a code hot update method and device, a storage medium, a processor and a terminal. The method includes: translating the code to be hot-updated into the first type intermediate code, wherein the first type intermediate code is compiled by the compiler of the target type operating system, and the first type intermediate code is translated into the bytecode to be run, wherein the bytecode to be run is operated by the target type. The system interprets the bytecode to be run by the interpreter to update the code to be hot. The invention solves the technical problem that the type conversion between C # code and script language Lua is needed when the related technology updates the C # code hot, resulting in low execution efficiency.
【技术实现步骤摘要】
代码热更新方法和装置、存储介质、处理器及终端
本专利技术涉及计算机领域,具体而言,涉及一种代码热更新方法和装置、存储介质、处理器及终端。
技术介绍
目前,对于非越狱的IOS操作系统不允许数据段可执行权限,通常需要将C#代码转换为一种能够被ARM(英文全称为AdvancedRISCMachines)处理器高效解释运行的字节码,以达到通过解释器绕过IOS操作系统的限制,实现C#代码的热更新。相关技术通常使用脚本语言Lua实现C#代码的热更新,其中最具有代表性的方案是XLua,XLua为Unity、.Net、Mono等C#环境增加Lua脚本编程的能力。借助XLua,Lua可以方便的和C#相互调用。但是,XLua方案存在以下缺点:1、执行效率低下,Lua使用动态类型而且几乎没有优化,并且Lua与C#交互时需要转换类型。2、开发成本高,开发人员需要同时编写Lua和C#代码。针对相关技术在对C#代码进行热更新时需要在C#代码与脚本语言Lua间进行类型转换,导致执行效率较低的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种代码热更新方法和装置、存储介质、处理器及终端,以至少解决相关技术在对C#代码进行热更新时需要在C#代码与脚本语言Lua间进行类型转换,导致执行效率较低的技术问题。根据本专利技术实施例的一个方面,提供了一种代码热更新方法,包括:将待热更新的代码翻译成第一类型中间码,其中,所述第一类型中间码采用目标类型操作系统的编译器编译;将所述第一类型中间码翻译成待运行的字节码,其中,所述待运行的字节码采用所述目标类型操作系统的解释器解释运行;通 ...
【技术保护点】
1.一种代码热更新方法,其特征在于,包括:将待热更新的代码翻译成第一类型中间码,其中,所述第一类型中间码采用目标类型操作系统的编译器编译;将所述第一类型中间码翻译成待运行的字节码,其中,所述待运行的字节码采用所述目标类型操作系统的解释器解释运行;通过所述解释器解释运行所述待运行的字节码,以将所述待热更新的代码进行热更新。
【技术特征摘要】
1.一种代码热更新方法,其特征在于,包括:将待热更新的代码翻译成第一类型中间码,其中,所述第一类型中间码采用目标类型操作系统的编译器编译;将所述第一类型中间码翻译成待运行的字节码,其中,所述待运行的字节码采用所述目标类型操作系统的解释器解释运行;通过所述解释器解释运行所述待运行的字节码,以将所述待热更新的代码进行热更新。2.根据权利要求1所述的方法,其特征在于,所述将所述第一类型中间码翻译成待运行的字节码包括:将所述第一类型中间码翻译成第一语言,其中,所述第一语言为C++语言的子集;将所述第一语言翻译成第二类型中间码,其中,所述第二类型中间码用于对所述第一语言进行优化;将所述第二类型中间码翻译成第二语言,其中,所述第二语言为中央处理器指令集的子集;将所述第二语言翻译成所述待运行的字节码。3.根据权利要求1所述的方法,其特征在于,所述将待热更新的代码翻译成第一类型中间码包括:将所述待热更新的代码编译为第三类型中间码,其中,所述第三类型中间码为C#语言的中间码;将所述第三类型中间码翻译成第三语言,其中,所述第三语言为C++语言;将所述第三语言编译成所述第一类型中间码。4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述将待热更新的代码翻译成第一类型中间码之前,所述方法还包括:确定安装在所述目标类型操作系统中的待更新的目标应用;将所述待更新的目标应用的部分代码或者全部代码确定为所述待热更新的代码。5.一种代码热更新装置,其特征在于,包括:第一翻译单元,用于将待热更新的代码翻译成第一类型中间码,其中,所述第一类型中间码采用目标类型操作系统的编译器编译;第二翻译单元,用于将所述第一类型中间码翻译成待运行的字节码,其中,所述待运行的字节码采用所述目标类型操作系统的解释器解释运行;热更...
【专利技术属性】
技术研发人员:周扬,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。