本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,特別是一種功能插件的管理方法及裝置。
背景技術(shù):
移動(dòng)互聯(lián)網(wǎng)經(jīng)歷了從電信增值到WAP網(wǎng)站興起,再到后來原生APP(Application,應(yīng)用程序)為主的發(fā)展過程。APP是基于移動(dòng)終端(如智能手機(jī)、平板電腦等)的操作系統(tǒng)安裝后能獨(dú)立運(yùn)行的可執(zhí)行程序,能夠由用戶安裝、卸載,運(yùn)行執(zhí)行用戶任務(wù),然后退出。隨著移動(dòng)終端的發(fā)展和普及,原生移動(dòng)APP已成為移動(dòng)互聯(lián)網(wǎng)的主流表現(xiàn)形式。
目前,當(dāng)開發(fā)人員實(shí)現(xiàn)移動(dòng)終端的某個(gè)新功能后,如果用戶想要使用,就需要下載或升級(jí)新的APP,在安裝新的APP后使用該功能,操作步驟繁瑣,并且頻繁升級(jí)會(huì)騷擾到用戶。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的功能插件的管理方法及相應(yīng)的裝置。
依據(jù)本發(fā)明的一方面,提供了一種功能插件的管理方法,包括:
在應(yīng)用程序中建立用于提供功能插件的入口的工具箱;
當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由所述工具箱增加各個(gè)新功能插件的入口;
當(dāng)接收到來自用戶的對(duì)所述各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件。
可選地,所述新功能插件的相關(guān)信息包括:所述新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí);
根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件,包括:
根據(jù)所述各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在所述應(yīng)用程序的所述目標(biāo)啟動(dòng)進(jìn)程中啟用所述各個(gè)新功能插件。
可選地,根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,所述方法還包括:
判斷是否已下載所述各個(gè)新功能插件;
若已下載所述各個(gè)新功能插件,則執(zhí)行啟用操作;
若未下載所述各個(gè)新功能插件,則下載所述各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
可選地,所述方法還包括:
在所述應(yīng)用程序中建立功能插件管理器,其中,所述功能插件管理器中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。
可選地,所述方法還包括:
當(dāng)重新啟動(dòng)所述應(yīng)用程序時(shí),啟動(dòng)所述功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;
讀取所述功能插件管理器中設(shè)置的所述啟用功能配置文件,在所述啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;
在所述各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
可選地,所述方法還包括:
由所述功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。
可選地,所述方法還包括:
當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
可選地,從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí),包括:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示停止使用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
可選地,所述方法還包括:
當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
可選地,將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中,包括:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示啟用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
可選地,由所述工具箱增加各個(gè)新功能插件的入口,包括:
由所述工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的所述各個(gè)新功能插件的界面組件增加所述各個(gè)新功能插件的入口。
可選地,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,所述方法還包括:
加載所述各個(gè)新功能插件。
可選地,加載所述各個(gè)新功能插件,包括:
將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容;
當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段;
加載所述目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。
可選地,所述至少一個(gè)加載階段包括下列至少之一:
功能插件信息的獲取、功能插件資源的加載、功能插件代碼的加載。
依據(jù)本發(fā)明的另一方面,還提供了一種功能插件的管理裝置,包括:
工具箱建立模塊,適于在應(yīng)用程序中建立用于提供功能插件的入口的工具箱;
入口增加模塊,適于當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由所述工具箱增加各個(gè)新功能插件的入口;
啟用模塊,適于當(dāng)接收到來自用戶的對(duì)所述各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件。
可選地,所述新功能插件的相關(guān)信息包括:所述新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí);
所述啟用模塊還適于:根據(jù)所述各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在所述應(yīng)用程序的所述目標(biāo)啟動(dòng)進(jìn)程中啟用所述各個(gè)新功能插件。
可選地,所述裝置還包括:
下載模塊,適于在所述啟用模塊根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,判斷是否已下載所述各個(gè)新功能插件;
若已下載所述各個(gè)新功能插件,則執(zhí)行啟用操作;
若未下載所述各個(gè)新功能插件,則下載所述各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
可選地,所述裝置還包括:
功能插件管理器建立模塊,適于在所述應(yīng)用程序中建立功能插件管理器,其中,所述功能插件管理器中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。
可選地,所述啟用模塊還適于:
當(dāng)重新啟動(dòng)所述應(yīng)用程序時(shí),啟動(dòng)所述功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;
讀取所述功能插件管理器中設(shè)置的所述啟用功能配置文件,在所述啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;
在所述各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
可選地,所述功能插件管理器建立模塊還適于:
由所述功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。
可選地,所述裝置還包括:
刪除模塊,適于當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
可選地,所述刪除模塊還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示停止使用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
可選地,所述裝置還包括:
添加模塊,適于當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
可選地,所述添加模塊還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示啟用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
可選地,所述入口增加模塊還適于:
由所述工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的所述各個(gè)新功能插件的界面組件增加所述各個(gè)新功能插件的入口。
可選地,所述裝置還包括:
加載模塊,適于所述啟用模塊在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,加載所述各個(gè)新功能插件。
可選地,所述加載模塊還適于:
將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容;
當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段;
加載所述目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。
可選地,所述至少一個(gè)加載階段包括下列至少之一:
功能插件信息的獲取、功能插件資源的加載、功能插件代碼的加載。
在本發(fā)明實(shí)施例中,首先在應(yīng)用程序中建立用于提供功能插件的入口的工具箱,當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由該工具箱增加各個(gè)新功能插件的入口。進(jìn)而,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件。由此可見,本發(fā)明實(shí)施例可以不升級(jí)應(yīng)用程序而增加新功能,解決了相關(guān)技術(shù)中需要升級(jí)應(yīng)用程序來使用新功能,節(jié)約了系統(tǒng)資源,避免頻繁升級(jí)騷擾到用戶。
進(jìn)一步地,本發(fā)明實(shí)施例能夠指定新功能在進(jìn)程中隨時(shí)啟動(dòng)或停止,可以指定在前臺(tái)臨時(shí)運(yùn)行,也可以指定后臺(tái)長(zhǎng)期運(yùn)行而不必升級(jí)程序。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的功能插件的管理方法的流程圖;
圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的功能插件的管理方法的流程圖;
圖3示出了根據(jù)本發(fā)明又一個(gè)實(shí)施例的功能插件的管理方法的流程圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的功能插件的管理裝置的結(jié)構(gòu)示意圖;以及
圖5示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的功能插件的管理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種功能插件的管理方法。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的功能插件的管理方法的流程圖。參見圖1,該方法至少可以包括步驟S102至步驟S106。
步驟S102,在應(yīng)用程序中建立用于提供功能插件的入口的工具箱。
步驟S104,當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由該工具箱增加各個(gè)新功能插件的入口。
步驟S106,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件。
在本發(fā)明實(shí)施例中,首先在應(yīng)用程序中建立用于提供功能插件的入口的工具箱,當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由該工具箱增加各個(gè)新功能插件的入口。進(jìn)而,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件。由此可見,本發(fā)明實(shí)施例可以不升級(jí)應(yīng)用程序而增加新功能,解決了相關(guān)技術(shù)中需要升級(jí)應(yīng)用程序來使用新功能,節(jié)約了系統(tǒng)資源,避免頻繁升級(jí)騷擾到用戶。
上文步驟S102中提及的應(yīng)用程序,即APP,是基于移動(dòng)終端的操作系統(tǒng)安裝后能獨(dú)立運(yùn)行的可執(zhí)行程序,能夠由用戶安裝、卸載,運(yùn)行執(zhí)行用戶任務(wù),然后退出。功能插件是實(shí)現(xiàn)了某個(gè)新功能的一個(gè)可執(zhí)行程序段,其可以對(duì)外提供接口,根據(jù)接口被調(diào)用以備隨時(shí)啟動(dòng)或停止。功能插件也可以以常規(guī)程序的方式提供界面組件給工具箱調(diào)用,從而,在步驟S104中,可以由工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的各個(gè)新功能插件的界面組件增加各個(gè)新功能插件的入口。
在本發(fā)明的可選實(shí)施例中,在應(yīng)用程序中建立的用于提供功能插件的入口的工具箱,可以是一個(gè)動(dòng)態(tài)可任意擴(kuò)展的網(wǎng)格型或列表型界面,每個(gè)網(wǎng)格或列表可以根據(jù)云端配置增加而變成新功能插件的入口。例如,用戶點(diǎn)擊此網(wǎng)格或列表可以打開新功能的界面,即如上文步驟S106中,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的點(diǎn)擊操作時(shí),可以根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件。
在本發(fā)明的可選實(shí)施例中,可以預(yù)先定義工具箱云控協(xié)議,即,可以是一個(gè)文本配置文件,包括n組新功能插件,每一組功能插件有以下字段:
Name:功能插件名稱,程序內(nèi)部使用來唯一識(shí)別某功能;
UiName:在工具箱中展示給用戶的名稱;
UiTip:在工具箱中展示給用戶的功能簡(jiǎn)介。
除了上述字段之外,配置文件中還配置了新功能插件的標(biāo)識(shí)(如新功能插件名稱等)及其對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),即步驟S106中提及的新功能插件的相關(guān)信息至少可以包括:新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),那么步驟S106的執(zhí)行方式,本發(fā)明提供了一種可選的方案,即,根據(jù)各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在應(yīng)用程序的目標(biāo)啟動(dòng)進(jìn)程中啟用各個(gè)新功能插件。例如,新功能插件A,其對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程為進(jìn)程1,則在應(yīng)用程序的進(jìn)程1中啟用該新功能插件A。
在本發(fā)明的可選實(shí)施例中,在步驟S106根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件之前,還可以判斷是否已下載各個(gè)新功能插件;若已下載各個(gè)新功能插件,則執(zhí)行啟用操作;反之,若未下載各個(gè)新功能插件,則下載各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
在本發(fā)明的可選實(shí)施例中,為了能夠指定新功能在進(jìn)程中隨時(shí)啟動(dòng)或停止,本發(fā)明實(shí)施例還可以在應(yīng)用程序中建立功能插件管理器(簡(jiǎn)稱為psc),psc實(shí)現(xiàn)的控制中心,它實(shí)現(xiàn)了自動(dòng)識(shí)別新功能插件,并按用戶要求啟用或停止某一個(gè)新功能插件。
psc中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。每次應(yīng)用程序重啟,啟動(dòng)psc后,psc內(nèi)部讀取啟用功能配置文件來啟動(dòng)對(duì)應(yīng)的功能插件。即,當(dāng)重新啟動(dòng)應(yīng)用程序時(shí),啟動(dòng)功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;隨后,讀取功能插件管理器中設(shè)置的啟用功能配置文件,在啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;進(jìn)而,在各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
如上文提及,功能插件對(duì)外提供接口,根據(jù)接口被調(diào)用以備隨時(shí)啟動(dòng)或停止,那么本發(fā)明實(shí)施例可以由功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。下面將分別介紹調(diào)用相應(yīng)的接口函數(shù)來啟動(dòng)或停止功能插件。
情況一,當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從啟用功能配置文件中刪除該目標(biāo)功能插件的標(biāo)識(shí)。即,可以由功能插件管理器調(diào)用目標(biāo)功能插件的表示停止使用目標(biāo)功能插件的接口函數(shù),由該接口函數(shù)從啟用功能配置文件中刪除目標(biāo)功能插件的標(biāo)識(shí)。
情況二,當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至啟用功能配置文件中。即,可以由功能插件管理器調(diào)用目標(biāo)功能插件的表示啟用目標(biāo)功能插件的接口函數(shù),由該接口函數(shù)將目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至啟用功能配置文件中。
在本發(fā)明的可選實(shí)施例中,功能插件調(diào)用psc服務(wù)接口協(xié)議如下:
這個(gè)接口實(shí)現(xiàn)在psc中,當(dāng)用戶在工具箱中打開某個(gè)功能插件后,如果選擇將來需要繼續(xù)執(zhí)行在指定進(jìn)程(如在常駐進(jìn)程中作為一個(gè)服務(wù)存在)中則向psc查詢并調(diào)用此接口的start方法,psc將此功能插件的標(biāo)識(shí)及目標(biāo)啟用進(jìn)程的標(biāo)識(shí)保存到psc啟用功能配置文件中,以備下次重啟時(shí)再次啟動(dòng)此功能插件;當(dāng)用戶需要停止某一功能插件使用時(shí),則向psc查詢并調(diào)用此接口的stop方法,psc從保存的psc啟用功能配置文件中刪除相應(yīng)的啟用項(xiàng),下次就不再啟用此功能插件了。
在本發(fā)明的可選實(shí)施例中,psc調(diào)用功能插件接口協(xié)議如下:
這個(gè)接口實(shí)現(xiàn)在功能插件上,每個(gè)進(jìn)程重啟后psc將對(duì)每一個(gè)用戶啟用的對(duì)應(yīng)功能插件查詢并調(diào)用此接口的onStart方法;當(dāng)用戶要停止此功能插件使用時(shí),psc在已經(jīng)激活的功能插件中調(diào)用此接口的onStop方法,并從psc啟用功能配置文件中刪除相應(yīng)的啟用項(xiàng),下次就不再啟用此功能插件了。
在本發(fā)明的可選實(shí)施例中,在步驟S106在應(yīng)用程序中啟用各個(gè)新功能插件之前,還可以加載各個(gè)新功能插件。
為了實(shí)現(xiàn)按需加載,本發(fā)明實(shí)施例可以對(duì)功能插件的加載做分階段處理,即,將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容。當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段,進(jìn)而加載目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。從而,只需加載目標(biāo)加載階段的那部分插件內(nèi)容,其余的均無需加載,可以節(jié)省大量無用內(nèi)容的加載時(shí)間,減小內(nèi)存占用。
這里,至少一個(gè)加載階段可以包括功能插件信息的獲取(即Info)、功能插件資源的加載(即Res)、功能插件代碼的加載(即Dex)。在實(shí)際應(yīng)用中,Info是最小單元,若要加載Res,則必須先加載Info;若要加載Dex,則必須先依次加載Info和Res。舉例來說,外界調(diào)用load進(jìn)行功能插件加載,TYPE表示要加載到哪個(gè)階段(Info、Res和Dex)。同時(shí)調(diào)用loadInfo先進(jìn)行Info的加載。loadInfo成功且TYPE為Info,表示只為加載Info,返回;loadRes成功且TYPE為Res,表示只為加載Info和Res,返回;loadDex成功且TYPE為Dex,表示需全部加載,直接返回。
以上介紹了圖1所示的實(shí)施例中各環(huán)節(jié)的多種實(shí)現(xiàn)方式,下面通過幾個(gè)具體實(shí)施例來詳細(xì)介紹本發(fā)明的功能插件的管理方法的實(shí)現(xiàn)過程。在這些實(shí)施例中,首先在應(yīng)用程序(APP)中建立功能插件管理器(psc)以及用于提供功能插件的入口的工具箱。
圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的功能插件的管理方法的流程圖。參見圖2,該方法至少可以包括步驟S202至步驟S212。
步驟S202,啟動(dòng)APP。
在該步驟中,APP可以是各種應(yīng)用程序,如手機(jī)衛(wèi)士、殺毒等,本發(fā)明對(duì)此不作限制。
步驟S204,接收云端下發(fā)的多個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)。
在該步驟中,例如新功能插件A,其對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程為進(jìn)程1;新功能插件B,其對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程為進(jìn)程1、進(jìn)程2,等等。
步驟S206,由工具箱增加各個(gè)新功能插件的入口。
在該步驟中,工具箱可以是一個(gè)動(dòng)態(tài)可任意擴(kuò)展的網(wǎng)格型或列表型界面,每個(gè)網(wǎng)格或列表可以根據(jù)云端配置增加而變成新功能插件的入口。
步驟S208,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的觸發(fā)操作時(shí),判斷是否已下載各個(gè)新功能插件,若否,則執(zhí)行步驟S210;若是,則執(zhí)行步驟S212。
步驟S210,下載各個(gè)新功能插件,并在下載完成之后繼續(xù)執(zhí)行步驟S212。
步驟S212,根據(jù)各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在應(yīng)用程序的目標(biāo)啟動(dòng)進(jìn)程中啟用各個(gè)新功能插件。
本發(fā)明實(shí)施例可以不升級(jí)應(yīng)用程序而增加新功能,解決了相關(guān)技術(shù)中需要升級(jí)應(yīng)用程序來使用新功能,節(jié)約了系統(tǒng)資源,避免頻繁升級(jí)騷擾到用戶。
步驟S202至步驟S212中提及了各個(gè)新功能插件,在下面的實(shí)施例中不妨以新功能插件A為例,圖3示出了根據(jù)本發(fā)明又一個(gè)實(shí)施例的功能插件的管理方法的流程圖。參見圖3,該方法至少可以包括步驟S302至步驟S312。
步驟S302,啟動(dòng)APP。
步驟S304,接收云端配置新功能插件A到進(jìn)程1中運(yùn)行。
步驟S306,由工具箱增加新功能插件A的入口。
在該步驟中,工具箱可以是一個(gè)動(dòng)態(tài)可任意擴(kuò)展的網(wǎng)格型或列表型界面,每個(gè)網(wǎng)格或列表可以根據(jù)云端配置增加而變成新功能插件A的入口。
步驟S308,當(dāng)接收到來自用戶的對(duì)新功能插件A的入口的點(diǎn)擊操作時(shí),判斷是否已下載新功能插件A,若否,則執(zhí)行步驟S310;若是,則執(zhí)行步驟S312。
步驟S310,下載新功能插件A,并在下載完成之后繼續(xù)執(zhí)行步驟S312。
步驟S312,在前臺(tái)啟用新功能插件A。
在該步驟中,可以首先加載新功能插件A,在加載新功能插件A可以按需加載,將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,可以包括功能插件信息的獲取(即Info)、功能插件資源的加載(即Res)、功能插件代碼的加載(即Dex)。在實(shí)際應(yīng)用中,Info是最小單元,若要加載Res,則必須先加載Info;若要加載Dex,則必須先依次加載Info和Res。舉例來說,外界調(diào)用load進(jìn)行功能插件加載,TYPE表示要加載到哪個(gè)階段(Info、Res和Dex)。同時(shí)調(diào)用loadInfo先進(jìn)行Info的加載。loadInfo成功且TYPE為Info,表示只為加載Info,返回;loadRes成功且TYPE為Res,表示只為加載Info和Res,返回;loadDex成功且TYPE為Dex,表示需全部加載,直接返回。
在本發(fā)明的可選實(shí)施例中,在應(yīng)用程序中建立的功能插件管理器(psc)能夠?qū)崿F(xiàn)自動(dòng)識(shí)別新功能插件,并按用戶要求啟用或停止某一個(gè)新功能插件。那么在步驟S312之后,可以由psc調(diào)用功能插件A的接口函數(shù)來啟動(dòng)或停止功能插件A。即,當(dāng)接收到來自用戶的啟用功能插件A的指令時(shí),將功能插件A的標(biāo)識(shí)及對(duì)應(yīng)的進(jìn)程1的標(biāo)識(shí)添加至啟用功能配置文件中,這里可以由psc調(diào)用功能插件A的表示啟用功能插件A的接口函數(shù),由該接口函數(shù)將功能插件A的標(biāo)識(shí)及對(duì)應(yīng)的進(jìn)程1的標(biāo)識(shí)添加至啟用功能配置文件中。
當(dāng)接收到來自用戶的停止使用功能插件A的指令時(shí),從啟用功能配置文件中刪除該功能插件A的標(biāo)識(shí)。即,可以由psc調(diào)用功能插件A的表示停止使用功能插件A的接口函數(shù),由該接口函數(shù)從啟用功能配置文件中刪除功能插件A的標(biāo)識(shí)。
需要說明的是,實(shí)際應(yīng)用中,上述所有可選實(shí)施方式可以采用結(jié)合的方式任意組合,形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種功能插件的管理裝置。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的功能插件的管理裝置的結(jié)構(gòu)示意圖。如圖4所示,該裝置至少可以包括:工具箱建立模塊410、入口增加模塊420以及啟用模塊430。
現(xiàn)介紹本發(fā)明實(shí)施例的功能插件的管理裝置的各組成或器件的功能以及各部分間的連接關(guān)系:
工具箱建立模塊410,適于在應(yīng)用程序中建立用于提供功能插件的入口的工具箱;
入口增加模塊420,與工具箱建立模塊410相耦合,適于當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由所述工具箱增加各個(gè)新功能插件的入口;
啟用模塊430,與入口增加模塊420相耦合,適于當(dāng)接收到來自用戶的對(duì)所述各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件。
在本發(fā)明一實(shí)施例中,所述新功能插件的相關(guān)信息包括:所述新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí);
所述啟用模塊430還適于:根據(jù)所述各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在所述應(yīng)用程序的所述目標(biāo)啟動(dòng)進(jìn)程中啟用所述各個(gè)新功能插件。
在本發(fā)明一實(shí)施例中,如圖5所示,上文圖4展示的裝置還可以包括:
下載模塊440,與啟用模塊430相耦合,適于在所述啟用模塊430根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,判斷是否已下載所述各個(gè)新功能插件;
若已下載所述各個(gè)新功能插件,則執(zhí)行啟用操作;
若未下載所述各個(gè)新功能插件,則下載所述各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
在本發(fā)明一實(shí)施例中,如圖5所示,上文圖4展示的裝置還可以包括:
功能插件管理器建立模塊450,與啟用模塊430相耦合,適于在所述應(yīng)用程序中建立功能插件管理器,其中,所述功能插件管理器中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。
在本發(fā)明一實(shí)施例中,所述啟用模塊430還適于:
當(dāng)重新啟動(dòng)所述應(yīng)用程序時(shí),啟動(dòng)所述功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;
讀取所述功能插件管理器中設(shè)置的所述啟用功能配置文件,在所述啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;
在所述各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
在本發(fā)明一實(shí)施例中,所述功能插件管理器建立模塊450還適于:
由所述功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。
在本發(fā)明一實(shí)施例中,如圖5所示,上文圖4展示的裝置還可以包括:
刪除模塊460,與功能插件管理器建立模塊450相耦合,適于當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
在本發(fā)明一實(shí)施例中,所述刪除模塊460還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示停止使用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
在本發(fā)明一實(shí)施例中,如圖5所示,上文圖4展示的裝置還可以包括:
添加模塊470,與功能插件管理器建立模塊450相耦合,適于當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
在本發(fā)明一實(shí)施例中,所述添加模塊470還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示啟用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
在本發(fā)明一實(shí)施例中,所述入口增加模塊420還適于:
由所述工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的所述各個(gè)新功能插件的界面組件增加所述各個(gè)新功能插件的入口。
在本發(fā)明一實(shí)施例中,如圖5所示,上文圖4展示的裝置還可以包括:
加載模塊480,與啟用模塊430相耦合,適于所述啟用模塊430在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,加載所述各個(gè)新功能插件。
在本發(fā)明一實(shí)施例中,所述加載模塊480還適于:
將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容;
當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段;
加載所述目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。
在本發(fā)明一實(shí)施例中,所述至少一個(gè)加載階段包括下列至少之一:
功能插件信息的獲取、功能插件資源的加載、功能插件代碼的加載。
根據(jù)上述任意一個(gè)優(yōu)選實(shí)施例或多個(gè)優(yōu)選實(shí)施例的組合,本發(fā)明實(shí)施例能夠達(dá)到如下有益效果:
在本發(fā)明實(shí)施例中,首先在應(yīng)用程序中建立用于提供功能插件的入口的工具箱,當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由該工具箱增加各個(gè)新功能插件的入口。進(jìn)而,當(dāng)接收到來自用戶的對(duì)各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)各個(gè)新功能插件的相關(guān)信息,在應(yīng)用程序中啟用各個(gè)新功能插件。由此可見,本發(fā)明實(shí)施例可以不升級(jí)應(yīng)用程序而增加新功能,解決了相關(guān)技術(shù)中需要升級(jí)應(yīng)用程序來使用新功能,節(jié)約了系統(tǒng)資源,避免頻繁升級(jí)騷擾到用戶。
進(jìn)一步地,本發(fā)明實(shí)施例能夠指定新功能在進(jìn)程中隨時(shí)啟動(dòng)或停止,可以指定在前臺(tái)臨時(shí)運(yùn)行,也可以指定后臺(tái)長(zhǎng)期運(yùn)行而不必升級(jí)程序。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的功能插件的管理裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。
本發(fā)明實(shí)施例的一方面,提供了A1、一種功能插件的管理方法,包括:
在應(yīng)用程序中建立用于提供功能插件的入口的工具箱;
當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由所述工具箱增加各個(gè)新功能插件的入口;
當(dāng)接收到來自用戶的對(duì)所述各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件。
A2、根據(jù)A1所述的方法,其中,
所述新功能插件的相關(guān)信息包括:所述新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí);
根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件,包括:
根據(jù)所述各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在所述應(yīng)用程序的所述目標(biāo)啟動(dòng)進(jìn)程中啟用所述各個(gè)新功能插件。
A3、根據(jù)A1或A2所述的方法,其中,根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,所述方法還包括:
判斷是否已下載所述各個(gè)新功能插件;
若已下載所述各個(gè)新功能插件,則執(zhí)行啟用操作;
若未下載所述各個(gè)新功能插件,則下載所述各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
A4、根據(jù)A1-A3中任一項(xiàng)所述的方法,其中,還包括:
在所述應(yīng)用程序中建立功能插件管理器,其中,所述功能插件管理器中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。
A5、根據(jù)A4所述的方法,其中,還包括:
當(dāng)重新啟動(dòng)所述應(yīng)用程序時(shí),啟動(dòng)所述功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;
讀取所述功能插件管理器中設(shè)置的所述啟用功能配置文件,在所述啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;
在所述各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
A6、根據(jù)A4或A5所述的方法,其中,還包括:
由所述功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。
A7、根據(jù)A4-A6中任一項(xiàng)所述的方法,其中,還包括:
當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
A8、根據(jù)A7所述的方法,其中,從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí),包括:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示停止使用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
A9、根據(jù)A4-A6中任一項(xiàng)所述的方法,其中,還包括:
當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
A10、根據(jù)A9所述的方法,其中,將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中,包括:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示啟用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
A11、根據(jù)A1-A10中任一項(xiàng)所述的方法,其中,由所述工具箱增加各個(gè)新功能插件的入口,包括:
由所述工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的所述各個(gè)新功能插件的界面組件增加所述各個(gè)新功能插件的入口。
A12、根據(jù)A1-A11中任一項(xiàng)所述的方法,其中,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,所述方法還包括:
加載所述各個(gè)新功能插件。
A13、根據(jù)A12所述的方法,其中,加載所述各個(gè)新功能插件,包括:
將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容;
當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段;
加載所述目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。
A14、根據(jù)A13所述的方法,其中,所述至少一個(gè)加載階段包括下列至少之一:
功能插件信息的獲取、功能插件資源的加載、功能插件代碼的加載。
本發(fā)明實(shí)施例的另一方面,還提供了B15、一種功能插件的管理裝置,包括:
工具箱建立模塊,適于在應(yīng)用程序中建立用于提供功能插件的入口的工具箱;
入口增加模塊,適于當(dāng)接收到云端下發(fā)的多個(gè)新功能插件的相關(guān)信息時(shí),由所述工具箱增加各個(gè)新功能插件的入口;
啟用模塊,適于當(dāng)接收到來自用戶的對(duì)所述各個(gè)新功能插件的入口的觸發(fā)操作時(shí),根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件。
B16、根據(jù)B15所述的裝置,其中,
所述新功能插件的相關(guān)信息包括:所述新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí);
所述啟用模塊還適于:根據(jù)所述各個(gè)新功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí),在所述應(yīng)用程序的所述目標(biāo)啟動(dòng)進(jìn)程中啟用所述各個(gè)新功能插件。
B17、根據(jù)B15或B16所述的裝置,其中,還包括:
下載模塊,適于在所述啟用模塊根據(jù)所述各個(gè)新功能插件的相關(guān)信息,在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,判斷是否已下載所述各個(gè)新功能插件;
若已下載所述各個(gè)新功能插件,則執(zhí)行啟用操作;
若未下載所述各個(gè)新功能插件,則下載所述各個(gè)新功能插件,并在下載完成之后執(zhí)行啟用操作。
B18、根據(jù)B15-B17中任一項(xiàng)所述的裝置,其中,還包括:
功能插件管理器建立模塊,適于在所述應(yīng)用程序中建立功能插件管理器,其中,所述功能插件管理器中設(shè)置有啟用功能配置文件,用于存儲(chǔ)已經(jīng)啟用的功能插件的標(biāo)識(shí)及對(duì)應(yīng)的啟動(dòng)進(jìn)程的標(biāo)識(shí)。
B19、根據(jù)B18所述的裝置,其中,所述啟用模塊還適于:
當(dāng)重新啟動(dòng)所述應(yīng)用程序時(shí),啟動(dòng)所述功能插件管理器,并確定一個(gè)或多個(gè)當(dāng)前啟動(dòng)進(jìn)程;
讀取所述功能插件管理器中設(shè)置的所述啟用功能配置文件,在所述啟用功能配置文件中查找各個(gè)當(dāng)前啟動(dòng)進(jìn)程對(duì)應(yīng)的功能插件;
在所述各個(gè)當(dāng)前啟動(dòng)進(jìn)程中啟動(dòng)對(duì)應(yīng)的功能插件。
B20、根據(jù)B18或B19所述的裝置,其中,所述功能插件管理器建立模塊還適于:
由所述功能插件管理器接收功能插件提供的表示啟用功能插件的接口函數(shù)以及表示停止使用功能插件的接口函數(shù),并存儲(chǔ)。
B21、根據(jù)B18-B20中任一項(xiàng)所述的裝置,其中,還包括:
刪除模塊,適于當(dāng)接收到來自用戶的停止使用目標(biāo)功能插件的指令時(shí),從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
B22、根據(jù)B21所述的裝置,其中,所述刪除模塊還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示停止使用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)從所述啟用功能配置文件中刪除所述目標(biāo)功能插件的標(biāo)識(shí)。
B23、根據(jù)B18-B20中任一項(xiàng)所述的裝置,其中,還包括:
添加模塊,適于當(dāng)接收到來自用戶的啟用目標(biāo)功能插件的指令時(shí),將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
B24、根據(jù)B23所述的裝置,其中,所述添加模塊還適于:
由所述功能插件管理器調(diào)用所述目標(biāo)功能插件的表示啟用所述目標(biāo)功能插件的接口函數(shù),由所述接口函數(shù)將所述目標(biāo)功能插件的標(biāo)識(shí)及對(duì)應(yīng)的目標(biāo)啟動(dòng)進(jìn)程的標(biāo)識(shí)添加至所述啟用功能配置文件中。
B25、根據(jù)B15-B24中任一項(xiàng)所述的裝置,其中,所述入口增加模塊還適于:
由所述工具箱獲取各個(gè)新功能插件的界面組件,基于獲取的所述各個(gè)新功能插件的界面組件增加所述各個(gè)新功能插件的入口。
B26、根據(jù)B15-B25中任一項(xiàng)所述的裝置,其中,還包括:
加載模塊,適于所述啟用模塊在所述應(yīng)用程序中啟用所述各個(gè)新功能插件之前,加載所述各個(gè)新功能插件。
B27、根據(jù)B26所述的裝置,其中,所述加載模塊還適于:
將功能插件加載事件拆分為獨(dú)立的至少一個(gè)加載階段,其中,各個(gè)加載階段對(duì)應(yīng)不同的功能插件內(nèi)容;
當(dāng)接收到功能插件加載的請(qǐng)求時(shí),確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)加載階段;
加載所述目標(biāo)加載階段對(duì)應(yīng)的功能插件內(nèi)容。
B28、根據(jù)B27所述的裝置,其中,所述至少一個(gè)加載階段包括下列至少之一:
功能插件信息的獲取、功能插件資源的加載、功能插件代碼的加載。