[发明专利]一种动态加载方法、目标文件的制作方法及装置有效
申请号: | 201711160959.1 | 申请日: | 2017-11-20 |
公开(公告)号: | CN109814939B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 陈新中;黄基松;黄雁辉 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 冯艳莲 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 加载 方法 目标 文件 制作方法 装置 | ||
一种动态加载方法、目标文件的制作方法及装置。该方法包括:在终端设备中的应用程序的运行过程中,加载动态链接库文件,所述动态链接库文件中包含能够实现所述应用程序中的特定功能的符号;所述符号包括函数和/或变量;从所述应用程序的源文件中读取第一数组索引index;从全局符号表中确定与所述第一index对应的第一符号地址;所述第一符号地址用于指示能够实现所述特定功能的符号的物理地址;根据所述第一符号地址从所述动态连接库文件中调用所述符号,完成所述应用程序的运行。在这种动态加载过程中,index占用的内存空间较小,节省资源。
技术领域
本发明实施例涉及软件动态加载技术领域,尤其涉及一种动态加载方法、目标文件的制作方法及装置。
背景技术
随着计算机技术的发展,终端设备的功能越来越多,对于开发人员来说,每增加一个功能,就意味着增加若干的应用程序,所以开发人员在编写应用程序的代码时,需要考虑不同的应用程序的业务需求是否有重叠,对于重叠的部分,其代码通常可以被编译为一个动态链接库文件,当应用程序被执行时,加载该动态链接库文件即可,这个过程即为动态加载过程。因此,采用动态加载的方式,开发人员不需要在不同的编程任务(例如应用程序)中编写同样的代码,即一个动态链接库库可以为多个应用程序服务,大大的节省了终端设备的内存空间。
目前,终端设备的应用程序被执行时,使用动态链接库文件的具体过程为,终端设备根据应用程序文件的符号名在全局符号表中寻找符号地址,图1示出了现有技术中全局符号表的示意图,然后根据符号地址从加载的动态库中调用符号。在实际操作过程中,由于全局符号表中的字符串名本身占用的内存资源比较大,所以终端设备在动态加载的过程中,消耗的内存资源较大。
发明内容
本发明实施例提供一种目标文件的加载方法及装置,用以解决目前的动态加载方式消耗资源太大的技术问题。
第一方面,本发明实施例提供一种动态加载方法,该方法可以从终端设备的角度进行描述,终端设备可以是手机、IPAD等设备。该方法包括:在终端设备中的应用程序的运行过程中,加载动态链接库文件,所述动态链接库文件中包含能够实现所述应用程序中的特定功能的符号;所述符号包括函数和/或变量;从所述应用程序的源文件中读取第一数组索引index;从全局符号表中确定与所述第一index对应的第一符号地址;所述第一符号地址用于指示能够实现所述特定功能的符号的物理地址;根据所述第一符号地址从所述动态连接库文件中调用所述符号,完成所述应用程序的运行。
在本发明实施例中,动态链接库文件中包含应用程序在运行过程中所需要的符号,所以终端设备在运行应用程序时,可以加载动态链接库文件,终端设备从应用程序的源文件中读取第一index,然后在全局符号表中确定与第一index对应的第一符号地址,进而根据第一符号地址从动态链接库文件中调用符号,由于index本身占据的内存相对较少,有助于节省资源。
在一个可能的设计中,终端设备加载动态链接库文件时,包括:将所述动态链接库文件存储于所述终端设备的内存中;从所述动态链接库文件中的st_name代码中读取所述第一index;根据第一index与第二符号地址的映射关系确定与所述第一index对应的第二符号地址;所述第二符号地址用于指示所述动态链接库文件中能够实现所述特定功能的符号的逻辑地址;对所述第二符号地址进行重定位,得到所述第一符号地址;将所述第一符号地址填充在所述动态链接库文件中,完成所述动态链接库文件的加载。
在本发明实施例中,终端设备加载动态链接库文件时,可以读取动态链接库文件中读取第一index,然后根据第一index与第二符号地址之间的映射关系确定于第一index对应的第二符号地址,然后对第二符号地址进行重定位,将重定位之后的地址填充到动态链接库文件中,完成动态链接库文件的加载,由于index占用的内存资源比较少,所以终端设备加载动态库文件占用的内存资源也较少。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711160959.1/2.html,转载请声明来源钻瓜专利网。