[发明专利]应用程序的加载方法、装置、计算机设备及存储介质有效
申请号: | 201810635271.2 | 申请日: | 2018-06-20 |
公开(公告)号: | CN108874468B | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 陈小虎 | 申请(专利权)人: | 深圳市腾讯网络信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518102 广东省深圳市宝安区新安街道新安六路御景*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 加载 方法 装置 计算机 设备 存储 介质 | ||
本发明公开了一种应用程序的加载方法、装置、计算机设备及存储介质,属于计算机技术领域。方法包括:将应用程序映射到内存缓冲区,内存缓冲区的每个比特位的取值为第一数值;将应用程序的重定位表中的重定位地址,映射到内存缓冲区的对应比特位的取值更改为第二数值;在加载应用程序时,当应用程序的地址映射到内存缓冲区的对应比特位的取值为第一数值时,按照地址进行应用程序的加载;当应用程序的地址映射到内存缓冲区的对应比特位的取值为第二数值时,对地址进行重定位后,按照重定位后的地址进行应用程序的加载。本发明在加载应用程序时,可以快速地判断地址是否需要重定位,耗费的时间大大减少,效率提升明显。
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序的加载方法、装置、计算机设备及存储介质。
背景技术
链接器在生成一个应用程序的可执行文件时,会设置该可执行文件被加载时的默认基地址,应用程序的默认基地址一般被设置为0x00400000h,动态链接库的默认基地址一般被设置为0x10000000。在加载应用程序时,应用程序中的一个动态链接库被加载到内存中时,会被优先加载到默认基地址,如果该动态链接库加载时的默认基地址与其它动态链接库的基地址发生冲突,如该默认基地址已分配给其他动态链接库,则需要对该动态链接库的基地址进行重定位,以实现应用程序的正常加载和运行。
目前,在加载应用程序过程中,当判断一个地址是否需要重定位时,需要用到重定位表,重定位表里记录了应用程序的哪些地址需要重定位(重定位地址)以及如何进行重定位的信息。计算机设备可以采用循环查找或者排序查找的方法,循环查找是指枚举重定位表,也即是,将重定位表中所有的重定位地址列出来存储,每判断一个地址是否需要重定位,则循环一次存储了重定位地址的数据结构,如果该地址在该数据结构中,则确定该地址需要重定位,如果该地址不在该数据结构中,则确定该地址不需要重定位。排序查找是指先枚举重定位表,再对重定位表中的重定位地址进行排序,每判断一个地址是否需要重定位,则二分查找一次存储了重定位地址的数据结构。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
在加载应用程序时,需要枚举重定位表,每判断一个地址是否需要重定位时,则需要查询存储了重定位地址的数据结构,复杂度高,当需要判断的地址很多时,需要耗费较长的时间。
发明内容
本发明实施例提供了一种应用程序的加载方法、装置、计算机设备及存储介质,可以解决相关技术需要耗费较长的时间的问题。所述技术方案如下:
一方面,提供了一种应用程序的加载方法,所述方法包括:
将应用程序映射到内存缓冲区,所述应用程序的镜像大小是所述内存缓冲区的大小的预设倍数,所述内存缓冲区的每个比特位的取值为第一数值;
将所述应用程序的重定位表中的重定位地址,映射到所述内存缓冲区的对应比特位的取值更改为第二数值,所述重定位地址是指需要重定位的地址;
在加载所述应用程序时,当所述应用程序的地址映射到所述内存缓冲区的对应比特位的取值为所述第一数值时,按照所述地址进行所述应用程序的加载;
当所述应用程序的地址映射到所述内存缓冲区的对应比特位的取值为所述第二数值时,对所述地址进行重定位后,按照重定位后的地址进行所述应用程序的加载。
一方面,提供了一种应用程序的加载装置,所述装置包括:
映射模块,用于将应用程序映射到内存缓冲区,所述应用程序的镜像大小是所述内存缓冲区的大小的预设倍数,所述内存缓冲区的每个比特位的取值为第一数值;
更改模块,用于将所述应用程序的重定位表中的重定位地址,映射到所述内存缓冲区的对应比特位的取值更改为第二数值,所述重定位地址是指需要重定位的地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯网络信息技术有限公司,未经深圳市腾讯网络信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810635271.2/2.html,转载请声明来源钻瓜专利网。