專(zhuān)利名稱(chēng):應(yīng)用加載方法及系統(tǒng)的制作方法
應(yīng)用加載方法及系統(tǒng)
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種應(yīng)用加載方法及系統(tǒng)。
背景技術(shù):
應(yīng)用平臺(tái)是一種能夠聚合各種第三方軟件提供商所開(kāi)發(fā)的應(yīng)用(俗稱(chēng)app),使得應(yīng)用對(duì)用戶(hù)的表現(xiàn)形式標(biāo)準(zhǔn)化、規(guī)范化的平臺(tái)類(lèi)服務(wù)軟件。第三方應(yīng)用提供商通過(guò)應(yīng)用平臺(tái)對(duì)外開(kāi)放的應(yīng)用程序接口(API)與應(yīng)用平臺(tái)對(duì)接,為應(yīng)用平臺(tái)提供相應(yīng)的功能。應(yīng)用平臺(tái)則為應(yīng)用程序提供基礎(chǔ)的配套服務(wù),如空間存儲(chǔ)、平臺(tái)調(diào)用、網(wǎng)絡(luò)傳輸?shù)取鹘y(tǒng)的應(yīng)用平臺(tái)在加載應(yīng)用時(shí),通常直接為應(yīng)用直接分配一個(gè)進(jìn)程,然后由該進(jìn)程獲取該應(yīng)用的系統(tǒng)資源,并加載應(yīng)用?;蛘邞?yīng)用平臺(tái)為應(yīng)用分配線程,然后由該線程獲取該應(yīng)用的系統(tǒng)資源,并加載應(yīng)用。然而,傳統(tǒng)技術(shù)中的應(yīng)用平臺(tái)的應(yīng)用加載方法和系統(tǒng)對(duì)應(yīng)用的加載缺乏統(tǒng)一的管理,且無(wú)法根據(jù)應(yīng)用的類(lèi)型或標(biāo)識(shí)·選擇相應(yīng)的加載方式,使得應(yīng)用的加載方法單一,從而導(dǎo)致了傳統(tǒng)的應(yīng)用加載方法和系統(tǒng)靈活性不足。
發(fā)明內(nèi)容基于此,有必要提供一種提高應(yīng)用加載的靈活性的應(yīng)用加載方法。一種應(yīng)用加載方法,所述方法包括以下步驟:獲取應(yīng)用加載請(qǐng)求;獲取與所述應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置;根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù);通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)。優(yōu)選的,所述加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式;所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為:根據(jù)所述加載配置選擇加載方式,根據(jù)所述加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行所述加載任務(wù)。優(yōu)選的,所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為:獲取根據(jù)所述加載配置生成的代理對(duì)象,通過(guò)所述任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行所述加載任務(wù)。優(yōu)選的,所述任務(wù)管理對(duì)象包括任務(wù)序列屬性;所述根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù)的步驟之后還包括:將所述加載任務(wù)添加到所述任務(wù)序列屬性中;所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述與所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為:
根據(jù)所述加載配置,通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到所述任務(wù)序列屬性的順序同步執(zhí)行所述加載任務(wù)。優(yōu)選的,所述方法還包括: 獲取所述任務(wù)管理對(duì)象中的任務(wù)序列屬性,展示所述任務(wù)序列屬性。此外,還有必要提供一種提高應(yīng)用加載的靈活性的應(yīng)用加載系統(tǒng)?!N應(yīng)用加載系統(tǒng),包括以下模塊:請(qǐng)求獲取模塊,用于獲取應(yīng)用加載請(qǐng)求;配置獲取模塊,用于獲取與所述應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置;任務(wù)管理模塊,用于根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù);任務(wù)加載模塊,用于通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)。 優(yōu)選的,所述加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式;所述任務(wù)加載模塊還用于通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置選擇加載方式,根據(jù)所述加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行所述加載任務(wù)。優(yōu)選的,所述任務(wù)加載模塊還用于獲取根據(jù)所述加載配置生成的代理對(duì)象,通過(guò)所述任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行所述加載任務(wù)。優(yōu)選的,所述任務(wù)管理對(duì)象包括任務(wù)序列屬性;所述任務(wù)管理模塊還用于將所述加載任務(wù)添加到所述任務(wù)序列屬性中;所述任務(wù)加載模塊還用于根據(jù)所述加載配置,通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到所述任務(wù)序列屬性的順序同步執(zhí)行所述加載任務(wù)。優(yōu)選的,還包括任務(wù)展示模塊,用于獲取所述任務(wù)管理對(duì)象中的任務(wù)序列屬性,并展示所述任務(wù)序列屬性。上述應(yīng)用加載方法和系統(tǒng),在獲取到加載請(qǐng)求之后,通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù),并根據(jù)與加載請(qǐng)求對(duì)應(yīng)的預(yù)設(shè)的加載配置執(zhí)行該加載任務(wù),使得對(duì)應(yīng)用的加載方式可以在根據(jù)應(yīng)用的標(biāo)識(shí)或類(lèi)型通過(guò)配置進(jìn)行預(yù)先定義,避免了在代碼級(jí)對(duì)應(yīng)用的加載方式進(jìn)行限定,使得在修改應(yīng)用的加載方式時(shí)只需要修改加載配置即可,從而提高了應(yīng)用加載方法和系統(tǒng)的靈活性。
圖1為一個(gè)實(shí)施例中應(yīng)用加載方法的流程圖;圖2為一個(gè)實(shí)施例中應(yīng)用加載系統(tǒng)的結(jié)構(gòu)示意圖;圖3為另一個(gè)實(shí)施例中應(yīng)用加載系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式如圖1所示,在一個(gè)實(shí)施例中,一種應(yīng)用加載方法,包括以下步驟:步驟S102,獲取應(yīng)用加載請(qǐng)求。應(yīng)用具有用于表示應(yīng)用的應(yīng)用標(biāo)識(shí)。在獲取應(yīng)用加載請(qǐng)求之前,可在應(yīng)用平臺(tái)的顯示界面上展示多個(gè)圖標(biāo),每個(gè)圖標(biāo)對(duì)應(yīng)應(yīng)用的應(yīng)用標(biāo)識(shí)。通過(guò)獲取用戶(hù)點(diǎn)擊或選中圖標(biāo)的操作,獲取應(yīng)用加載請(qǐng)求。應(yīng)用加載請(qǐng)求中可包括應(yīng)用標(biāo)識(shí)和應(yīng)用類(lèi)型。步驟S104,獲取與應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置。加載配置為預(yù)先定義,其中可記錄與進(jìn)程相關(guān)的具體加載方式。加載配置可以存儲(chǔ)在應(yīng)用的配置文件中,也可以以二進(jìn)制流的形式與應(yīng)用標(biāo)識(shí)對(duì)應(yīng)存儲(chǔ)在數(shù)據(jù)庫(kù)中。在一個(gè)實(shí)施例中,配置文件中包含應(yīng)用標(biāo)識(shí)和加載配置的映射關(guān)系,進(jìn)一步的,可從應(yīng)用加載請(qǐng)求中提取應(yīng)用標(biāo)識(shí),根據(jù)應(yīng)用標(biāo)識(shí)查找與其對(duì)應(yīng)的加載配置。步驟S106,根據(jù)應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù)。在一個(gè)實(shí)施例中,可將應(yīng)用加載請(qǐng)求作為函數(shù)調(diào)用參數(shù)傳遞給預(yù)設(shè)的任務(wù)管理對(duì)象中的請(qǐng)求處理函數(shù),該請(qǐng)求處理函數(shù)可根據(jù)該函數(shù)調(diào)用參數(shù)生成加載任務(wù),加載任務(wù)可以以對(duì)象或結(jié)構(gòu)體的形式存在。生成的加載任務(wù)可包括任務(wù)標(biāo)識(shí)和任務(wù)描述信息。任務(wù)描述信息可包括與任務(wù)對(duì)應(yīng)的應(yīng)用的應(yīng)用名稱(chēng)、應(yīng)用描述信息、任務(wù)加載時(shí)刻、任務(wù)運(yùn)行狀態(tài)(激活、掛起、終止等)。加載任務(wù)中可以加載函數(shù)的形式定義根據(jù)應(yīng)用加載請(qǐng)求加載應(yīng)用的加載邏輯。例如,可定義加載任務(wù)為對(duì)象task,為對(duì)象task定義加載方法load,加載函數(shù)load中則可定義如下邏輯:根據(jù)應(yīng)用標(biāo)識(shí)獲取與其對(duì)應(yīng)的應(yīng)用的數(shù)據(jù)文件的存儲(chǔ)位置,將該存儲(chǔ)位置下的動(dòng)態(tài)鏈接庫(kù)文件注冊(cè),讀取該存儲(chǔ)位置下的應(yīng)用的數(shù)據(jù)文件并加載到內(nèi)存中。步驟S108,通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)加載配置執(zhí)行加載任務(wù)。在一個(gè)實(shí)施例中,加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式??赏ㄟ^(guò)預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)加載配置選擇加載方式,根據(jù)加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行加載任務(wù)。若加載配置中的定義為在進(jìn)程內(nèi)加載,則表示應(yīng)用與進(jìn)程一一對(duì)應(yīng),同一個(gè)進(jìn)程對(duì)應(yīng)某應(yīng)用的多個(gè)運(yùn)行實(shí)例(例如,記事本應(yīng)用可以打開(kāi)多個(gè)窗口,具有多個(gè)運(yùn)行實(shí)例);若加載配置中的定義為在進(jìn)程外加載,則表示應(yīng)用的運(yùn)行實(shí)例與進(jìn)程一一對(duì)應(yīng),一個(gè)應(yīng)用對(duì)應(yīng)多個(gè)進(jìn)程(例如,需要使用socket進(jìn)行通信的應(yīng)用,由于socket端口與進(jìn)程一一對(duì)應(yīng),因此一個(gè)應(yīng)用的運(yùn)行實(shí)例對(duì)應(yīng)一個(gè)進(jìn)程)。進(jìn)一步的,加載配置中還可定義相同的應(yīng)用類(lèi)型(如web類(lèi)的應(yīng)用,均在web容器進(jìn)程中被加載)對(duì)應(yīng)一個(gè)進(jìn)程。本實(shí)施例中,在根據(jù)加載配置執(zhí)行加載任務(wù)時(shí),可根據(jù)加載配置選擇與加載配置中定義的加載邏輯對(duì)應(yīng)的函數(shù)添加到加載任務(wù)中,然后再執(zhí)行加載任務(wù)。例如,若讀取的加載配置為進(jìn)程內(nèi)加載,則可在加載任務(wù)對(duì)象task中的load函數(shù)中注冊(cè)dll加載(動(dòng)態(tài)鏈接庫(kù)方式加載)應(yīng)用的函數(shù);若讀取的加載配置為進(jìn)程外加載,則可在加載任務(wù)對(duì)象task中的load函數(shù)中注冊(cè)exe加載(可執(zhí)行程序方式加載)應(yīng)用的函數(shù)。在一個(gè)實(shí)施例中,還可獲取根據(jù)加載配置生成的代理對(duì)象,通過(guò)任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行加載任務(wù)。例如,可預(yù)先定義抽象類(lèi)或接口 ModuleAgent,并將該接口或抽象類(lèi)注冊(cè)到加載任務(wù)的加載函數(shù)中。為多種加載配置定義多種具體的代理對(duì)象定義,并實(shí)例化為具體的代理對(duì)象,如dllAgent對(duì)象(對(duì)應(yīng)進(jìn)程內(nèi)加載配置)和exeAgent對(duì)象(對(duì)應(yīng)進(jìn)程外加載配置)。在執(zhí)行加載任務(wù)時(shí),可通過(guò)任務(wù)管理對(duì)象調(diào)用加載任務(wù)對(duì)象的加載函數(shù),然后加載函數(shù)通過(guò)已注冊(cè)的ModuleAgent接口或抽象類(lèi)動(dòng)態(tài)綁定獲取到的代理對(duì)象(如,若獲取到的代理對(duì)象為dllAgent,則將其與加載函數(shù)中注冊(cè)的ModuleAgent接口或抽象類(lèi)綁定),然后調(diào)用代理對(duì)象的接口函數(shù)進(jìn)行加載。
使用代理對(duì)象來(lái)加載應(yīng)用,可以利用抽象類(lèi)或接口的多態(tài)性,將對(duì)象綁定從編譯器延遲到運(yùn)行時(shí),從而提高了應(yīng)用加載的動(dòng)態(tài)性。在一個(gè)實(shí)施例中,任務(wù)管理對(duì)象可包括任務(wù)序列屬性。通過(guò)任務(wù)管理對(duì)象生成加載任務(wù)之后,可將加載任務(wù)添加到任務(wù)序列屬性中。然后可根據(jù)加載配置,通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到任務(wù)序列屬性的順序同步執(zhí)行加載任務(wù)。將加載任務(wù)以添加到任務(wù)序列屬性的順序同步執(zhí)行可以保證應(yīng)用的加載可按照生成加載任務(wù)的順序執(zhí)行。同步執(zhí)行加載任務(wù)時(shí),總是在加載完成一個(gè)任務(wù)后再繼續(xù)加載下一個(gè)應(yīng)用。若多個(gè)應(yīng)用同時(shí)加載,則加載過(guò)程中可能會(huì)對(duì)相同的系統(tǒng)資源進(jìn)行讀取,易使得多個(gè)應(yīng)用的加載過(guò)程出現(xiàn)死鎖。因此按照順序同步執(zhí)行加載任務(wù)可以避免加載過(guò)程死鎖,提聞了系統(tǒng)的穩(wěn)定性。進(jìn)一步的,還可獲取任務(wù)管理對(duì)象中的任務(wù)序列屬性,展示任務(wù)序列屬性。在獲取到任務(wù)序列屬性后,將任務(wù)序列屬性中的加載任務(wù)的任務(wù)標(biāo)識(shí)和任務(wù)描述信息以及與任務(wù)對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)以列表的形式展示給用戶(hù),可以方便用戶(hù)知曉當(dāng)前已加載了哪些應(yīng)用,以及任務(wù)運(yùn)行情況如何。如圖2所不,在一個(gè)實(shí)施例中,一種應(yīng)用加載系統(tǒng),包括請(qǐng)求獲取模塊102、配置獲取模塊104、任務(wù)管理模塊106以及任務(wù)加載模塊108,其中:請(qǐng)求獲取模塊102,用于獲取應(yīng)用加載請(qǐng)求。應(yīng)用具有用于表示應(yīng)用的應(yīng)用標(biāo)識(shí)。在獲取應(yīng)用加載請(qǐng)求之前,可在應(yīng)用平臺(tái)的顯示界面上展示多個(gè)圖標(biāo),每個(gè)圖標(biāo)對(duì)應(yīng)應(yīng)用的應(yīng)用標(biāo)識(shí)。請(qǐng)求獲取模塊102可用于通過(guò)獲取用戶(hù)點(diǎn)擊或選中圖標(biāo)的操作,獲取應(yīng)用加載請(qǐng)求。應(yīng)用加載請(qǐng)求中可包括應(yīng)用標(biāo)識(shí)和應(yīng)用類(lèi)型。配置獲取模塊104,用于獲取與應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置。加載配置為預(yù)先定義,其中可記錄與進(jìn)程相關(guān)的具體加載方式。加載配置可以存儲(chǔ)在應(yīng)用的配置文件中,也可以以二進(jìn)制流的形式與應(yīng)用標(biāo)識(shí)對(duì)應(yīng)存儲(chǔ)在數(shù)據(jù)庫(kù)中。在一個(gè)實(shí)施例中,配置文件中包含應(yīng)用標(biāo)識(shí)和加載配置的映射關(guān)系,進(jìn)一步的,配置獲取模塊104可用于從應(yīng)用加載請(qǐng)求中提取應(yīng)用標(biāo)識(shí),根據(jù)應(yīng)用標(biāo)識(shí)查找與其對(duì)應(yīng)的加載配置。任務(wù)管理模塊106,用于根據(jù)應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù)。在一個(gè)實(shí)施例中,任務(wù)管理模塊106可用于將應(yīng)用加載請(qǐng)求作為函數(shù)調(diào)用參數(shù)傳遞給預(yù)設(shè)的任務(wù)管理對(duì)象中的請(qǐng)求處理函數(shù),該請(qǐng)求處理函數(shù)可根據(jù)該函數(shù)調(diào)用參數(shù)生成加載任務(wù),加載任務(wù)可以以對(duì)象或結(jié)構(gòu)體的形式存在。生成的加載任務(wù)可包括任務(wù)標(biāo)識(shí)和任務(wù)描述信息。任務(wù)描述信息可包括與任務(wù)對(duì)應(yīng)的應(yīng)用的應(yīng)用名稱(chēng)、應(yīng)用描述信息、任務(wù)加載時(shí)刻、任務(wù)運(yùn)行狀態(tài)(激活、掛起、終止等)。加載任務(wù)中可以加載函數(shù)的形式定義根據(jù)應(yīng)用加載請(qǐng)求加載應(yīng)用的加載邏輯。例如,可定義加載任務(wù)為對(duì)象task,為對(duì)象task定義加載方法load,加載函數(shù)load中則可定義如下邏輯:根據(jù)應(yīng)用標(biāo)識(shí)獲取與其對(duì)應(yīng)的應(yīng)用的數(shù)據(jù)文件的存儲(chǔ)位置,將該存儲(chǔ)位置下的動(dòng)態(tài)鏈接庫(kù)文件注冊(cè),讀取該存儲(chǔ)位置下的應(yīng)用的數(shù)據(jù)文件并加載到內(nèi)存中。任務(wù)加載模塊108,用于通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)加載配置執(zhí)行加載任務(wù)。
在一個(gè)實(shí)施例中,加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式。任務(wù)加載模塊108可用于通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)加載配置選擇加載方式,根據(jù)加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行加載任務(wù)。若加載配置中的定義為在進(jìn)程內(nèi)加載,則表示應(yīng)用與進(jìn)程一一對(duì)應(yīng),同一個(gè)進(jìn)程對(duì)應(yīng)某應(yīng)用的多個(gè)運(yùn)行實(shí)例(例如,記事本應(yīng)用可以打開(kāi)多個(gè)窗口,具有多個(gè)運(yùn)行實(shí)例);若加載配置中的定義為在進(jìn)程外加載,則表示應(yīng)用的運(yùn)行實(shí)例與進(jìn)程一一對(duì)應(yīng),一個(gè)應(yīng)用對(duì)應(yīng)多個(gè)進(jìn)程(例如,需要使用socket進(jìn)行通信的應(yīng)用,由于socket端口與進(jìn)程一一對(duì)應(yīng),因此一個(gè)應(yīng)用的運(yùn)行實(shí)例對(duì)應(yīng)一個(gè)進(jìn)程)。進(jìn)一步的,加載配置中還可定義相同的應(yīng)用類(lèi)型(如web類(lèi)的應(yīng)用,均在web容器進(jìn)程中被加載)對(duì)應(yīng)一個(gè)進(jìn)程。本實(shí)施例中,在根據(jù)加載配置執(zhí)行加載任務(wù)時(shí),可根據(jù)加載配置選擇與加載配置中定義的加載邏輯對(duì)應(yīng)的函數(shù)添加到加載任務(wù)中,然后再執(zhí)行加載任務(wù)。例如,若讀取的加載配置為進(jìn)程內(nèi)加載,則可在加載任務(wù)對(duì)象task中的load函數(shù)中注冊(cè)dll加載(動(dòng)態(tài)鏈接庫(kù)方式加載)應(yīng)用的函數(shù);若讀取的加載配置為進(jìn)程外加載,則可在加載任務(wù)對(duì)象task中的load函數(shù)中注冊(cè)exe加載(可執(zhí)行程序方式加載)應(yīng)用的函數(shù)。在一個(gè)實(shí)施例中,任務(wù)加載模塊108還可用于獲取根據(jù)加載配置生成的代理對(duì)象,通過(guò)任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行加載任務(wù)。例如,可預(yù)先定義抽象類(lèi)或接口ModuleAgent,并將該接口或抽象類(lèi)注冊(cè)到加載任務(wù)的加載函數(shù)中。為多種加載配置定義多種具體的代理對(duì)象定義,并實(shí)例化為具體的代理對(duì)象,如dllAgent對(duì)象(對(duì)應(yīng)進(jìn)程內(nèi)加載配置)和exeAgent對(duì)象(對(duì)應(yīng)進(jìn)程外加載配置)。在執(zhí)行加載任務(wù)時(shí),可通過(guò)任務(wù)管理對(duì)象調(diào)用加載任務(wù)對(duì)象的加載函數(shù),然后加載函數(shù)通過(guò)已注冊(cè)的ModuleAgent接口或抽象類(lèi)動(dòng)態(tài)綁定獲取到的代理對(duì)象(如,若獲取到的代理對(duì)象為dllAgent,則將其與加載函數(shù)中注冊(cè)的ModuleAgent接口或抽象類(lèi)綁定),然后調(diào)用代理對(duì)象的接口函數(shù)進(jìn)行加載。使用代理對(duì)象來(lái)加載應(yīng)用,可以利用抽象類(lèi)或接口的多態(tài)性,將對(duì)象綁定從編譯器延遲到運(yùn)行時(shí),從而提高了應(yīng)用加載的動(dòng)態(tài)性。在一個(gè)實(shí)施例中,任務(wù)管理對(duì)象可包括任務(wù)序列屬性。任務(wù)管理模塊106還可用于將加載任務(wù)添加到任務(wù)序列屬性中,并根據(jù)加載配置,通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到任務(wù)序列屬性的順序同步執(zhí)行加載任務(wù)。將加載任務(wù)以添加到任務(wù)序列屬性的順序同步執(zhí)行可以保證應(yīng)用的加載可按照生成加載任務(wù)的順序執(zhí)行。同步執(zhí)行加載任務(wù)時(shí),總是在加載完成一個(gè)任務(wù)后再繼續(xù)加載下一個(gè)應(yīng)用。若多個(gè)應(yīng)用同時(shí)加載,則加載過(guò)程中可能會(huì)對(duì)相同的系統(tǒng)資源進(jìn)行讀取,易使得多個(gè)應(yīng)用的加載過(guò)程出現(xiàn)死鎖。因此按照順序同步執(zhí)行加載任務(wù)可以避免加載過(guò)程死鎖,提聞了系統(tǒng)的穩(wěn)定性。進(jìn)一步的,如圖3所示,應(yīng)用加載系統(tǒng)還可包括任務(wù)展示模塊110,用于獲取任務(wù)管理對(duì)象中的任務(wù)序列屬性,展示任務(wù)序列屬性。任務(wù)展示模塊110獲取到任務(wù)序列屬性后,可將任務(wù)序列屬性中的加載任務(wù)的任務(wù)標(biāo)識(shí)和任務(wù)描述信息以及與任務(wù)對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)以列表的形式展示給用戶(hù),可以方便用戶(hù)知曉當(dāng)前已加載了哪些應(yīng)用,以及任務(wù)運(yùn)行情況如何。上述應(yīng)用加載方法和系統(tǒng),在獲取到加載請(qǐng)求之后,通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù),并根據(jù)與加載請(qǐng)求對(duì)應(yīng)的預(yù)設(shè)的加載配置執(zhí)行該加載任務(wù),使得對(duì)應(yīng)用的加載方式可以在根據(jù)應(yīng)用的標(biāo)識(shí)或類(lèi)型通過(guò)配置進(jìn)行預(yù)先定義,避免了在代碼級(jí)對(duì)應(yīng)用的加載方式進(jìn)行限定,使得在修改應(yīng)用的加載方式時(shí)只需要修改加載配置即可,從而提高了應(yīng)用加載方法和系統(tǒng)的靈活性。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種應(yīng)用加載方法,所述方法包括以下步驟: 獲取應(yīng)用加載請(qǐng)求; 獲取與所述應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置; 根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù); 通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)。
2.根據(jù)權(quán)利要求1所述的應(yīng)用加載方法,其特征在于,所述加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式;所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為: 根據(jù)所述加載配置選擇加載方式,根據(jù)所述加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行所述加載任務(wù)。
3.根據(jù)權(quán)利要求 1所述的應(yīng)用加載方法,其特征在于,所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為: 獲取根據(jù)所述加載配置生成的代理對(duì)象,通過(guò)所述任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行所述加載任務(wù)。
4.根據(jù)權(quán)利要求1至3中的任意一項(xiàng)所述的應(yīng)用加載方法,其特征在于,所述任務(wù)管理對(duì)象包括任務(wù)序列屬性; 所述根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù)的步驟之后還包括: 將所述加載任務(wù)添加到所述任務(wù)序列屬性中; 所述通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述與所述加載配置執(zhí)行所述加載任務(wù)的步驟具體為: 根據(jù)所述加載配置,通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到所述任務(wù)序列屬性的順序同步執(zhí)行所述加載任務(wù)。
5.根據(jù)權(quán)利要求4所述的應(yīng)用加載方法,其特征在于,所述方法還包括: 獲取所述任務(wù)管理對(duì)象中的任務(wù)序列屬性,展示所述任務(wù)序列屬性。
6.—種應(yīng)用加載系統(tǒng),其特征在于,包括以下模塊: 請(qǐng)求獲取模塊,用于獲取應(yīng)用加載請(qǐng)求; 配置獲取模塊,用于獲取與所述應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置; 任務(wù)管理模塊,用于根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù); 任務(wù)加載模塊,用于通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)。
7.根據(jù)權(quán)利要求6所述的應(yīng)用加載系統(tǒng),其特征在于,所述加載配置中包含進(jìn)程內(nèi)加載和進(jìn)程外加載方式; 所述任務(wù)加載模塊還用于通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置選擇加載方式,根據(jù)所述加載方式在進(jìn)程內(nèi)或進(jìn)程外執(zhí)行所述加載任務(wù)。
8.根據(jù)權(quán)利要求6所述的應(yīng)用加載系統(tǒng),其特征在于,所述任務(wù)加載模塊還用于獲取根據(jù)所述加載配置生成的代理對(duì)象,通過(guò)所述任務(wù)管理對(duì)象和代理對(duì)象執(zhí)行所述加載任務(wù)。
9.根據(jù)權(quán)利要求6至8中的任意一項(xiàng)所述的應(yīng)用加載系統(tǒng),其特征在于,所述任務(wù)管理對(duì)象包括任務(wù)序列屬性; 所述任務(wù)管理模塊還用于將所述加載任務(wù)添加到所述任務(wù)序列屬性中; 所述任務(wù)加載模塊還用于根據(jù)所述加載配置,通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象,按照添加到所述任務(wù)序列屬性的順序同步執(zhí)行所述加載任務(wù)。
10.根據(jù)權(quán)利要求9所述的應(yīng)用加載系統(tǒng),其特征在于,還包括任務(wù)展示模塊,用于獲取所述任務(wù)管理對(duì)象中 的任務(wù)序列屬性,并展示所述任務(wù)序列屬性。
全文摘要
一種應(yīng)用加載方法,所述方法包括以下步驟獲取應(yīng)用加載請(qǐng)求;獲取與所述應(yīng)用加載請(qǐng)求對(duì)應(yīng)的加載配置;根據(jù)所述應(yīng)用加載請(qǐng)求通過(guò)預(yù)設(shè)的任務(wù)管理對(duì)象生成加載任務(wù);通過(guò)所述預(yù)設(shè)的任務(wù)管理對(duì)象根據(jù)所述加載配置執(zhí)行所述加載任務(wù)。此外,還對(duì)應(yīng)提供了一種應(yīng)用加載系統(tǒng)。上述應(yīng)用加載方法和系統(tǒng)可以有效地提高應(yīng)用加載時(shí)的靈活性。
文檔編號(hào)G06F9/445GK103186386SQ20111044475
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者鄒代柱, 彭勇 申請(qǐng)人:騰訊科技(深圳)有限公司