[发明专利]程序修复方法和装置有效
申请号: | 201910695631.2 | 申请日: | 2019-07-30 |
公开(公告)号: | CN110399246B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 阮凤立;刘畅;袁义龙;刘定俊;卞光宇 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/14 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 修复 方法 装置 | ||
1.一种程序修复方法,其特征在于,用于终端中,所述方法包括:
在程序的软件开发工具包运行开始时注册接口,以监控所述软件开发工具包的运行是否发生崩溃,所述软件开发工具包在编译打包时添加有软件开发工具包的专属标志,当所述软件开发工具包中的组件引起程序崩溃时,用于根据崩溃日志来确定是否为所述软件开发工具包中的组件引起的崩溃;
每当运行的程序的所述软件开发工具包中目标组件引起所述程序崩溃时,将所述目标组件的版本信息记录在崩溃文件中;
所述程序再次运行时,检测加载路径中的目标组件的版本是否为所述崩溃文件中记录的版本;
当所述加载路径中的目标组件的版本为所述崩溃文件中记录的版本时,检测备份路径中的目标组件的版本是否为所述崩溃文件中记录的版本;
当所述备份路径中的目标组件的版本不是所述崩溃文件中记录的版本时,以所述备份路径中的目标组件替换所述加载路径中的目标组件;
当所述备份路径中的目标组件的版本是所述崩溃文件中记录的版本时,检测资源路径中的目标组件的版本是否是所述崩溃文件中记录的版本,所述资源路径中的目标组件的版本为原始版本的目标组件;
当所述资源路径中的目标组件的版本不是所述崩溃文件中记录的版本时,以所述资源路径中的目标组件替换所述加载路径中的目标组件,通过所述资源路径或所述备份路径中的目标组件替换所述加载路径中的目标组件,是离线修复的方式;
以热更新的方式加载所述加载路径中替换后的目标组件,所述目标组件包括接口服务部分、反射部分以及文件管理部分,所述接口服务部分是暴露给外部的公共接口,反射部分用于通过反射的方式在运行时将文件加载到内存中;
当加载所述加载路径中的目标组件后,所述程序的运行时长到达时长阈值且与所述备份路径中的目标组件的版本不一致时,将所述加载路径的目标组件存储在备份路径中,并替换所述备份路径中的目标组件;
当服务器存在更新的目标组件时,以更新的目标组件替换所述加载路径中的目标组件。
2.根据权利要求1所述的方法,其特征在于,所述每当运行的程序中的目标组件引起所述程序的崩溃时,记录所述目标组件的崩溃版本的信息之后,所述方法还包括:
向服务器发送所述目标组件引起所述程序崩溃时的崩溃日志;
接收所述服务器根据所述崩溃日志反馈的更新版本的目标组件;
以所述更新版本的目标组件替换所述加载路径中的目标组件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述资源路径中的目标组件的版本是所述崩溃文件中记录的版本时,检测服务器是否存在更新的目标组件;
当所述服务器存在更新的目标组件时,以所述更新的目标组件替换所述加载路径中的目标组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910695631.2/1.html,转载请声明来源钻瓜专利网。