[发明专利]应用程序的热更新方法及装置、存储介质及电子设备有效
| 申请号: | 201911065642.9 | 申请日: | 2019-11-04 |
| 公开(公告)号: | CN110837391B | 公开(公告)日: | 2021-02-12 |
| 发明(设计)人: | 卢雄涛;王妍鹏 | 申请(专利权)人: | 广州方硅信息技术有限公司 |
| 主分类号: | G06F8/656 | 分类号: | G06F8/656;G06F8/658 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李伟 |
| 地址: | 510000 广东省广州*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用程序 更新 方法 装置 存储 介质 电子设备 | ||
1.一种应用程序的热更新方法,其特征在于,包括:
当检测到与当前应用程序对应的可执行与可链接格式ELF文件时,对所述ELF文件进行解析,以获取所述ELF文件中的各个可加载段;
将每个所述可加载段映射至其对应的内存中;
确定每个所述可加载段的指针节区,并调用所述指针节区中的函数指针,在所述内存中执行所述可加载段中与所述函数指针对应的代码,以将所述代码更新至所述应用程序中;
当每个所述可加载段中的代码均更新至所述当前应用程序中时,完成所述ELF文件在内存中的加载,以实现所述应用程序的热更新;
其中,所述确定每个所述可加载段的指针节区,并调用所述指针节区中的函数指针,在所述内存中执行所述可加载段中与所述函数指针对应的代码,包括:
从所述可加载段的段参数表中获取所述可加载段的指针节区标识,依据所述指针节区标识在所述可加载段中确定对应的指针节区;
从所述可加载段的段参数表中获取所述可加载段的加载器标识,并确定与所述加载器标识对应的加载器;
调用所述指针节区中的函数指针,并确定与所述函数指针在可加载段中对应的代码,使用所述加载器在所述内存中执行所述代码。
2.根据权利要求1所述的方法,其特征在于,所述获取所述ELF文件中的各个可加载段,包括:
获取所述ELF文件中的程序头表;
读取所述程序头表中的各个程序头;
确定每个所述程序头的属性参数是否表征可加载属性;
若所述程序头的属性参数表征可加载属性,在所述ELF文件中,获取与所述程序头对应的可加载段。
3.根据权利要求1所述的方法,其特征在于,所述将每个所述可加载段映射至其对应的内存中,包括:
确定每个所述可加载段的段长度;
依据每个所述可加载段的段长度,为所述可加载段分配与其对应的内存;
获取每个所述可加载段的各个加载参数,并依据所述各个加载参数,将所述可加载段映射至其对应的内存中。
4.根据权利要求1所述的方法,其特征在于,还包括:
判断所述ELF文件是否已使用预设的加密算法进行加密;
若判断所述ELF文件已使用预设的加密算法进行加密,则确定与所述加密算法对应的解密算法;
使用所述解密算法对所述ELF文件进行解密,得到解密后的ELF文件。
5.根据权利要求2所述的方法,其特征在于,所述在所述ELF文件中,获取与所述程序头对应的可加载段,包括:
获取所述程序头中的偏移参数以及长度参数;
依据所述偏移参数在所述ELF文件中确定偏移位置;
从所述偏移位置开始,在所述ELF文件中确定与所述长度参数所表征的数据长度相一致的数据段;
将所述数据段确定为与所述程序头对应的可加载段。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述ELF文件在所述内存中加载完成时,清除所述内存中的可加载段以及所述代码的执行痕迹。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州方硅信息技术有限公司,未经广州方硅信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911065642.9/1.html,转载请声明来源钻瓜专利网。





