[发明专利]一种基于插件机制的动态加载组件方法和系统有效
申请号: | 201310409594.7 | 申请日: | 2013-09-10 |
公开(公告)号: | CN104424002B | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 胡琳琳;娄丙允;张武;郭志川 | 申请(专利权)人: | 中国科学院声学研究所;北京中科海力技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京法思腾知识产权代理有限公司11318 | 代理人: | 杨小蓉,杨青 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于插件机制的动态加载组件方法和系统,所述方法包括应用程序或组件在接收到需要调用其它组件中的相应功能指令时,查找所述其它组件,所述其它组件提供标准插件接口,具有唯一标识其身份的“MIME Type”;查找到所述组件后,将所述组件加载到内存中,并获取创建所述组件实例的接口以及调用所述组件的相应功能接口;在不需要所述的相应功能时,调用卸载组件接口,将所述其他组件卸载。本发明实施例所述接口为标准插件接口,在编译时不链接组件,在应用程序启动时不加载不必要的组件,节省了内存,避免了针对不同业务形态的嵌入式系统生成不同版本的应用程序。 | ||
搜索关键词: | 一种 基于 插件 机制 动态 加载 组件 方法 系统 | ||
【主权项】:
一种基于插件机制的动态加载组件方法,所述方法包含:步骤101)封装组件库;步骤102)当某个应用程序或组件收到需要调用另一个组件中具有某种功能的指令时,依据标识该另一组件身份的“MIME Type”,遍历系统中的各组件库的“MIMEType”进而查找所需组件;步骤103)当查找到所需组件后,在内存中加载所需组件,并获取创建所需组件实例的接口以及调用所需组件的相应功能接口;其中,所有组件均具有唯一一个标识其身份的“MIME Type”;采用插件标准NPAPI接口函数封装组件库;采用插件标准NPAPI接口函数封装组件库的方法具体包含如下步骤:在编译组件库的时候加入npruntime.h、np_entry.cpp、npn_gate.cpp、npp_gate.cpp以及设置插件调用接口的def文件;所述npruntime.h为头文件,所述np_entry.cpp、npn_gate.cpp和npp_gate.cpp为接口函数,且接口函数np_entry.cpp、npn_gate.cpp和npp_gate.cpp定义在npruntime.h头文件中;其中,np_entry.cpp中定义了三个接口,分别是:NP_GetEntryPoints–在插件加载之后立即调用该接口,用于浏览器获取所有可能需要调用的API函数的指针;NP_Initialize–为插件提供全局初始化;NP_Shutdown–为插件提供全局反初始化;npn_gate.cpp文件用于实现20个函数接口,且这些接口是由浏览器实现的;在插件实例初始化的时候,将浏览器实现的这些函数的入口地址保存到一个NPNetscapeFuncs结构中,这些函数的实现就直接根据NPNetscapeFuncs结构中的入口地址调用浏览器实现的相关功能;且在开发插件时只需要调用NPN开头的全局函数即可;npp_gate.cpp文件用于实现包含如下几个函数接口:NPP_Shutdown():在卸载一个插件动态链接库之前及删除任何插件实例之后调用;NPP_New():在创建一个插件实例时调用,用于初始化插件的实例数据结构;NPP_Destroy():在删除一个插件实例时调用,用于释放为插件实例所分配的空间;NPP_Get MIME Description():仅用于Unix环境,用于获取由该插件所支持的MIME类型;其中,Def文件用来设置插件供外部调用的接口,接口一般有三个,分别是NP_GetEntryPoints、NP_Initialize和NP_Shutdown;当组件库完成封装之后,如果某个应用程序或组件需要调用采用插件标准NPAPI接口函数封装的组件库的时候,通过调用NP_GetEntryPoints、NP_Initialize和NP_Shutdown这三个接口实现对组件库方法的调用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所;北京中科海力技术有限公司,未经中国科学院声学研究所;北京中科海力技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310409594.7/,转载请声明来源钻瓜专利网。