[发明专利]应用程序的热修复方法和装置有效
申请号: | 201810930312.0 | 申请日: | 2018-08-15 |
公开(公告)号: | CN109344619B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 刘建章 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 修复 方法 装置 | ||
1.一种应用程序的热修复方法,其特征在于,包括:
当所述应用程序运行的目标页面调用目标方法时,若预先加载的Java补丁包包括针对所述目标方法的目标修复代码,则执行所述目标修复代码以对所述目标页面进行资源热修复,其中,所述目标修复代码包括对目标方法的逻辑修复代码和对资源的修复代码,且所述对资源的修复代码写在所述对目标方法的逻辑修复代码中;
所述执行所述目标修复代码以对所述目标页面进行资源热修复,包括:
将本地目标存储路径的目标资源文件加载至所述目标页面,其中,所述目标资源文件是所述应用程序的原始资源文件和预先下载的资源补丁包中的资源文件进行合并操作得到的资源文件的并集;
对加载的所述目标资源文件解析,生成多个编码资源和新资源映射表,其中,所述多个编码资源中的每个编码资源具有资源名称,所述新资源映射表包括编码资源的资源名称与资源标识的对应关系;
将所述目标页面调用的原始资源映射表替换为所述新资源映射表;
根据所述新资源映射表和所述多个编码资源,对所述目标页面进行资源热修复。
2.根据权利要求1所述的方法,其特征在于,所述当所述应用程序运行的目标页面调用目标方法时之前,所述方法还包括:
从服务器下载待修复补丁包,其中,所述待修复补丁包包括:Java补丁包和资源补丁包,其中,所述Java补丁包包括针对所述应用程序的待修复方法的修复代码;
将所述应用程序的原始资源文件与所述资源补丁包中的资源文件合并,得到目标资源文件;
将所述目标资源文件存储至本地目标存储路径;
将所述Java补丁包加载至运行的所述应用程序中。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标页面调用的原始资源映射表替换为所述新资源映射表,包括:
所述目标页面调用根据预设热修复框架开发的目标替换方法,其中,所述目标替换方法用于将被调用页面所使用的原始资源映射表替换为所述新资源映射表。
4.根据权利要求1所述的方法,其特征在于,所述根据所述新资源映射表和所述多个编码资源,对所述目标页面进行资源热修复,包括:
确定所述目标方法中待调用的目标编码资源的目标资源标识;
根据所述新资源映射表中的所述对应关系,确定与所述目标资源标识对应的目标资源名称;
从所述多个编码资源中查找资源名称与所述目标资源名称匹配的目标编码资源;
在所述目标页面显示所述目标编码资源。
5.一种应用程序的热修复装置,其特征在于,包括:
资源修复模块,用于当所述应用程序运行的目标页面调用目标方法时,若预先加载的Java补丁包包括针对所述目标方法的目标修复代码,则执行所述目标修复代码以对所述目标页面进行资源热修复,其中,所述目标修复代码包括对目标方法的逻辑修复代码和对资源的修复代码,且所述对资源的修复代码写在所述对目标方法的逻辑修复代码中;
所述资源修复模块包括:
加载子模块,用于将本地目标存储路径的目标资源文件加载至所述目标页面,其中,所述目标资源文件是所述应用程序的原始资源文件和预先下载的资源补丁包中的资源文件进行合并操作得到的资源文件的并集;
解析子模块,用于对加载的所述目标资源文件解析,生成多个编码资源和新资源映射表,其中,所述多个编码资源中的每个编码资源具有资源名称,所述新资源映射表包括编码资源的资源名称与资源标识的对应关系;
替换子模块,用于将所述目标页面调用的原始资源映射表替换为所述新资源映射表;
修复子模块,用于根据所述新资源映射表和所述多个编码资源,对所述目标页面进行资源热修复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810930312.0/1.html,转载请声明来源钻瓜专利网。