CN103019819A - 一种基于插件机制的动态库统一调度方法 - Google Patents
一种基于插件机制的动态库统一调度方法 Download PDFInfo
- Publication number
- CN103019819A CN103019819A CN2012105164371A CN201210516437A CN103019819A CN 103019819 A CN103019819 A CN 103019819A CN 2012105164371 A CN2012105164371 A CN 2012105164371A CN 201210516437 A CN201210516437 A CN 201210516437A CN 103019819 A CN103019819 A CN 103019819A
- Authority
- CN
- China
- Prior art keywords
- dynamic base
- dynamic link
- link library
- dynamic
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于插件机制的动态库统一调度方法,包括:动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。与现有技术相比,本发明具有管理高效、使用方便、提高用户开发效率等优点。
Description
技术领域
本发明涉及一种动态库调度方法,尤其是涉及一种基于插件机制的动态库统一调度方法。
背景技术
动态库又称动态链接库英文为DLL,是Dynamic Link Library的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。
由于动态库与编程语言无关,得到的资源可以得到更广泛地应用。作为一种长远考虑,资源的重复利用不但没有使以往的劳动浪费,而且使原来的劳动增值,使工作更有效。尤其是资源的重复利用问题,如果系统地考虑软件复用则是解决软件开发中重复劳动问题的一种方案,动态库则是一种途径和方法。以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,将开发的重点集中于应用的特有构成成分上,消除重复劳动,避免重新开发可能引入的错误,从而提高软件开发的效率和质量。
目前,在实现动态度调用过程中,一般采用的方式为“谁调用,谁管理”,即动态库的使用者负责调用所需的动态库,并在使用完毕后主动释放此动态库。这种方式较为直观,操作简单。但随着软件系统的发展及软件开发过程中的模块化管理方式的普遍应用,现有的动态库加载方式就显现出了诸多缺点:不利于管理,对多方调用同一动态库没有合理的管理机制;浪费资源,无法及时的释放动态库,造成资源的浪费;效率底,为了防止交叉调用的现象,每次调用完毕都需要释放动态库。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种管理高效、使用方便、提高用户开发效率的基于插件机制的动态库统一调度方法。
本发明的目的可以通过以下技术方案来实现:
一种基于插件机制的动态库统一调度方法,其特征在于,包括:
动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;
根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。
该方法具体包括以下步骤:
a)系统调用动态库管理模块,并将所需要的动态库信息传递给动态库管理模块;
b)判断本地是否存在相对应的动态库,若为是,执行步骤c),若为否,执行步骤d);
c)如果本地存在相应的动态库,则加载此动态库,并执行步骤f);
d)如果本地不存在相应的动态库,则通过网络去下载此动态库,并执行步骤e);
e)判断是否下载成功,若为是,返回步骤c);否则,返回动态库加载失败信息;
f)获得所加载每一个动态库的句柄;
g)根据需要获得某一个动态库的某一接口函数地址;
h)使用完毕后,释放所有加载的动态库。
与现有技术相比,本发明具有管理高效、使用方便的优点,对动态库采用了统一的加载于管理方式,使用户在使用动态库的时候不需要关心加载与释放过程,非常适合对动态库的交叉调用;可以提高用户的开发效率,并且具有良好的扩展性。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
一种基于插件机制的动态库统一调度方法,包括:动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。
该方法具体步骤如图1所示,包括:
在步骤401中,动态库管理模块获得所要加载动态库信息,然后执行步骤402;
在步骤402中,判断所要加载的动态库是否在本地,如果在本地执行404;如果不在本地执行403;
在步骤403中,下载不在本地的动态库,然后执行步骤404;
在步骤404中,加载动态库,然后执行步骤405;
在步骤405中,获得动态库的句柄,然后执行步骤406;
在步骤406中,获得接口函数句柄,然后执行步骤407;
在步骤407中,释放已经使用完成的动态库。
Claims (2)
1.一种基于插件机制的动态库统一调度方法,其特征在于,包括:
动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;
根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。
2.根据权利要求1所述的一种基于插件机制的动态库统一调度方法,其特征在于,该方法具体包括以下步骤:
a)系统调用动态库管理模块,并将所需要的动态库信息传递给动态库管理模块;
b)判断本地是否存在相对应的动态库,若为是,执行步骤c),若为否,执行步骤d);
c)如果本地存在相应的动态库,则加载此动态库,并执行步骤f);
d)如果本地不存在相应的动态库,则通过网络去下载此动态库,并执行步骤e);
e)判断是否下载成功,若为是,返回步骤c);否则,返回动态库加载失败信息;
f)获得所加载每一个动态库的句柄;
g)根据需要获得某一个动态库的某一接口函数地址;
h)使用完毕后,释放所有加载的动态库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105164371A CN103019819A (zh) | 2012-12-05 | 2012-12-05 | 一种基于插件机制的动态库统一调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105164371A CN103019819A (zh) | 2012-12-05 | 2012-12-05 | 一种基于插件机制的动态库统一调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103019819A true CN103019819A (zh) | 2013-04-03 |
Family
ID=47968450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105164371A Pending CN103019819A (zh) | 2012-12-05 | 2012-12-05 | 一种基于插件机制的动态库统一调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019819A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572112A (zh) * | 2015-01-21 | 2015-04-29 | 成都卫士通信息安全技术有限公司 | 一种基于Android系统的程序间函数动态复用系统及方法 |
CN105068791A (zh) * | 2015-07-15 | 2015-11-18 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN105893094A (zh) * | 2016-03-31 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 应用程序插件化的实现方法和装置 |
CN106325847A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康机器人技术有限公司 | 基于iOS平台获取应用程序功能的方法和装置 |
CN106793165A (zh) * | 2016-12-30 | 2017-05-31 | Tcl集团股份有限公司 | 一种wifi热点的连接方法及智能终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式系统 |
CN102184264A (zh) * | 2011-06-16 | 2011-09-14 | 东信和平智能卡股份有限公司 | 一种动态链接库的远程联调方法 |
CN102331931A (zh) * | 2011-07-25 | 2012-01-25 | 深圳市万兴软件有限公司 | 动态库管理方法和装置 |
-
2012
- 2012-12-05 CN CN2012105164371A patent/CN103019819A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式系统 |
CN102184264A (zh) * | 2011-06-16 | 2011-09-14 | 东信和平智能卡股份有限公司 | 一种动态链接库的远程联调方法 |
CN102331931A (zh) * | 2011-07-25 | 2012-01-25 | 深圳市万兴软件有限公司 | 动态库管理方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572112A (zh) * | 2015-01-21 | 2015-04-29 | 成都卫士通信息安全技术有限公司 | 一种基于Android系统的程序间函数动态复用系统及方法 |
CN106325847A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康机器人技术有限公司 | 基于iOS平台获取应用程序功能的方法和装置 |
CN106325847B (zh) * | 2015-07-02 | 2020-01-10 | 杭州海康机器人技术有限公司 | 基于iOS平台获取应用程序功能的方法和装置 |
CN105068791A (zh) * | 2015-07-15 | 2015-11-18 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN105068791B (zh) * | 2015-07-15 | 2018-10-23 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN105893094A (zh) * | 2016-03-31 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 应用程序插件化的实现方法和装置 |
CN105893094B (zh) * | 2016-03-31 | 2019-05-03 | 百度在线网络技术(北京)有限公司 | 应用程序插件化的实现方法和装置 |
CN106793165A (zh) * | 2016-12-30 | 2017-05-31 | Tcl集团股份有限公司 | 一种wifi热点的连接方法及智能终端 |
CN106793165B (zh) * | 2016-12-30 | 2020-01-03 | Tcl集团股份有限公司 | 一种wifi热点的连接方法及智能终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101707399B (zh) | 电能信息采集方法及系统 | |
CN103135979B (zh) | 终端应用的生成方法、装置及系统 | |
CN104298512B (zh) | 一种基于OSGi标准的功能组件式集成开发系统 | |
CN103019819A (zh) | 一种基于插件机制的动态库统一调度方法 | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
CN102609467A (zh) | 数据库连接管理方法和装置 | |
CN101667147A (zh) | 一种多任务的可控自动快照方法 | |
CN103092645B (zh) | 一种基于微内核技术的地理空间信息应用系统及其实现方法 | |
CN104639594A (zh) | 分配物理资源和虚拟资源的系统和方法 | |
CN102722432A (zh) | 追踪内存访问的方法和装置 | |
CN104144210A (zh) | 数据服务自动构建的方法及系统 | |
CN109241514A (zh) | 数据自动导入方法、装置、计算机设备及存储介质 | |
CN104268022B (zh) | 一种操作系统中进程的资源分配方法及系统 | |
CN104239114A (zh) | 应用程序的编译处理方法及装置 | |
CN105867944A (zh) | Web前端数据操作层及其实现方法 | |
CN104660435A (zh) | 面向智能管道的事务型网管引擎及其网管事务处理方法 | |
CN103092866A (zh) | 数据监控方法及监控装置 | |
CN104750546A (zh) | 一种调整连接池的方法及系统 | |
CN110941422B (zh) | 代码自动生成方法、代码生成器及可读存储介质 | |
CN105426440A (zh) | 一种基于数据库的异构型数据批量同步方法 | |
CN102819440B (zh) | 一种多制式应用程序的动态加载方法和装置 | |
CN101894317A (zh) | 数据变化驱动业务逻辑的方法和系统 | |
CN103810258A (zh) | 基于数据仓库的数据汇聚调度方法 | |
CN103970532A (zh) | 一种用于IEC61850协议转换设备的VxWorks操作系统的设计方法 | |
CN108446141B (zh) | 一种Web前端插件及基于Web前端插件进行调度和通信的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130403 |
|
RJ01 | Rejection of invention patent application after publication |