[发明专利]热修复方法、装置、电子设备以及存储介质有效
申请号: | 201910566531.X | 申请日: | 2019-06-27 |
公开(公告)号: | CN110286936B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 张迪;尚会波 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656;G06F8/71 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 朱颖;刘芳 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 修复 方法 装置 电子设备 以及 存储 介质 | ||
本发明提供一种热修复方法、装置、电子设备以及存储介质,包括:生成待修复应用的补丁包,补丁包中方法的指令通过调用第一类实例中的新增字段来执行对新增字段的操作;其中,第一类保存有第二类中的新增字段,第二类为发生修改的类;向终端发送补丁包,以使终端调用补丁包修复待修复应用。本发明提供的热修复方法、装置、电子设备以及存储介质,提高了新增字段时热修复的开发效率。
技术领域
本发明涉及计算机技术领域,尤其涉及一种热修复方法、装置、电子设备以及存储介质。
背景技术
热修复技术通过云端服务器下发热修复补丁(patch)来修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。热修复技术具有如下优势:1、可快速修复,避免线上Bug带来的业务损失,把损失降到最低。2、保证客户端的更新率,无须用户进行版本升级安装。3、良好的用户体验,无感知修复异常。节省用户下载安装成本。
插桩方案是一种轻量的热修复技术,即在原始安装包中对编译后的类中插入判断逻辑。当有补丁加载时,执行补丁中的逻辑,当无补丁时,执行原逻辑,以达到修复问题的目标。当需要修复的问题有新增字段(field)时主要有两种方法来进行热修复。第一种方法是通过新增类,将新增字段定义在新增类中,在使用新增字段的地方,使用新增类中的新增字段替代。第二种方法是寻找不需要新增字段的方案,例如需要新增一个字段,可以通过将字段用固定值来代替的形式来修改代码。
然而,上述两种方法,都需要采用非常规开发模式。非常规开发模式不同于常规开发模式,其需要编写的代码不符合一般规范,编写较为繁琐,导致开发效率低。
发明内容
本发明提供一种热修复方法、装置、电子设备以及存储介质,以解决现有技术中新增字段时热修复开发效率低的问题。
本发明的第一个方面提供一种热修复方法,包括:
生成待修复应用的补丁包,所述补丁包中方法的指令通过调用第一类实例中的新增字段来执行对所述新增字段的操作;其中,所述第一类保存有第二类中的新增字段,所述第二类为发生修改的类;
向终端发送所述补丁包,以使所述终端调用所述补丁包修复所述待修复应用。
可选的,所述生成待修复应用的补丁包,包括:
根据所述第二类创建所述第一类并在所述第一类中添加所述第二类中的新增字段;
在使用所述新增字段的方法中确定调用所述新增字段的指令;
根据所述第一类对所述指令进行重构,并根据重构后的指令生成补丁包。
可选的,在所述生成待修复应用的补丁包之前,还包括:
在对原始安装包进行插桩时,在所述原始安装包中的类中插入预设字段,所述预设字段为所述原始安装包中的字段。
可选的,所述对所述指令进行重构,包括:
获取所述指令中的预设字段;
若所述预设字段的值为空,则创建所述第一类的一个实例,并将所述实例赋值给所述预设字段;
调用所述实例中的新增字段。
本发明的第二个方面提供一种热修复方法,包括:
接收服务器发送的待修复应用的补丁包,所述补丁包中方法的指令通过调用第一类实例中的新增字段来执行对所述新增字段的操作;其中,所述第一类保存有第二类中的新增字段,所述第二类为发生修改的类;
调用所述补丁包修复所述修复应用。
本发明的第三个方面提供一种热修复装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910566531.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种双芯片程序更新装置及方法
- 下一篇:一种分布式软件运行的方法及其系统