[发明专利]用于修复应用的方法和装置有效
申请号: | 201611047097.7 | 申请日: | 2016-11-21 |
公开(公告)号: | CN108089870B | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 张鸿洋;牛禹;党海涛;杜杰;曹昕 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 修复 应用 方法 装置 | ||
1.一种用于修复应用的方法,其特征在于,所述方法包括:
接收目标应用的执行指令;
执行所述目标应用的目标字节码,其中,所述目标应用的目标字节码是从所连接的第一服务器预先接收的,并且所述目标应用的目标字节码是第一服务器通过在对所述目标应用的代码编译所获取的字节码中的至少一个函数中添加条件分支语句所生成的;
对于所述至少一个函数中的每一个函数,确定该函数中的条件分支语句中的条件是否成立,并且响应于确定该函数中的条件分支语句中的条件成立,执行预先生成的补丁中与该函数对应的已修复的函数;
呈现所述目标应用的目标字节码的执行结果;
其中,所述确定该函数中的条件分支语句中的条件是否成立,包括:
将该函数的信息与补丁文件中的配置文件中的函数的信息进行匹配,若匹配成功,确定该函数中的条件分支语句中的条件成立,其中,所述配置文件中写入有应用的代码中的待修复的类中的函数的信息。
2.根据权利要求1所述的方法,其特征在于,所述接收目标应用的执行指令之前,还包括:
从所连接的第二服务器接收预先生成的补丁文件,其中,所述预先生成的补丁文件是所述第二服务器通过如下步骤生成的:
对应用的代码中的待修复的类进行修复,以获取已修复的类;
对所述已修复的类进行编译,以获取所述已修复的类的字节码;
对所述已修复的类的字节码进行优化,以生成补丁;
将所述应用的代码中的待修复的类中的函数的信息写入配置文件中;
将所述补丁和所述配置文件打包成所述补丁文件。
3.根据权利要求2所述的方法,其特征在于,所述从所连接的第二服务器接收预先生成的补丁文件之后,还包括:
读取所述配置文件中的函数的信息,从所述补丁中获取与所述配置文件中的函数的信息对应的已修复的函数,并存储在预设存储路径下。
4.根据权利要求3所述的方法,其特征在于,所述执行预先生成的补丁中与该函数对应的已修复的函数,包括:
执行所述预设存储路径下与匹配成功的所述配置文件中的函数的信息对应的已修复的函数。
5.一种用于修复应用的装置,其特征在于,所述装置包括:
指令接收单元,配置用于接收目标应用的执行指令;
目标字节码执行单元,配置用于执行所述目标应用的目标字节码,其中,所述目标应用的目标字节码是从所连接的第一服务器预先接收的,并且所述目标应用的目标字节码是第一服务器通过在对所述目标应用的代码编译所获取的字节码中的至少一个函数中添加条件分支语句所生成的;
函数执行单元,配置用于对于所述至少一个函数中的每一个函数,确定该函数中的条件分支语句中的条件是否成立,并且响应于确定该函数中的条件分支语句中的条件成立,执行预先生成的补丁中与该函数对应的已修复的函数;
结果呈现单元,配置用于呈现所述目标应用的目标字节码的执行结果;
其中,所述函数执行单元进一步配置用于:
将该函数的信息与补丁文件中的配置文件中的函数的信息进行匹配,若匹配成功,确定该函数中的条件分支语句中的条件成立,其中,所述配置文件中写入有应用的代码中的待修复的类中的函数的信息。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
补丁文件接收单元,配置用于从所连接的第二服务器接收预先生成的补丁文件,其中,所述预先生成的补丁文件是所述第二服务器通过如下步骤生成的:
对应用的代码中的待修复的类进行修复,以获取已修复的类;
对所述已修复的类进行编译,以获取所述已修复的类的字节码;
对所述已修复的类的字节码进行优化,以生成补丁;
将所述应用的代码中的待修复的类中的函数的信息写入配置文件中;
将所述补丁和所述配置文件打包成所述补丁文件。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
函数存储单元,配置用于读取所述配置文件中的函数的信息,从所述补丁中获取与所述配置文件中的函数的信息对应的已修复的函数,并存储在预设存储路径下。
8.根据权利要求7所述的装置,其特征在于,所述函数执行单元进一步配置用于:
执行所述预设存储路径下与匹配成功的所述配置文件中的函数的信息对应的已修复的函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611047097.7/1.html,转载请声明来源钻瓜专利网。