[发明专利]重载方法和装置有效
申请号: | 202011388381.7 | 申请日: | 2020-12-01 |
公开(公告)号: | CN112379973B | 公开(公告)日: | 2023-10-24 |
发明(设计)人: | 苏远程 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 深圳市联鼎知识产权代理有限公司 44232 | 代理人: | 叶虹 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 重载 方法 装置 | ||
本申请提供了一种重载方法和装置。该方法包括:监听应用程序的开发文件中发生修改的代码,并获取用于执行开发文件的虚拟机中代码对应的指定代码模块;对虚拟机中除了指定代码模块之外的文件进行镜像处理,得到镜像虚拟机,并将镜像虚拟机存储至沙盒中;基于镜像虚拟机将修改后的代码加载至沙盒中,得到目标代码模块;使用目标代码模块替换虚拟机中的指定代码模块,以对指定代码模块进行热重载,本申请实施例的技术方案不必停止虚拟机的运行,能够减少重载虚拟机中的指定代码模块时对应用程序使用的影响。
技术领域
本申请涉及计算机及通信技术领域,特别涉及一种重载方法和装置。
背景技术
随着技术的不断进步,人们对应用程序的功能要求越来越多,应用程序的开发文件经常需要被修改。
但是,现有技术中修改应用程序的开发文件时通常需要停止应用程序的运行,修改完成后才能恢复应用程序的运行,十分影响用户的体验。
发明内容
本申请旨在提供一种重载方法和装置,其能够在不停止应用程序运行的情况下修改应用程序的开发文件,从而能够在一定程度上提高用户的体验。
根据本申请实施例的一个方面,提供了一种重载方法,包括:监听应用程序的开发文件中发生修改的代码,并获取用于执行所述开发文件的虚拟机中所述代码对应的指定代码模块;对所述虚拟机中除了所述指定代码模块之外的文件进行镜像处理,得到镜像虚拟机,并将所述镜像虚拟机存储至沙盒中;基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块;使用所述目标代码模块替换所述虚拟机中的所述指定代码模块,以对所述指定代码模块进行热重载。
根据本申请实施例的一个方面,提供了一种重载装置,包括:监听模块,配置为监听开发文件中发生修改的代码,并获取用于执行所述开发文件的虚拟机中所述代码对应的指定代码模块;镜像模块,配置为制作所述虚拟机中除了所述指定代码模块之外的文件的镜像,得到镜像虚拟机,并将所述镜像虚拟机存储至沙盒中;重载模块,配置为在所述沙盒中,基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块;替换模块,配置为使用所述目标代码模块替换所述虚拟机中的所述指定代码模块,以对所述指定代码模块进行热重载。
根据本申请实施例的一个方面,所述重载模块配置为:在基于所述镜像虚拟机将修改后的代码加载至所述沙盒中,得到目标代码模块中,若检测到所述修改后的代码中包含对所述镜像虚拟机中的全局变量进行初始化的语句,则提示重载错误并停止重载。
根据本申请实施例的一个方面,所述重载模块配置为:在使用所述目标代码模块替换所述虚拟机中的所述指定代码模块之前,获取所述目标代码模块中的外部局部变量,作为目标外部局部变量;获取所述指定代码模块中的外部局部变量,作为指定外部局部变量;将所述目标外部局部变量,替换为与所述目标外部局部变量对应的指定外部局部变量。
根据本申请实施例的一个方面,所述重载模块配置为:在使用所述目标代码模块替换所述虚拟机中的所述指定代码模块之前,获取所述目标代码模块中的父函数原型;查找所述指定代码模块中与所述父函数原型对应的子函数原型,作为所述目标代码模块中与所述父函数原型对应的子函数原型;实例化所述子函数原型;填充实例化后的子函数原型,得到所述目标代码模块中与所述父函数原型对应的子函数。
根据本申请实施例的一个方面,所述重载模块配置为:在所述指定代码模块中,查找所述子函数原型对应的外部局部变量;使用所述子函数原型对应的外部局部变量,填充所述实例化后的子函数原型。
根据本申请实施例的一个方面,所述重载模块配置为:在所述目标代码模块中,获取所述父函数原型对应的外部局部变量列表;在所述父函数原型对应的外部局部变量列表中,查找与所述子函数原型对应的外部局部变量;使用与所述子函数原型对应的外部局部变量,填充所述实例化后的子函数原型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011388381.7/2.html,转载请声明来源钻瓜专利网。