[发明专利]一种动态链接库的加载方法及装置有效
申请号: | 202010077751.9 | 申请日: | 2020-01-31 |
公开(公告)号: | CN113204377B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 王涛;孙文涌 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 赵玲 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 链接 加载 方法 装置 | ||
1.一种动态链接库的加载方法,其特征在于,应用于电子设备,所述方法包括:
响应于应用程序加载第一动态链接库的请求,判断所述第一动态链接库的标识是否在已加载动态链接库列表中;
当所述第一动态链接库的标识不在所述已加载动态链接库列表中时,执行步骤A~C:
步骤A,为所述第一动态链接库分配句柄,并将所述第一动态链接库的标识以及为所述第一动态链接库分配的句柄添加到已加载动态库列表中;
步骤B,判断第一动态链接库是否为整合动态链接库;
当所述第一动态链接库为整合动态链接库时,执行步骤1和步骤2,并在执行步骤2之后,执行步骤C;
步骤1,将M个被整合的动态链接库的标识以及为所述第一动态链接库分配的句柄添加到所述已加载动态链接库列表中,所述第一动态链接库是通过对所述M个被整合的动态链接库的源码编译得到的,所述M为大于1的正整数;
步骤2,根据为所述第一动态链接库分配的句柄对所述第一动态链接库重定位,并将所述第一动态链接库加载到所述电子设备的运行内存中;
步骤C,向所述应用程序返回为所述第一动态链接库分配的句柄。
2.如权利要求1所述的方法,其特征在于,所述第一动态链接库包括虚拟库列表段和N个二进制段,其中,虚拟库列表段包括所述M个被整合的动态链接库的标识,N个二进制段中的任意一个二进制段包括所述M个被整合的动态链接库中对应的二进制段的内容;所述N为大于或等于1的正整数。
3.如权利要求1或2所述的方法,其特征在于,响应于应用程序加载第一动态链接库的请求,包括:
在所述应用程序启动时,响应于所述应用程序循环加载所述应用程序的依赖库的请求,所述第一动态链接库为所述应用程序的依赖库之一;或者,
在所述应用程序运行时,响应于所述应用程序加载所述第一动态链接库的请求。
4.如权利要求1或2所述的方法,其特征在于,所述第一动态链接库是通过对所述M个被整合的动态链接库的源码编译得到的,包括:
所述第一动态链接库是通过对M个静态链接库整合得到的;所述M个静态链接库中每个静态链接库是通过对所述M个被整合的动态链接库的源码中对应源码编译得到的。
5.如权利要求1或2所述的方法,其特征在于,所述响应于应用程序加载第一动态链接库的请求,判断第一动态链接库的标识是否在已加载动态链接库列表中之后,还包括:
当所述第一动态链接库的标识在所述已加载动态链接库列表中时,执行步骤D,并在执行步骤D之后执行步骤C;
步骤D,根据所述已加载动态链接库列表中所述第一动态链接库的标识,获得所述第一动态链接库的句柄。
6.如权利要求1或2所述的方法,其特征在于,在执行步骤B判断第一动态链接库是否为整合动态链接库之后,还包括:
当所述第一动态链接库不为整合动态链接库时,执行步骤3,并在执行步骤3之后,执行步骤C;
步骤3,根据为所述第一动态链接库分配的句柄对所述第一动态链接库重定位,并将所述第一动态链接库加载到所述电子设备的运行内存中。
7.如权利要求2所述的方法,其特征在于,所述判断第一动态链接库是否为整合动态链接库,包括:
判断所述第一动态链接库是否包括虚拟库列表段;其中,当所述第一动态链接库包括虚拟列表段时,所述第一动态链接库为整合动态链接库;或者,
判断所述第一动态链接库的标识是否为预定义的标识,其中,当所述第一动态链接库的标识为所述预定义的标识时,所述第一动态链接库为整合动态链接库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010077751.9/1.html,转载请声明来源钻瓜专利网。