一种插件管理方法及其系统技术方案

技术编号:2912047 阅读:243 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种插件管理方法及其系统,其方法包括:A.将插件的操作接口抽象出来,封装成一上层调用接口;B.加载被调用插件时,存储获得的插件句柄并在内存中标记,建立该插件句柄与插件管理信息的对应关系;C.通过所述上层调用接口及所述内存中的插件句柄与插件管理信息的对应关系,对被调用插件进行加载、卸载、或查找操作。本发明专利技术完成了对插件进行了统一存储、操作和管理。特别针对是解决了共享库静态加载与动态加载之间的差别,延伸了程序对插件使用的范围,提高了程序跨平台的扩展性,方便了程序的移植。

【技术实现步骤摘要】

本专利技术涉及插件管理技术,具体涉及一种如何在跨平台的环境中实现 插件管理的

技术介绍
插件(plugin),指的是共享库。共享库在被调用过程中,无论被多少个 正在运行的程序同时调用,共享库在内存中只存在一个副本,程序运行过 程中对共享库的代码和只读数据段复用,达到节省系统内存资源的目的。代表共享库发展方向的是动态加载共享库,通常狭义的插件就是指的 是此类共享库。动态加载通过把对插件的链接和加载与调用程序的链接和 加载过程剥离,使对插件的链接和加载延后到程序启动时、甚至程序运行 以后,这样就可以不改变调用程序的本身代码,更进一步的可以在程序正 在运行的状态下对插件进行改变和更新,从而调整和升级程序功能,使应 用程序具有了灵活性和可扩展性。动态共享库这种特性的实现,依赖于系统的文件格式,也需要链接器和加载器的支持,也就是说不同的操作系统,对于动态共享库的实现,有 各自不同的文件编码格式,使用的是不同的编译链接加载器,在编码过程 中对于不同系统也是使用迥异的调用接口 。这是支持动态加载操作系统之 间的插件管理和使用的差异。在受限环境下,如某些手机的嵌入式环境,操作系统可能并不支持共 享库的动态加载,这样插件必须以静态共享库方式进行实现。静态共享库 的链接和加载与调用程序本身的链接和加载联系紧密不可分开。这是静态共享库与动态共享库之间的差异。目前在使用与管理插件的过程中,对于不同的插件实现方式是静态 共享库还是动态共享库实现,如果是动态共享库,具体又是在何种操作系 统下实现,只能用不同的使用和管理机制,这就损害了程序的跨平台的扩 展性,给程序的移植带来了困难。可见,现有技术中存在一定的问题,需要进一步地改进。
技术实现思路
本专利技术的目的在于提供一种插件管理方法及其系统,其具备统一管理 及可扩展性,适用于使用插件的跨平台开发。本专利技术提供了 一种插件管理方法,所述管理方法包括以下步骤A、 将插件的操作接口抽象出来,封装成一上层调用接口;B、 加载被调用插件时,存储获得的插件句柄并在内存中标记,并建立 该插件句柄与插件管理信息的对应关系;C、 通过所述上层调用接口及所述内存中的插件句柄与插件管理信息的 对应关系,对被调用插件进行加载、卸载、或查找操作。所述方法,其中,所述插件管理信息至少包含插件名,插件句柄, 插件被调用计数,以及常驻内存属性位。所述方法,其中,在所述内存中建立插件存储结构体,用于存储所述 插件句柄与插件管理信息的对应关系。所述方法,其中,所述插件存储结构体以单链表的形式保存在内存中, 每一个插件存储结构体对应存储一个被调用插件的管理信息,多个插件存 储结构体顺次构成所述单链表。所述方法,其中,若系统采用的是静态共享库,则所述方法的步骤A 之前还包括建立静态插件资源配置文件,用于存储被调用插件库内部符号调用地5址和符号调用字符串的对应关系信息。本专利技术还提供了一种插件管理系统,其特征在于,所述系统包括 对外接口模块,用于将插件的操作接口抽象出来,封装成一用于与上层应用软件进行通信的上层调用接口 ;对内接口模块,用于加载被调用插件时,将获得的插件句柄在内存中 的标记,并建立该插件句柄与插件管理信息的对应关系;所迷对内接口模块通过对外接口模块的封装函数来调用。所述系统,其中,所述对内接口模块包括在所述内存中建立的用于 存储所述插件句柄与插件管理信息对应关系的插件存储结构体。所述系统,其中,所述插件存储结构体以单链表的形式保存在内存中, 每一个插件存储结构体对应存储一个被调用插件的管理信息,多个插件存 储结构体顺次构成所述单链表。所述系统,其中,所述对内接口模块还包括在所述内存中建立的静态插件资源配置文件,用于存储被调用插件库 内部符号调用地址和符号调用字符串的对应关系信息。专利技术效果本专利技术完成了对插件进行了统一存储、操作和管理。特别 针对是解决了共享库静态加载与动态加载之间的差别,延伸了程序对插件 使用的范围,提高了程序跨平台的扩展性,方便了程序的移植。附图说明图1为本专利技术方法的流程图; 图2为本专利技术支持静态库的方法流程图; 图3为整个插件管理系统的实现框架示意图; 图4为整个插件管理方法的使用框架示意图; 图5为插件存储结构体的单链表结构示意图。具体实施例方式如图1所示,本专利技术提供了一种插件管理方法,该方法包括以下步骤A、 将插件的操作接口抽象出来,封装成一上层调用接口;B、 加载被调用插件时,存储获得的插件句柄并在内存中标记,建立该 插件句柄与插件管理信息的对应关系;这里的插件管理信息至少包含插 件名,插件句柄,插件被调用计数,以及常驻内存属性位。C 、通过所述上层调用接口及所述内存中的插件句柄与插件管理信息的 对应关系,对被调用插件进行加载、卸载、或查找操作。为了便于存储上述插件句柄与插件管理信息的对应关系,本专利技术在所 述内存中建立插件存储结构体,用于存储所述插件句柄与插件管理信息的 对应关系;所述插件存储结构体以单链表的形式保存在内存中,每一个插 件存储结构体对应存储一个被调用插件的管理信息,多个插件存储结构体 顺次构成所述单链表,其具体结构可参见图5。从上述方法可以看出,本专利技术提供了插件的统一管理,其包括以下几 方面1、统一的4妄口将插件的加载,插件符号查找,插件卸载,常驻插 件等插件操作接口抽象出来,形成统一的上层调用接口。 2、统一的存储 打开插件后返回的句柄是插件在内存中的标记,将它与插件名字字符串, 调用次数等其他必要管理信息统一新建结构体进行存储。3、通过统一的接 口、统一的存储,向上屏蔽了不同操作系统的实现细节完成了使用插件的 跨平台。基于上述几个优点,本专利技术可扩展到不同的操作系统中。在插件管理 内部对不同操作系统的插件应用接口也统一进行封装成插件加裁、符号查 找、插件卸载接口。这样就将不同操作系统的实现的差异和插件的统一管 理相分离。插件管理要对新的操作系统进行扩展,只需要使用系统接口完 成插件加载、符号查找、插件卸载接口的封装,就可实现插件管理的扩展。插件是通过字符串来调用插件中的符号资源,本专利技术的方法可以广泛的应用到支持动态加载的操作系统。可能有些操作系统不支持静态共享库 的使用,考虑到静态库本身没有字符串到符号资源的对应调用关系,则为了使本专利技术的方法适应使用静态库的形式,如图2所示,在上述步骤A之 前增加以下步骤建立静态插件资源配置文件,用于存储被调用插件库内 部符号调用地址和符号调用字符串的对应关系信息。这里使用静态插件资 源配置文件,完成字符串到符号资源的关系储存。并且依照动态加载的方 式相同将插件加载、符号查找、插件卸载接口进行实现并封装,实现了插 件的静态加载。基于上述方法,本专利技术还提供了一种插件管理系统,如图3所示,其 包括对外接口模块,用于将插件的操作接口抽象出来,封装成一用于与 上层应用软件进行通信的上层调用接口;对内接口模块,用于加载被调用 插件时,将获得的插件句柄存储并在内存中的标记,同时建立该插件句柄 与插件管理信息的对应关系;所述对内接口模块通过对外接口模块的封装 函数来调用。其原理是如图3所示,根据上述插件管理方法,将整个插件管理分 为两层一层是对外接口模块面向上层应用,将插件管理的各平台操作的相同 处抽象出来。为插件使用抽象出插件加本文档来自技高网
...

【技术保护点】
一种插件管理方法,其特征在于,所述管理方法包括以下步骤: A、将插件的操作接口抽象出来,封装成一上层调用接口; B、加载被调用插件时,存储获得的插件句柄并在内存中标记,并建立该插件句柄与插件管理信息的对应关系; C、通过所 述上层调用接口及所述内存中的插件句柄与插件管理信息的对应关系,对被调用插件进行加载、卸载、或查找操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓超
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1