[发明专利]一种实现动态链接库的方法和装置有效
申请号: | 200910083419.7 | 申请日: | 2009-04-30 |
公开(公告)号: | CN101561763A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | 吴志华;古佳;邱会发;邱璇 | 申请(专利权)人: | 腾讯科技(北京)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京三高永信知识产权代理有限责任公司 | 代理人: | 何文彬 |
地址: | 100089北京市海淀区海淀大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 动态 链接 方法 装置 | ||
技术领域
本发明涉及通信领域,特别涉及一种实现动态链接库的方法和装置。
背景技术
MTK平台由于其低廉的价格较高的完工率做为目前最流行的终端解决方 案广泛应用于各个终端品牌。但由于其软件平台不支持应用的动态加载和在线 更新,导致MTK平台终端应用部署只能在生产时烧录到终端的ROM(Read-Only Memory,只读存储器)芯片中。而残酷的终端竞争使得厂商不断压缩生产成本, ROM芯片空间也越来越小,制约了终端应用的表现和内容,成为终端应用开发 的第一大瓶颈。现有技术中通过动态加载中间件平台,当运行应用时将应用文 件从文件系统加载到RAM(random access memory,随机存储器)内存空间中,解 决了应用只能存放在ROM空间的问题,从而解决ROM空间紧张和应用丰富表 现和内容之前的矛盾。中间件平台支持将整个应用包下载进行更新。
但是不管是把应用放在ROM空间还是RAM空间大小都是有限的,当存在 多个应用时,动态加载中间件平台在多应用加载时,内存空间可能存储不下多 应用所占用的空间。
发明内容
为了实现多应用同时加载时,多应用的大小和内存空间不产生冲突,本发 明实施例提供了一种实现动态链接库的方法和装置。所述技术方案如下:
一种实现动态链接库的方法,所述方法包括:
接收加载动态链接库文件的请求;
根据接收的加载请求判断动态链接库文件是否已经加载;
如果已经加载,则将所述动态链接库文件对应的句柄中计数器值加1,并执 行接收加载动态链接库文件的请求的步骤;
如果没有加载,根据所述动态链接库文件名进行加载,如果加载成功,为 所述动态链接库文件分配空闲句柄,并在所述分配的句柄中保存所述动态链接 库文件信息,将所述计数器值初始化为预设值并加1,然后执行接收加载动态链 接库文件的请求的步骤;否则,直接执行所述接收加载动态链接库文件的请求 的步骤;
接收获取所述动态链接库文件对外部其他应用提供的服务接口地址的请 求;
根据所述获取请求中的函数名调用句柄中保存的查询函数来查询所述动态 链接库文件对外部其他应用提供的服务接口相对地址,如果查找到,将查询的 所述相对地址加上所述动态链接库文件的起始地址,作为所述动态链接库文件 对外部其他应用提供的服务接口地址;否则,执行接收获取动态链接库文件对 外部其他应用提供的服务接口地址的请求的步骤;
释放所述动态链接库文件。
所述动态链接库文件信息包括:查询接口函数指针,动态链接库文件名及动 态链接库文件起始地址。
所述释放动态链接库文件,具体包括:
接收释放所述动态链接库文件的请求;
将所述动态链接库文件对应的句柄中计数器值减1,并判断减1后的当前计 数器值是否为预设值,如果是,则将所述动态链接库文件从内存中释放;否则, 执行接收释放所述动态链接库文件的请求的步骤。
一种实现动态链接库的装置,所述装置包括:第一接收单元,第一判断单 元,加载单元,第二接收单元,查询单元,计算单元和释放模块;
所述第一接收单元,用于接收加载动态链接库文件的请求;
所述第一判断单元,用于根据接收的加载请求判断所述动态链接库文件是 否已经加载,如果是,则将所述动态链接库文件对应的句柄中计数器值加1,并 触发所述第一接收单元;否则,触发所述加载单元;
所述加载单元,用于收到所述判断单元的触发后,根据所述动态链接库文 件名进行加载,如果加载成功,为所述动态链接库文件分配空闲句柄,并在所 述分配的句柄中保存所述动态链接库文件信息,将所述计数器值初始化为预设 值并加1,然后触发所述第一接收单元;否则,直接触发所述第一接收单元;
所述第二接收单元,用于接收获取所述动态链接库文件对外部其他应用提 供的服务接口地址的请求;
所述查询单元,用于根据所述获取请求中的函数名调用句柄中保存的查询 函数来查询所述动态链接库文件对外部其他应用提供的服务接口相对地址,如 果查找到,则触发所述计算单元;否则,触发所述接收单元;
所述计算单元,用于收到所述查询单元的触发后,将所述查询单元查询的 所述相对地址加上所述动态链接库文件的起始地址,作为所述动态链接库文件 对外部其他应用提供的服务接口地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(北京)有限公司,未经腾讯科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083419.7/2.html,转载请声明来源钻瓜专利网。