[發明專利]一種基于插件機制的動態加載組件方法和系統有效
| 申請號: | 201310409594.7 | 申請日: | 2013-09-10 |
| 公開(公告)號: | CN104424002B | 公開(公告)日: | 2017-12-12 |
| 發明(設計)人: | 胡琳琳;婁丙允;張武;郭志川 | 申請(專利權)人: | 中國科學院聲學研究所;北京中科海力技術有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京法思騰知識產權代理有限公司11318 | 代理人: | 楊小蓉,楊青 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 插件 機制 動態 加載 組件 方法 系統 | ||
技術領域
本發明涉及計算機應用程序發現和組件加載技術領域,尤其涉及一種基于插件機制的動態加載組件方法和系統。
背景技術
目前,組件技術被廣泛應用于嵌入式系統中。在嵌入式系統中,系統的業務形態較多,不同形態下中間件或應用程序的功能不同,需加載的組件也不同,現有技術通常是在編譯時必須鏈接組件,這樣對于相同的中間件或應用程序,需要為每個業務形態的系統鏈接不同的組件,生成不同版本,使用這種方法使得中間件或應用程序后續的軟件維護工作量大。此外,嵌入式系統包括內存在內的硬件資源非常有限,編譯鏈接組件庫后,在應用程序啟動時就加載所有組件,不必要地耗費了內存。
現有動態加載組件流程都是私有的,都是通過定義一些私有函數接口實現對組件庫的查找和對組件庫方法的調用,這種方法限制了其通用型,封裝的接口只對某個具體的組件庫有效,對別的組件庫就沒有作用了。
發明內容
本發明的目的在于,為克服上述問題,本發明提出一種基于插件機制的動態加載組件方法和系統。
為實現上述目的,本發明提供了一種嵌入式系統的動態加載組件的方法,所述方法包含:
步驟101)封裝組件庫;
步驟102)當某個應用程序或組件收到需要調用另一個組件中的相應功能指令時,依據標識該另一組件身份的“MIME Type”,遍歷系統中的各組件庫的“MIME Type”來查找所述其它組件;
步驟103)當查找到所需組件后,在內存中加載所需組件,并獲取創建所需組件實例的接口以及調用所需組件的相應功能接口;
其中,所有組件均具有唯一一個標識其身份的“MIME Type”。
上述步驟103)之后還包含:
調用卸載組件接口,卸載加載的組件。
采用插件標準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():在卸載一個插件DLL之前及刪除任何插件實例之后調用;
NPP_New():在創建一個插件實例時調用,用來初始化插件的實例數據結構;
NPP_Destroy():在刪除一個插件實例時調用,用于釋放為插件實例所分配的空間;
NPP_Get MIME Description():僅用于Unix環境,用于獲取由該插件所支持的MIME類型;
其中,Def文件用來設置插件供外部調用的接口,接口一般有三個,分別是NP_GetEntryPoints、NP_Initialize和NP_Shutdown;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院聲學研究所;北京中科海力技術有限公司,未經中國科學院聲學研究所;北京中科海力技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310409594.7/2.html,轉載請聲明來源鉆瓜專利網。





