[发明专利]应用程序的热修复方法及终端有效
申请号: | 201610803083.7 | 申请日: | 2016-09-05 |
公开(公告)号: | CN106648724B | 公开(公告)日: | 2020-05-01 |
发明(设计)人: | 陈莉锋 | 申请(专利权)人: | TCL集团股份有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/65 |
代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
地址: | 516006 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 修复 方法 终端 | ||
1.一种应用程序的热修复方法,其特征在于,所述热修复方法包括:
第一终端将预设应用的修复代码打包生成热修复补丁包,然后将所述热修复补丁包下发至已安装所述预设应用的第二终端;
所述第二终端接收并保存所述热修复补丁包,当所述预设应用启动时,加载所述热修复补丁包,对所述预设应用进行热修复;
所述第一终端将预设应用的修复代码打包生成热修复补丁包包括:
所述第一终端对所述预设应用的已修复版本中的每一个类进行哈希运算,得到第一哈希文件;
将所述第一哈希文件与所述预设应用的未修复版本的第二哈希文件进行比对,得到修复后的类并生成所述类的class文件;
根据所述class文件生成dex文件,并将所述dex文件打包为热修复补丁包。
2.如权利要求1所述的应用程序的热修复方法,其特征在于,所述第一终端将预设应用的修复代码打包生成热修复补丁包包括:
所述第一终端保存所述预设应用的未修复版本中class文件的消息摘要信息,使用未修复版本的mapping文件来编译已修复版本,生成消息摘要信息;
将编译后的所述消息摘要信息与所述预设应用的已修复版本中class文件的消息摘要信息进行比对,得到修复后的class文件;
根据所述修复后的class文件生成dex文件,并将所述dex文件打包为热修复补丁包。
3.如权利要求1或2所述的应用程序的热修复方法,其特征在于,所述当所述预设应用启动时,加载所述热修复补丁包,对所述预设应用进行热修复包括:
在所述预设应用启动时,将所述热修复补丁包写入到所述预设应用的私有目录文件中;
从所述热修复补丁包的dex文件中获取第一dexElements数组,以及从所述预设应用的未修复版本中获取第二dexElements数组;
拼接所述第一dexElements数组和第二dexElements数组,得到第三dexElements数组,并将所述dex文件插入至所述第三dexElements数组的首位;
将所述第三dexElements数组通过反射的方式设置给热修复补丁列表再赋值回类加载器,以使得所述类加载器载入所述dex文件。
4.一种终端,其特征在于,所述终端包括:
生成模块,用于将预设应用的修复代码打包生成热修复补丁包;
下发模块,用于将所述热修复补丁包下发至已安装所述预设应用的第二终端,以使得所述第二终端在所述预设应用启动时加载所述热修复补丁包并对所述预设应用进行热修复;
所述生成模块包括:
运算单元,用于对所述预设应用的已修复版本中的每一个类进行哈希运算,得到第一哈希文件;
第一比对单元,用于将所述第一哈希文件与所述预设应用的未修复版本的第二哈希文件进行比对,得到修复后的类并生成所述类的class文件;
第一打包单元,用于根据所述class文件生成dex文件,并将所述dex文件打包为热修复补丁包。
5.如权利要求4所述的终端,其特征在于,所述生成模块包括:
编译单元,用于保存所述预设应用的未修复版本中class文件的消息摘要信息,使用未修复版本的mapping文件来编译已修复版本,生成消息摘要信息;
第二比对单元,用于将编译后的所述消息摘要信息与所述预设应用的已修复版本中class文件的消息摘要信息进行比对,得到修复后的class文件;
第二打包单元,用于根据所述修复后的class文件生成dex文件,并将所述dex文件打包为热修复补丁包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于TCL集团股份有限公司,未经TCL集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610803083.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:显示壁纸的方法及终端
- 下一篇:终端、服务器及配置文件升级方法