[發(fā)明專利]一種插件管理方法及其系統(tǒng)有效
| 申請?zhí)枺?/td> | 200810241592.0 | 申請日: | 2008-12-24 |
| 公開(公告)號: | CN101464805A | 公開(公告)日: | 2009-06-24 |
| 發(fā)明(設(shè)計)人: | 鄧超 | 申請(專利權(quán))人: | 中興通訊股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F9/46 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 518057廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 插件 管理 方法 及其 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及插件管理技術(shù),具體涉及一種如何在跨平臺的環(huán)境中實現(xiàn) 插件管理的技術(shù)領(lǐng)域。
背景技術(shù)
插件(plugin),指的是共享庫。共享庫在被調(diào)用過程中,無論被多少個 正在運行的程序同時調(diào)用,共享庫在內(nèi)存中只存在一個副本,程序運行過 程中對共享庫的代碼和只讀數(shù)據(jù)段復(fù)用,達到節(jié)省系統(tǒng)內(nèi)存資源的目的。
代表共享庫發(fā)展方向的是動態(tài)加載共享庫,通常狹義的插件就是指的 是此類共享庫。動態(tài)加載通過把對插件的鏈接和加載與調(diào)用程序的鏈接和 加載過程剝離,使對插件的鏈接和加載延后到程序啟動時、甚至程序運行 以后,這樣就可以不改變調(diào)用程序的本身代碼,更進一步的可以在程序正 在運行的狀態(tài)下對插件進行改變和更新,從而調(diào)整和升級程序功能,使應(yīng) 用程序具有了靈活性和可擴展性。
動態(tài)共享庫這種特性的實現(xiàn),依賴于系統(tǒng)的文件格式,也需要鏈接器 和加載器的支持,也就是說不同的操作系統(tǒng),對于動態(tài)共享庫的實現(xiàn),有 各自不同的文件編碼格式,使用的是不同的編譯鏈接加載器,在編碼過程 中對于不同系統(tǒng)也是使用迥異的調(diào)用接口。這是支持動態(tài)加載操作系統(tǒng)之 間的插件管理和使用的差異。
在受限環(huán)境下,如某些手機的嵌入式環(huán)境,操作系統(tǒng)可能并不支持共 享庫的動態(tài)加載,這樣插件必須以靜態(tài)共享庫方式進行實現(xiàn)。靜態(tài)共享庫 的鏈接和加載與調(diào)用程序本身的鏈接和加載聯(lián)系緊密不可分開。這是靜態(tài) 共享庫與動態(tài)共享庫之間的差異。
目前在使用與管理插件的過程中,對于不同的插件實現(xiàn)方式:是靜態(tài) 共享庫還是動態(tài)共享庫實現(xiàn),如果是動態(tài)共享庫,具體又是在何種操作系 統(tǒng)下實現(xiàn),只能用不同的使用和管理機制,這就損害了程序的跨平臺的擴 展性,給程序的移植帶來了困難。
可見,現(xiàn)有技術(shù)中存在一定的問題,需要進一步地改進。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種插件管理方法及其系統(tǒng),其具備統(tǒng)一管理 及可擴展性,適用于使用插件的跨平臺開發(fā)。
本發(fā)明提供了一種插件管理方法,所述管理方法包括以下步驟:
A、將插件的操作接口抽象出來,封裝成一上層調(diào)用接口;
B、加載被調(diào)用插件時,存儲獲得的插件句柄并在內(nèi)存中標記,并建立 該插件句柄與插件管理信息的對應(yīng)關(guān)系;
C、通過所述上層調(diào)用接口及所述內(nèi)存中的插件句柄與插件管理信息的 對應(yīng)關(guān)系,對被調(diào)用插件進行加載、卸載、或查找操作。
所述方法,其中,所述插件管理信息至少包含:插件名,插件句柄, 插件被調(diào)用計數(shù),以及常駐內(nèi)存屬性位。
所述方法,其中,在所述內(nèi)存中建立插件存儲結(jié)構(gòu)體,用于存儲所述 插件句柄與插件管理信息的對應(yīng)關(guān)系。
所述方法,其中,所述插件存儲結(jié)構(gòu)體以單鏈表的形式保存在內(nèi)存中, 每一個插件存儲結(jié)構(gòu)體對應(yīng)存儲一個被調(diào)用插件的管理信息,多個插件存 儲結(jié)構(gòu)體順次構(gòu)成所述單鏈表。
所述方法,其中,若系統(tǒng)采用的是靜態(tài)共享庫,則所述方法的步驟A 之前還包括:
建立靜態(tài)插件資源配置文件,用于存儲被調(diào)用插件庫內(nèi)部符號調(diào)用地 址和符號調(diào)用字符串的對應(yīng)關(guān)系信息。
本發(fā)明還提供了一種插件管理系統(tǒng),其特征在于,所述系統(tǒng)包括:
對外接口模塊,用于將插件的操作接口抽象出來,封裝成一用于與上 層應(yīng)用軟件進行通信的上層調(diào)用接口;
對內(nèi)接口模塊,用于加載被調(diào)用插件時,將獲得的插件句柄在內(nèi)存中 的標記,并建立該插件句柄與插件管理信息的對應(yīng)關(guān)系;
所述對內(nèi)接口模塊通過對外接口模塊的封裝函數(shù)來調(diào)用。
所述系統(tǒng),其中,所述對內(nèi)接口模塊包括:在所述內(nèi)存中建立的用于 存儲所述插件句柄與插件管理信息對應(yīng)關(guān)系的插件存儲結(jié)構(gòu)體。
所述系統(tǒng),其中,所述插件存儲結(jié)構(gòu)體以單鏈表的形式保存在內(nèi)存中, 每一個插件存儲結(jié)構(gòu)體對應(yīng)存儲一個被調(diào)用插件的管理信息,多個插件存 儲結(jié)構(gòu)體順次構(gòu)成所述單鏈表。
所述系統(tǒng),其中,所述對內(nèi)接口模塊還包括:
在所述內(nèi)存中建立的靜態(tài)插件資源配置文件,用于存儲被調(diào)用插件庫 內(nèi)部符號調(diào)用地址和符號調(diào)用字符串的對應(yīng)關(guān)系信息。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中興通訊股份有限公司,未經(jīng)中興通訊股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810241592.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





