[发明专利]热修复方法、装置、设备及计算机可读存储介质有效
| 申请号: | 201910580421.9 | 申请日: | 2019-06-28 |
| 公开(公告)号: | CN110321135B | 公开(公告)日: | 2023-04-11 |
| 发明(设计)人: | 张迪;尚会波;许多凯;支剑锟 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06F8/61 | 分类号: | G06F8/61;G06F8/656 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 朱颖;刘芳 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 修复 方法 装置 设备 计算机 可读 存储 介质 | ||
本公开提供一种热修复方法、装置、设备及计算机可读存储介质,程序运行时,调用一入口类覆写的框架层中最下层的类中的方法;根据覆写后的方法获取拦截器信息,并根据拦截器信息确定是否设置有拦截器;若是,则通过一调用实例执行入口类中包括的补丁逻辑;其中,入口类继承框架层中最下层的类,程序中的最顶层类继承入口类。本公开提供的方案,入口类可以覆写框架层中最下层的类中所有可覆写的方法,从而在程序运行时,无论调用到哪个覆写后的方法,都能够根据拦截器信息,确定是否需要执行补丁逻辑,从而实现热修复效果。且修复过程不需要使用系统隐藏API,兼容性较好。
技术领域
本公开涉及修复技术,尤其涉及一种热修复方法、装置、设备及计算机可读存储介质。
背景技术
目前,当一款应用上线后,若发现其存在bug(漏洞),则可以采用热修复的方式修复bug,无需重新更新整个应用,造成修复速度慢的问题。
现有技术中,可以采用虚拟机级别进行native hook,实现方法替换;还可以下发全量dex,并通过添加到Classloader对应的dex elements数组的最前面实现优先加载替换的类达到修复的目的。
但是,这些方法因为使用了系统隐藏API,会有兼容性问题。因此,现有技术中的热修复方案仍然存在一定的局限性。
发明内容
本公开提供一种热修复方法、装置、设备及计算机可读存储介质,以解决现有技术中的热修复方案存在一定局限性的问题。
本公开的第一个方面是提供一种热修复方法,包括:
程序运行时,调用一入口类覆写的框架层中最下层的类中的方法;
根据覆写后的方法获取拦截器信息,并根据所述拦截器信息确定是否设置有拦截器;
若是,则通过一调用实例执行所述入口类中包括的补丁逻辑;
其中,所述入口类继承框架层中最下层的类,所述程序中的最顶层类继承所述入口类。
本公开的另一个方面是提供一种热修复装置,包括:
调用模块,用于在程序运行时,调用一入口类覆写的框架层中最下层的类中的方法;
确定模块,用于根据覆写后的方法获取拦截器信息,并根据所述拦截器信息确定是否设置有拦截器;
若是,则执行模块通过一调用实例执行所述入口类中包括的补丁逻辑;其中,所述入口类继承框架层中最下层的类,所述程序中的最顶层类继承所述入口类。
本公开的又一个方面是提供一种热修复设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上述第一方面所述的热修复方法。
本公开的又一个方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面所述的热修复方法。
本公开提供的热修复方法、装置、设备及计算机可读存储介质的技术效果是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910580421.9/2.html,转载请声明来源钻瓜专利网。





