[发明专利]应用程序热更新方法、装置和计算机可读存储介质有效
申请号: | 201910398867.X | 申请日: | 2019-05-14 |
公开(公告)号: | CN111949301B | 公开(公告)日: | 2023-10-27 |
发明(设计)人: | 时富军 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656 |
代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 方高明 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 更新 方法 装置 计算机 可读 存储 介质 | ||
1.一种应用程序热更新方法,包括:
获取应用程序的已注册组件;
当系统调用所述已注册组件时,根据所述已注册组件通过代理调用到所述应用程序的待热更新组件,所述代理并非系统组件的子类;
当系统调用所述待热更新组件时,所述待热更新组件通过所述代理调用到所述系统组件中的公开方法;
通过所述系统组件中的公开方法对所述待热更新组件进行热更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述代理为中间件;
将所述待热更新组件的父类修改为中间件,所述中间件包括系统组件中的公开方法名称及设置所述已注册组件的方法;
通过所述已注册组件动态加载所述待热更新组件,使得所述中间件与所述已注册组件相互持有;
通过所述已注册组件覆盖所述系统组件中的公开方法,对所述待热更新组件、所述已注册组件及所述中间件中被覆盖的系统同名方法增加调用父类的相应预设方法,所述系统同名方法为与所述中间件中所包括的系统组件中的公开方法名称同名的方法。
3.根据权利要求2所述的方法,其特征在于,所述当系统调用所述已注册组件时,根据所述已注册组件通过代理调用到所述应用程序的待热更新组件,包括:
通过所述已注册组件覆盖所述系统组件中的公开方法,当系统调用所述已注册组件时转调所述中间件上的同名方法;
在转调所述中间件上的同名方法之后,转调所述待热更新组件上的同名方法,以使系统调用到所述待热更新组件。
4.根据权利要求2所述的方法,其特征在于,所述当系统调用所述待热更新组件时,所述待热更新组件通过所述代理调用到所述系统组件中的公开方法,包括:
当系统调用所述待热更新组件时,通过所述待热更新组件中的相应预设方法调用所述中间件中的同名方法;
当调用所述中间件中的同名方法时,通过所述中间件中的相应预设方法调用所述已注册组件中的同名方法;
当调用所述已注册组件中的同名方法时,通过所述已注册组件中的相应预设方法调用到所述系统组件中的公开方法。
5.根据权利要求2所述的方法,其特征在于,所述通过所述已注册组件动态加载所述待热更新组件,使得所述中间件与所述已注册组件相互持有,包括:
通过所述已注册组件在实现onCreate方法时动态加载所述待热更新组件,使得所述已注册组件持有中间件;
根据所述中间件中所包括的设置所述已注册组件的方法,使得所述中间件持有所述已注册组件。
6.根据权利要求5所述的方法,其特征在于,所述通过所述已注册组件在实现onCreate方法时动态加载所述待热更新组件,使得所述已注册组件持有中间件,包括:
通过所述已注册组件在实现onCreate方法时动态加载所述待热更新组件,使得所述已注册组件以中间件类型持有所述待热更新组件;
根据所述待热更新组件的父类为中间件,得到所述已注册组件持有中间件。
7.根据权利要求2所述的方法,其特征在于,所述将所述待热更新组件的父类修改为中间件,包括:
在编译期通过修改字节码将所述待热更新组件的父类修改为中间件。
8.根据权利要求2所述的方法,其特征在于,所述预设方法包括super方法或invock方法。
9.根据权利要求1所述的方法,其特征在于,所述系统为操作系统,包括安卓系统;所述组件包括所述安卓系统中的activity、service、contentprovider、broadcastreceive。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910398867.X/1.html,转载请声明来源钻瓜专利网。