[发明专利]应用程序修复方法、装置和系统有效
申请号: | 201611070213.7 | 申请日: | 2016-11-28 |
公开(公告)号: | CN108121561B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 曹昕;王淮庆;徐少朋 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 修复 方法 装置 系统 | ||
1.一种应用程序修复方法,其特征在于,包括以下步骤:
启动应用程序,并将资源文件的列表加载至内存中;
在所述应用程序启动时,通过接口获取服务器端推送的修复信息;所述修复信息包括待修复资源的标识和目标资源;
在根据所加载的资源文件的列表,对所述资源文件执行预设处理流程时,通过钩子机制截获目标方法;其中,所述目标方法用于对服务器端所指示的待修复资源进行处理;
当所述应用程序执行到所述目标方法时,根据所述目标方法的类型,利用从所述服务器端所获取到的目标资源替换所述待修复资源,以实现对所述应用程序的修复。
2.根据权利要求1所述的应用程序修复方法,其特征在于,所述通过钩子机制截获目标方法之前,还包括:
若确定运行所述应用程序的终端未存储有所述目标资源,则在所述目标资源通过校验后存储于所述终端的内存中。
3.根据权利要求1所述的应用程序修复方法,其特征在于,所述通过钩子机制截获目标方法,包括:
通过钩子截获对所述待修复资源进行处理的目标类的目标方法;
将所截获的目标类的目标方法传入钩子对象。
4.根据权利要求3所述的应用程序修复方法,其特征在于,所述当所述应用程序执行到所述目标方法时,利用从所述服务器端所获取到的目标资源替换所述待修复资源,以实现对所述应用程序的修复,包括:
当所述应用程序执行到所述目标类的目标方法时,根据所述服务器端所指示的注入点,对传入所述钩子对象的目标类的目标方法注入所述目标资源。
5.根据权利要求4所述的应用程序修复方法,其特征在于,所述注入点包括:函数执行前注入、函数执行后注入和替换函数执行的代码段中的一个。
6.根据权利要求1-5任一项所述的应用程序修复方法,其特征在于,所述利用从所述服务器端所获取到的目标资源替换所述待修复资源,包括:
若通过钩子机制所截获的目标方法为单一函数,利用所述目标资源替换所述单一函数所处理的待修复资源;
若通过钩子机制所截获的目标方法为系统函数,遍历资源文件中的字符串查询所述待修复资源,利用所述目标资源替换所查询到的待修复资源。
7.根据权利要求1-5任一项所述的应用程序修复方法,其特征在于,所述启动应用程序,并将资源文件的列表加载至内存中,包括:
启动所述应用程序时,通过反射方式获取到运行所述应用程序的终端所存储资源文件的列表;
将所获取到的资源文件的列表加载至内存中。
8.一种应用程序修复装置,其特征在于,包括:
加载模块,用于启动应用程序,并将资源文件的列表加载至内存中;
接收模块,用于在所述应用程序启动时,通过接口获取服务器端推送的修复信息;所述修复信息包括待修复资源的标识和目标资源;
截获模块,用于在根据所加载的资源文件的列表,对所述资源文件执行预设处理流程时,通过钩子机制截获目标方法;其中,所述目标方法用于对服务器端所指示的待修复资源进行处理;
替换模块,用于当所述应用程序执行到所述目标方法时,根据所述目标方法的类型,利用从所述服务器端所获取到的目标资源替换所述待修复资源,以实现对所述应用程序的修复。
9.根据权利要求8所述的应用程序修复装置,其特征在于,所述装置,还包括:
接收模块,用于若确定运行所述应用程序的终端未存储有所述目标资源,则在所述目标资源通过校验后存储于所述终端的内存中。
10.根据权利要求8所述的应用程序修复装置,其特征在于,
所述截获模块,具体用于通过钩子截获对所述待修复资源进行处理的目标类的目标方法;将所截获的目标类的目标方法传入钩子对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611070213.7/1.html,转载请声明来源钻瓜专利网。