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