[发明专利]应用更新方法、装置、终端及存储介质有效
| 申请号: | 201910402212.5 | 申请日: | 2019-05-14 |
| 公开(公告)号: | CN112035153B | 公开(公告)日: | 2021-08-24 |
| 发明(设计)人: | 丁平 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F8/658 | 分类号: | G06F8/658;G06F8/71;G06F9/445;G06F8/41 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
| 地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用 更新 方法 装置 终端 存储 介质 | ||
1.一种应用更新方法,其特征在于,所述方法包括:
在应用的运行过程中,获取所述应用待更新的补丁文件,所述补丁文件包括第一类文件和第二函数的函数名,所述第一类文件中包括第一函数,所述第二函数为调用所述第一函数的函数,所述第一类文件是基于所述应用的更新版本和原有版本生成的,用于更新所述应用的文件;
在所述应用下一次启动时,将所述补丁文件插入到类加载器的类列表中所述原有版本的类文件之前;
通过所述类加载器对所述原有版本的类文件中第二类文件进行加载时,将所述第二函数的执行模式更新为解释执行,其中,所述第二类文件包括所述第二函数;
所述通过所述类加载器对所述原有版本的类文件中第二类文件进行加载时,将所述第二函数的执行模式更新为解释执行,包括下述任一步骤:
基于所述函数名,确定所述第二类文件,加载所述第二类文件,在加载所述第二类文件中的所述第二函数时,将所述第二函数的执行模式更新为所述解释执行;
当所述类加载器加载类文件中的函数时,基于所述函数名,确定所述函数是否为所述第二函数,若所述函数为所述第二函数,则将所述第二函数的执行模式更新为所述解释执行。
2.根据权利要求1所述的方法,其特征在于,所述第一类文件包括所述更新版本与所述原有版本之间的差异类的文件、所述差异类的子类的文件、引用所述差异类的父类的文件和引用所述子类的父类的文件。
3.根据权利要求1所述的方法,其特征在于,在执行所述将所述补丁文件插入到类加载器的类列表中所述原有版本的类文件之前的步骤之前,所述方法还包括:
基于所述第一类文件的类名,将类加载列表中与所述类名相同的类文件移除,所述类加载列表用于存储已预先加载的第三类文件;
清空缓存,所述缓存用于存储所述第三类文件中第三函数的函数字段。
4.根据权利要求1所述的方法,其特征在于,在所述将所述第二函数的执行模式更新为解释执行之后,所述方法还包括:
增加所述第二函数的热度,所述热度指示所述第二函数的被调用次数;
当所述热度达到热度阈值时,若所述第二函数被调用时,通过即时编译JIT对所述第二函数进行编译。
5.根据权利要求4所述的方法,其特征在于,所述增加所述第二函数的热度,包括:
获取所述第二函数中记录热度的函数字段;
将所述函数字段添加至热度增加列表中;
调用样本增加函数增加所述函数字段记录的热度。
6.一种应用更新装置,其特征在于,所述装置包括:
获取模块,用于在应用的运行过程中,获取所述应用待更新的补丁文件,所述补丁文件包括第一类文件和第二函数的函数名,所述第一类文件中包括第一函数,所述第二函数为调用所述第一函数的函数,所述第一类文件是基于所述应用的更新版本和原有版本生成的,用于更新所述应用的文件;
插入模块,用于在所述应用下一次启动时,将所述补丁文件插入到类加载器的类列表中所述应用的原有版本的类文件之前;
更新模块,用于通过所述类加载器对所述原有版本的类文件中第二类文件进行加载时,将所述第二函数的执行模式更新为解释执行,其中,所述第二类文件包括所述第二函数;
所述更新模块用于执行下述任一步骤:
基于所述函数名,确定所述第二类文件,加载所述第二类文件,在加载所述第二类文件中的所述第二函数时,将所述第二函数的执行模式更新为所述解释执行;
当所述类加载器加载类文件中的函数时,基于所述函数名,确定所述函数是否为所述第二函数,若所述函数为所述第二函数,则将所述第二函数的执行模式更新为所述解释执行。
7.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至5任一权利要求所述的应用更新方法中所执行的操作。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至5任一权利要求所述的应用更新方法中所执行的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910402212.5/1.html,转载请声明来源钻瓜专利网。





