一種應(yīng)用程序中插件的管理方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種應(yīng)用程序中插件的管理方法和裝置,用于減少插件的重復(fù)下載,并提高插件的使用效率。本發(fā)明實(shí)施例提供一種應(yīng)用程序中插件的管理方法,包括:獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí);根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào);根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件;若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型;若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。
【專利說明】
一種應(yīng)用程序中插件的管理方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用程序中插件的管理方法和裝置。
【背景技術(shù)】
[0002]隨著APP功能越來越強(qiáng)大,每個(gè)功能模塊插件化也越來越流行,現(xiàn)在移動(dòng)設(shè)備中應(yīng)用程序(英文全稱:APPlicat1n,英文簡(jiǎn)稱:APP)的功能需要越來越多,并且各種APP占用的存儲(chǔ)空間也越來越大,但并不是所有的用戶都需要用到所有的功能,所以功能模塊插件化就可以很好的解決這個(gè)問題。例如,有的功能不常用,如果做成插件的話,就不需要直接放在APP中,而是當(dāng)用戶需要時(shí)再去下載,從而減少原始安裝包的大小。
[0003]在目前的插件管理中,每個(gè)插件大多會(huì)涉及到更新、下載、安裝等過程,用戶可以根據(jù)使用需要,觸發(fā)相關(guān)功能插件的下載,做到使用什么功能才下什么插件,但是目前APP的插件管理體系只能實(shí)現(xiàn)簡(jiǎn)單的插件下載操作,并且從服務(wù)器側(cè)下載插件時(shí)通過需要下載最新版本的插件。比如用戶在使用視頻APP播放視頻的時(shí)候,可以通過APP從服務(wù)器側(cè)下載最新版本的解碼庫(kù),這種功能就是插件下載。
[0004]在目前的插件管理中,每次用戶需要使用插件時(shí),都需要通過APP從服務(wù)器側(cè)下載插件,這就會(huì)出現(xiàn)重復(fù)下載插件的情況,從而給用戶帶來不必要的數(shù)據(jù)流量浪費(fèi),而且在插件的版本有更新的情況下,如果舊版本的插件也可以使用的情況下,用戶必須要等新的插件下載完成后才能使用,降低了插件的使用效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種應(yīng)用程序中插件的管理方法和裝置,用于減少插件的重復(fù)下載,并提高插件的使用效率。
[0006]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
[0007]第一方面,本發(fā)明實(shí)施例提供一種應(yīng)用程序中插件的管理方法,包括:
[0008]獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,所述插件請(qǐng)求指令包括:在所述應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí);
[0009]根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)所述插件列表確定所述第一插件對(duì)應(yīng)的更新版本號(hào);
[0010]根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件;
[0011]若從所述本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型;
[0012]若所述插件更新類型為所述第一插件不需要更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。
[0013]第二方面,本發(fā)明實(shí)施例還提供一種應(yīng)用程序中插件的管理裝置,包括:
[0014]指令獲取模塊,用于獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,所述插件請(qǐng)求指令包括:在所述應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí);
[0015]插件列表獲取模塊,用于根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)所述插件列表確定所述第一插件對(duì)應(yīng)的更新版本號(hào);
[0016]本地掃描模塊,用于根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件;
[0017]更新類型獲取模塊,用于若從所述本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型;
[0018]插件加載模塊,用于若所述插件更新類型為所述第一插件不需要更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。
[0019]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
[0020]在本發(fā)明實(shí)施例中,首先獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),接下來根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào),根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件,若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型,若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。本發(fā)明實(shí)施例中從插件請(qǐng)求指令中獲取到需要加載的第一插件標(biāo)識(shí),通過第一插件的更新版本號(hào)和當(dāng)前版本號(hào)進(jìn)行判斷該第一插件的插件更新類型,在第一插件不需要更新的情況下,可以直接將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而實(shí)現(xiàn)應(yīng)用程序中安裝使用第一插件,本發(fā)明實(shí)施例中通過對(duì)插件更新類型的判斷,可以減少插件的重復(fù)下載,不需要等待最新插件的下載完成就可以使用本地可用的插件文件,從而提高了插件的使用效率。
【附圖說明】
[0021]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1為本發(fā)明實(shí)施例提供的一種應(yīng)用程序中插件的管理方法的流程方框示意圖;
[0023]圖2為本發(fā)明實(shí)施例提供的插件的更新版本號(hào)的獲取流程應(yīng)用場(chǎng)景示意圖;
[0024]圖3為本發(fā)明實(shí)施例提供的插件的管理流程應(yīng)用場(chǎng)景示意圖;
[0025]圖4-a為本發(fā)明實(shí)施例提供的一種應(yīng)用程序中插件的管理裝置的組成結(jié)構(gòu)示意圖;
[0026]圖4-b為本發(fā)明實(shí)施例提供的另一種應(yīng)用程序中插件的管理裝置的組成結(jié)構(gòu)示意圖;
[0027]圖4-c為本發(fā)明實(shí)施例提供的另一種應(yīng)用程序中插件的管理裝置的組成結(jié)構(gòu)示意圖;
[0028]圖4_d為本發(fā)明實(shí)施例提供的另一種應(yīng)用程序中插件的管理裝置的組成結(jié)構(gòu)示意圖;
[0029]圖4-e為本發(fā)明實(shí)施例提供的另一種應(yīng)用程序中插件的管理裝置的組成結(jié)構(gòu)示意圖;
[0030]圖4-f為本發(fā)明實(shí)施例提供的一種插件列表獲取模塊的組成結(jié)構(gòu)示意圖;
[0031]圖5為本發(fā)明實(shí)施例提供的應(yīng)用程序中插件的管理方法應(yīng)用于終端的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0032]本發(fā)明實(shí)施例提供了一種應(yīng)用程序中插件的管理方法和裝置,用于減少插件的重復(fù)下載,并提高插件的使用效率。
[0033]為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域的技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它單元。
[0035]本發(fā)明實(shí)施例提供的應(yīng)用程序中插件的管理方法可以實(shí)現(xiàn)應(yīng)用程序中插件的管理維護(hù),能夠高效地利用插件資源,并盡可能降低用戶等待時(shí)間,優(yōu)化用戶體驗(yàn)。以下分別進(jìn)行詳細(xì)說明。
[0036]本發(fā)明應(yīng)用程序中插件的管理方法的一個(gè)實(shí)施例,具體可以應(yīng)用于在終端運(yùn)行的應(yīng)用程序中模塊插件化的管理場(chǎng)景中,請(qǐng)參閱圖1所示,本發(fā)明一個(gè)實(shí)施例提供的應(yīng)用程序中插件的管理方法,可以包括如下步驟:
[0037]101、獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí)。
[0038]在本發(fā)明的一些實(shí)施例中,應(yīng)用程序中的功能模塊可以通過插件的形式來實(shí)現(xiàn),從而便于用戶使用應(yīng)用程序。當(dāng)應(yīng)用程序在終端中運(yùn)行時(shí)可以調(diào)用插件請(qǐng)求指令,以期在應(yīng)用程序中能夠?qū)崿F(xiàn)特定插件對(duì)應(yīng)的功能。舉例說明如下,用戶使用視頻應(yīng)用程序,當(dāng)需要解碼某種特定格式的視頻文件時(shí),就需要調(diào)用插件來解碼該視頻文件,若在應(yīng)用程序的安裝包中沒有加載這種插件,此時(shí)就可以代用插件請(qǐng)求指令。在插件請(qǐng)求指令中可以需要攜帶使用哪種類型的指定插件,本發(fā)明實(shí)施例中將需要使用的指定插件用“第一插件”來表示,該第一插件的插件標(biāo)識(shí)為第一插件標(biāo)識(shí),則獲取到的插件請(qǐng)求指令中就可以包括第一插件標(biāo)識(shí)。
[0039]在本發(fā)明的一些實(shí)施例中,步驟101獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,具體可以包括如下步驟:
[0040]Al、獲取應(yīng)用程序運(yùn)行過程中調(diào)用的至少兩個(gè)插件請(qǐng)求指令。
[0041]其中,若在應(yīng)用程序運(yùn)行過程中建立有多個(gè)進(jìn)程,則每個(gè)進(jìn)程都可以調(diào)用一個(gè)插件請(qǐng)求指令,在應(yīng)用程序中可以調(diào)用到至少兩個(gè)插件請(qǐng)求指令,每個(gè)插件請(qǐng)求指令中可以分別攜帶一個(gè)需要加載的指定插件對(duì)應(yīng)的插件標(biāo)識(shí),則至少兩個(gè)插件請(qǐng)求指令可以攜帶相同的插件標(biāo)識(shí),也可以攜帶不同的插件標(biāo)識(shí),具體此處不做限定。
[0042]102、根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào)。
[0043]在本發(fā)明實(shí)施例中,獲取到插件請(qǐng)求指令之后,可以根據(jù)該插件請(qǐng)求指令與插件管理服務(wù)器進(jìn)行交互,從插件管理服務(wù)器獲取到插件列表,該插件列表中可以包括第一插件對(duì)應(yīng)的更新版本號(hào),其中,更新版本號(hào)可以是插件管理服務(wù)器為第一插件配置的最新版本號(hào),通常情況下每個(gè)插件可以有多個(gè)版本號(hào),在插件管理服務(wù)器中通常保存有最新的版本號(hào)。從插件管理服務(wù)器獲取到第一插件的更新版本號(hào),從而可以確定該第一插件需要在哪種版本類型下加載安裝。另外,在本發(fā)明的一些實(shí)施例中,插件列表中可以包括第一插件對(duì)應(yīng)的更新版本號(hào)之外,還可以包括該更新版本號(hào)對(duì)應(yīng)的第一插件的下載地址,該下載地址可以由插件管理服務(wù)器通過插件列表的形式向應(yīng)用程序中插件的管理裝置進(jìn)行下發(fā),該下載地址也可以由插件管理服務(wù)器單獨(dú)下發(fā),此處不做限定。
[0044]在本發(fā)明的一些實(shí)施例中,在前述執(zhí)行步驟Al的實(shí)現(xiàn)場(chǎng)景下,步驟102根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,具體可以包括如下步驟:
[0045]B1、若至少兩個(gè)插件請(qǐng)求指令中都包括有第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),則將至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令,并根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取到第一插件對(duì)應(yīng)的插件列表。
[0046]其中,若獲取到了至少兩個(gè)插件請(qǐng)求指令,則對(duì)每個(gè)插件請(qǐng)求指令中攜帶的插件標(biāo)識(shí)進(jìn)行判斷,若至少兩個(gè)插件請(qǐng)求指令中都包括有第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),說明多個(gè)進(jìn)程都需要加載的是第一插件,從而為了簡(jiǎn)化與插件管理服務(wù)器的交互,需要將至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令,從而保證對(duì)于需要加載相同插件的多個(gè)插件請(qǐng)求指令只需要和插件管理服務(wù)器進(jìn)行一次交互,即可以根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取到第一插件對(duì)應(yīng)的插件列表,通過事件回調(diào)的方式可以響應(yīng)多個(gè)插件請(qǐng)求指令,以減少對(duì)同一個(gè)插件的重復(fù)請(qǐng)求。
[0047]進(jìn)一步的,在本發(fā)明的一些實(shí)施例中,至少兩個(gè)插件請(qǐng)求指令分別包括:發(fā)起各個(gè)插件請(qǐng)求指令的多個(gè)請(qǐng)求標(biāo)識(shí)。即每個(gè)插件請(qǐng)求指令對(duì)應(yīng)一個(gè)請(qǐng)求標(biāo)識(shí),例如可以是每個(gè)線程發(fā)起一個(gè)插件請(qǐng)求指令。例如應(yīng)用程序?yàn)橐曨l播放程序,則在瀏覽器場(chǎng)景下可以發(fā)起要求加載插件A的插件請(qǐng)求指令I(lǐng),同時(shí)在游戲展示場(chǎng)景下可以發(fā)起要求加載插件A的插件請(qǐng)求指令2,則插件請(qǐng)求指令I(lǐng)和插件請(qǐng)求指令2具有不同的請(qǐng)求標(biāo)識(shí),但是這些請(qǐng)求指令都要求使用相同的插件A。則步驟BI中的將至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令,可以包括如下步驟:
[0048]B11、從至少兩個(gè)插件請(qǐng)求指令中分別提取到多個(gè)請(qǐng)求標(biāo)識(shí);
[0049]B12、將至少兩個(gè)插件請(qǐng)求指令中分別攜帶的第一插件標(biāo)識(shí)和各自的請(qǐng)求標(biāo)識(shí)聚合到一個(gè)插件請(qǐng)求指令中。
[0050]其中,在確定接收到的至少兩個(gè)插件請(qǐng)求指令都需要加載第一插件的情況下,可以從每個(gè)插件請(qǐng)求指令中提取到一個(gè)請(qǐng)求標(biāo)識(shí),該請(qǐng)求標(biāo)識(shí)可以是線程標(biāo)識(shí),也可以是用戶標(biāo)識(shí)。在至少兩個(gè)插件請(qǐng)求指令進(jìn)行聚合時(shí),可以將第一插件標(biāo)識(shí)和各自的請(qǐng)求標(biāo)識(shí)聚合到一個(gè)插件請(qǐng)求指令中,從而聚合后的插件請(qǐng)求指令中就可以包括多個(gè)請(qǐng)求標(biāo)識(shí),根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取第一插件對(duì)應(yīng)的插件列表時(shí),可以實(shí)時(shí)的通過多個(gè)請(qǐng)求標(biāo)識(shí)向請(qǐng)求的觸發(fā)端反饋與插件管理服務(wù)器的交互過程,并在下載到第一插件對(duì)應(yīng)的插件列表后向多個(gè)請(qǐng)求標(biāo)識(shí)的觸發(fā)端反饋下載成功。不限定的是,若第一插件是在靜默下載中獲取到了插件列表,可以不對(duì)插件請(qǐng)求指令做出回調(diào)。
[0051]103、根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件。
[0052]在本發(fā)明實(shí)施例中,獲取到插件請(qǐng)求指令之后,可以從該插件請(qǐng)求指令中解析到第一插件標(biāo)識(shí),然后基于該第一插件標(biāo)識(shí)來掃描應(yīng)用程序中插件的管理裝置中的本地可用的插件文件,即需要掃描本地可用的插件文件中是否存在第一插件,通過掃描本地可用的插件文件為后續(xù)第一插件是否需要更新做準(zhǔn)備。本地可用的插件文件可以是每次靜默下載到的插件文件,這些插件文件可以是應(yīng)用程序在運(yùn)行時(shí)可用的插件。在本地可用的插件文件中對(duì)于每個(gè)插件都對(duì)應(yīng)有版本號(hào),將在本地可用的插件文件中記錄的版本號(hào)定義為當(dāng)前版本號(hào),以區(qū)分從插件列表中確定出的更新版本號(hào)。
[0053]需要說明的是,在本發(fā)明的上述實(shí)施例中,步驟102和步驟103之間沒有時(shí)序上的先后順序之分,示例性的在圖1中以先執(zhí)行步驟102后執(zhí)行步驟103為例進(jìn)行說明,但這只是本發(fā)明可能的一種實(shí)現(xiàn)。另外,本發(fā)明實(shí)施例中根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件會(huì)存在如下的多種情況,有可能從本地可用的插件文件中能夠成功掃描到第一插件,也可能從本地可用的插件文件中掃描不到任何版本的第一插件,也可能從本地可用的插件文件中掃描到某個(gè)舊版本的第一插件,具體實(shí)現(xiàn)情況此處不做限定。
[0054]104、若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型。
[0055]在本發(fā)明實(shí)施例中,通過步驟103掃描本地可用的插件文件之后,若成功掃描到第一插件,將從本地可用的插件文件中掃描到的第一插件對(duì)應(yīng)的版本號(hào)定義為當(dāng)前版本號(hào),則通過步驟102中得到的第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)可以對(duì)第一插件對(duì)應(yīng)的插件更新類型進(jìn)行判斷。從而確定根據(jù)插件請(qǐng)求指令需要在應(yīng)用程序中加載的第一插件屬于哪種類型的更新插件。
[0056]需要說明的是,在本發(fā)明的上述實(shí)施例中,通過第一插件的當(dāng)前版本號(hào)和更新版本號(hào)的比較分析,可以確定出該第一插件的更新類型屬于哪種。進(jìn)一步的,本發(fā)明實(shí)施例中,第一插件對(duì)應(yīng)的插件更新類型可以分為:不需要更新,需要非強(qiáng)制更新和需要強(qiáng)制更新這三種更新類型。舉例說明如下,對(duì)于不需要更新,則說明從本地可用的插件文件中獲取到的第一插件是最新版本的插件,可以直接使用該第一插件,例如更新版本號(hào)和當(dāng)前版本號(hào)相同。對(duì)于需要非強(qiáng)制更新,則表示本地有可用的插件文件,但是當(dāng)前版本號(hào)不是最新的版本。對(duì)于需要強(qiáng)制更新,則表示第一插件必須要更新,無論本地是否有可用插件都需要更新版本號(hào)的第一插件。在實(shí)際應(yīng)用中,對(duì)于插件的具體更新類型可以結(jié)合應(yīng)用場(chǎng)景來實(shí)現(xiàn),例如有的插件涉及大的功能調(diào)整,就可以設(shè)置為需要強(qiáng)制更新,有的插件只涉及很小的漏洞修改,就可以設(shè)置為需要非強(qiáng)制更新。
[0057]在本發(fā)明的一些實(shí)施例中,步驟103根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件之后,除了執(zhí)行步驟104之外,本發(fā)明實(shí)施例提供的應(yīng)用程序中插件的管理方法還可以包括如下步驟:
[0058]Cl、若從本地可用的插件文件中沒有掃描到任何版本號(hào)對(duì)應(yīng)的第一插件,則確定第一插件對(duì)應(yīng)的插件更新類型為第一插件需要強(qiáng)制更新;
[0059]C2、根據(jù)插件列表從插件管理服務(wù)器下載更新版本號(hào)對(duì)應(yīng)的第一插件;
[0060]C3、將更新版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。
[0061]其中,步驟104中描述了掃描到第一插件的處理情況,若從本地可用的插件文件中沒有掃描到第一插件,即在本地可用的插件文件中沒有存儲(chǔ)任何版本號(hào)對(duì)應(yīng)的第一插件,則說明在本地中不存在可用的第一插件,此時(shí)可以確定第一插件對(duì)應(yīng)的插件更新類型為第一插件需要強(qiáng)制更新。第一插件需要強(qiáng)制更新時(shí),需要與插件服務(wù)器進(jìn)行交互,根據(jù)插件列表從插件管理服務(wù)器下載更新版本號(hào)對(duì)應(yīng)的第一插件,即本地中不存在可用的第一插件時(shí)就需要從插件管理服務(wù)器來獲取到第一插件,從而再將更新版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,滿足應(yīng)用程序運(yùn)行時(shí)按照插件請(qǐng)求指令來加載第一插件,避免第一插件調(diào)用失敗。
[0062]105、若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。
[0063]在本發(fā)明實(shí)施例中,通過步驟104確定出第一插件對(duì)應(yīng)的插件更新類型之后,若插件更新類型為第一插件不需要更新,則說明從本地可用的插件文件中獲取到的第一插件是可以安裝到應(yīng)用程序中來運(yùn)行的,此時(shí)可以將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而免去了從插件管理服務(wù)器下載第一插件的過程,用戶可以直接使用本地可用的插件文件,并且有效保證本地的插件文件也是可用的,避免插件加載失敗,同時(shí)免去了用戶等待下載插件的復(fù)雜過程,提高了插件的使用效率。
[0064]在本發(fā)明的一些實(shí)施例中,步驟104根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型之后,本發(fā)明實(shí)施例步驟105中描述了第一插件不需要更新時(shí)的處理方法,接下來請(qǐng)參閱如下記載的應(yīng)用程序中插件的管理方法,該應(yīng)用程序中插件的管理方法還可以包括如下步驟:
[0065]Dl、若插件更新類型為第一插件需要非強(qiáng)制更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中;
[0066]D2、根據(jù)插件列表從插件管理服務(wù)器靜默下載更新版本號(hào)對(duì)應(yīng)的第一插件。
[0067]其中,插件更新類型為第一插件需要非強(qiáng)制更新,說明從本地獲取到第一插件仍然是可用的,將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而省去用戶等待下載更新版本號(hào)的插件的時(shí)間,快速響應(yīng)用戶的插件加載,在步驟Dl的執(zhí)行過程中還可以執(zhí)行步驟D2根據(jù)插件列表從插件管理服務(wù)器靜默下載更新版本號(hào)對(duì)應(yīng)的第一插件。需要說明的是,步驟D2中的靜默下載指的是不影響應(yīng)用程序加載第一插件的情況下,應(yīng)用程序中插件的管理裝置的后臺(tái)與插件管理服務(wù)器進(jìn)行交互,以下載到更新版本號(hào)對(duì)應(yīng)的第一插件,此時(shí)下載完成的更新版本號(hào)對(duì)應(yīng)的第一插件可以用作本地可用的插件文件,以使下次再需要加載第一插件時(shí)可以通過本地的形式加載成功。
[0068]在本發(fā)明的前述實(shí)施例執(zhí)行步驟Cl至C3,或者執(zhí)行步驟Dl至D2的實(shí)現(xiàn)場(chǎng)景下,從插件管理服務(wù)器下載到更新版本號(hào)對(duì)應(yīng)的第一插件之后,該應(yīng)用程序中插件的管理方法還可以包括如下步驟:
[0069]El、對(duì)更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn);
[0070]E2、當(dāng)更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)通過后,使用更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理。
[0071]其中,從插件管理服務(wù)器下載到更新版本號(hào)對(duì)應(yīng)的第一插件之后,為了避免下載好的第一插件被本地防火墻攔截或者下載過程中的出錯(cuò),還需要執(zhí)行步驟El,對(duì)下載到的第一插件進(jìn)行數(shù)據(jù)校驗(yàn),其中數(shù)據(jù)校驗(yàn)的方式可以有多種,此處不做限定,通過數(shù)據(jù)校驗(yàn)可以保證下載完成的第一插件的安全性。在數(shù)據(jù)校驗(yàn)通過后,還可以進(jìn)一步的執(zhí)行步驟E2,使用更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理,以避免于下次需要加載第一插件時(shí)通過更新版本號(hào)可以快速?gòu)谋镜乜捎玫牟寮募写_定出更新版本號(hào)對(duì)應(yīng)的第一插件。其中可以使用的加密算法有消息摘要算法第五版(英文全稱:Message DigestAlgorithm MD5,英文簡(jiǎn)稱:MD5)來對(duì)第一插件的名稱進(jìn)行加密。
[0072]進(jìn)一步的,在本發(fā)明的一些實(shí)施例中,在執(zhí)行步驟El對(duì)更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn)之后,該應(yīng)用程序中插件的管理方法還可以包括如下步驟:
[0073]E3、當(dāng)更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)沒有通過時(shí),從插件備份文件中重新獲取第一插件。
[0074]其中,在步驟El之后,數(shù)據(jù)校驗(yàn)沒有通過時(shí)可以通過插件備份文件來重新下載,該插件備份文件可以存儲(chǔ)在應(yīng)用程序中插件的管理裝置的外部存儲(chǔ)器中,從而便于第一插件的再次獲取,插件備份文件中存儲(chǔ)的第一插件可以是多個(gè)版本號(hào)對(duì)應(yīng)的第一插件,此時(shí)可以從插件備份文件中獲取到上述多個(gè)版本號(hào)中的任意一個(gè)版本對(duì)應(yīng)的第一插件。在步驟E3執(zhí)行之后,還可以再次進(jìn)行數(shù)據(jù)校驗(yàn),直至數(shù)據(jù)校驗(yàn)通過為止,從插件備份文件中重新獲取到第一插件之后,該第一插件可以用作本地可用的插件文件,以保證第一插件能夠在下次需要加載時(shí)直接從本地加載成功。
[0075]進(jìn)一步的,在本發(fā)明的一些實(shí)施例中,在執(zhí)行步驟E2使用更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理之后,該應(yīng)用程序中插件的管理方法還可以包括如下步驟:
[0076]Fl、判斷更新版本號(hào)對(duì)應(yīng)的第一插件是否是靜默下載得到;
[0077]F2、若更新版本號(hào)對(duì)應(yīng)的第一插件是靜默下載得到,則存儲(chǔ)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件;
[0078]F3、若更新版本號(hào)對(duì)應(yīng)的第一插件不是靜默下載得到,對(duì)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行解壓縮,并生成解密配置信息。
[0079]在本發(fā)明的一些實(shí)施例中,對(duì)更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理之后,若該第一插件是靜默下載得到,則說明本次不需要使用更新版本號(hào)對(duì)應(yīng)的第一插件,執(zhí)行步驟F2存儲(chǔ)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件,以便于下次使用第一插件時(shí)直接解壓縮即可,而不需要再次從插件管理服務(wù)器下載。若該第一插件不是靜默下載得到,則說明本次仍需要使用更新版本號(hào)對(duì)應(yīng)的第一插件,執(zhí)行步驟F3對(duì)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行解壓縮,并生成解密配置信息,例如該解密配置信息可以是一個(gè)配置文件,解壓下載的第一插件時(shí)生成,主要內(nèi)容是第一插件的文件名和該第一插件的內(nèi)容和更新版本號(hào)生成的MD5值,下次使用第一插件時(shí)可以通過該解密配置信息來快速查找到第一插件,而不需要再次從插件管理服務(wù)器下載。
[0080]通過以上實(shí)施例對(duì)本發(fā)明實(shí)施例的描述可知,首先獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),接下來根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào),根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件,若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型,若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。本發(fā)明實(shí)施例中從插件請(qǐng)求指令中獲取到需要加載的第一插件標(biāo)識(shí),通過第一插件的更新版本號(hào)和當(dāng)前版本號(hào)進(jìn)行判斷該第一插件的插件更新類型,在第一插件不需要更新的情況下,可以直接將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而實(shí)現(xiàn)應(yīng)用程序中安裝使用第一插件,本發(fā)明實(shí)施例中通過對(duì)插件更新類型的判斷,可以減少插件的重復(fù)下載,不需要等待最新插件的下載完成就可以使用本地可用的插件文件,從而提高了插件的使用效率。
[0081]為便于更好的理解和實(shí)施本發(fā)明實(shí)施例的上述方案,下面舉例相應(yīng)的應(yīng)用場(chǎng)景來進(jìn)行具體說明。
[0082]本發(fā)明實(shí)施例提供的應(yīng)用程序中插件的管理方法,如圖2和圖3所示,圖2為本發(fā)明實(shí)施例提供的插件的更新版本號(hào)的獲取流程應(yīng)用場(chǎng)景示意圖,圖3為本發(fā)明實(shí)施例提供的插件的管理流程應(yīng)用場(chǎng)景示意圖;可以實(shí)現(xiàn)一套插件備份恢復(fù)機(jī)制,而且局部修改部分插件,應(yīng)用程序中插件的管理裝置具有插件修改的權(quán)限,而且可以實(shí)現(xiàn)后臺(tái)靜默下載安裝功能,并且通過跨進(jìn)程管理機(jī)制,支持多進(jìn)程數(shù)據(jù)插件管理。
[0083]本發(fā)明實(shí)施例可以實(shí)現(xiàn)一套插件管理體系,支持插件更新、備份、后臺(tái)靜默下載等功能,下面以瀏覽器的插件管理來舉例說明,請(qǐng)參閱圖2和圖3所示。
[0084]在圖2所示的更新版本號(hào)的獲取流程應(yīng)用場(chǎng)景中,主要包括如下步驟:
[0085]SOl、用戶請(qǐng)求使用插件。
[0086]用戶可以發(fā)送插件請(qǐng)求指令給終端。
[0087]S02、多實(shí)例管理器接收指令。
[0088]其中,終端的多實(shí)例管理器用來管理同種插件,不同線程發(fā)來的請(qǐng)求,保證在同一個(gè)進(jìn)程內(nèi),插件請(qǐng)求任務(wù)唯一,同時(shí)還能同步通知所有的事件回調(diào)。
[0089]舉例說明,用戶請(qǐng)求某一個(gè)特定的插件,會(huì)在多實(shí)例管理器中查找是否有相同的插件請(qǐng)求在運(yùn)行,如果有則把消息通知回調(diào)加入多實(shí)例管理器中,用以同步插件使用狀態(tài),如果沒有則新起一個(gè)插件任務(wù),然后執(zhí)行步驟S03。
[0090]S03、等待后臺(tái)插件列表下發(fā)。
[0091]其中,若步驟S03執(zhí)行超時(shí),可以執(zhí)行步驟S07,可等待30秒后重新執(zhí)行S04。后臺(tái)插件列表可以由插件管理服務(wù)器發(fā)送給終端。本發(fā)明實(shí)施例中需要依賴插件管理服務(wù)器下發(fā)的插件列表,所以這里需要等待一下后臺(tái)反饋的結(jié)果信息,等插件列表下拉成功了,則可以進(jìn)行下一步S04。
[0092]S04、掃描本地可用的插件文件。
[0093]在終端本地掃描可用的插件文件,將掃描出的插件對(duì)應(yīng)的版本號(hào)定義為當(dāng)前版本號(hào),掃描本地可用文件可以找到本地可用插件。
[0094]本發(fā)明實(shí)施例中,需要查找本地可用的插件文件,該本地掃描為后面判斷是否需要更新做了一個(gè)準(zhǔn)備,同時(shí)提供了一個(gè)備選方案,一旦不需要立即更新下載插件的情況下,可以直接利用這里找的插件文件。例如,可以結(jié)合數(shù)據(jù)庫(kù)中找的安裝后的插件文件目錄,然后根據(jù)這個(gè)目錄下plugin.dat中記錄的數(shù)據(jù)校驗(yàn)md5值和真實(shí)的插件文件進(jìn)行對(duì)比,如果一致,表示插件可用,否則插件不可用,同時(shí)即使安裝后的插件文件有損,因?yàn)橛袀浞莶寮募?,依然可以恢?fù)回來,因此可以認(rèn)定是本地可用插件文件。
[0095]S05、獲取后臺(tái)下發(fā)的更新版本號(hào)。
[0096]其中,插件的版本號(hào)是指每一個(gè)插件對(duì)應(yīng)一個(gè)版本號(hào),一旦有更新,版本號(hào)同步會(huì)修改,保證版本號(hào)不重復(fù)。
[0097]S06、觸發(fā)執(zhí)行插件的管理流程。
[0098]其中,即執(zhí)行圖3所示的插件管理流程。
[0099]S07、提示報(bào)錯(cuò)。
[0100]在圖3所示的插件的管理流程應(yīng)用場(chǎng)景中,主要包括如下步驟:
[0101]S11、獲取插件的更新版本號(hào)和當(dāng)前版本號(hào)。
[0102]其中,通過前述圖2所示,獲取到插件的更新版本號(hào)和當(dāng)前版本號(hào)。
[0103]S12、獲取插件更新類型。
[0104]其中,插件更新類型分為:不需要更新,非強(qiáng)制更新和強(qiáng)制更新3種。不需要更新表示本地插件就是最新的,可以直接使用,非強(qiáng)制更新表示本地有可用的插件,但是不是最新的。強(qiáng)制更新表示必須要更新,本地即使有可用插件也忽略。
[0105]S13、判斷是否需要更新。
[0106]其中,若不需要更新,可以觸發(fā)執(zhí)行步驟S22,若需要更新觸發(fā)執(zhí)行步驟S14。舉例說明,是否需要更新可以通過如下方式實(shí)現(xiàn):終端后臺(tái)配置強(qiáng)制更新,或者本地沒有可用插件文件,以及本地可用插件文件的當(dāng)前版本號(hào)和插件列表中下發(fā)的更新版本號(hào)不一致,在上述情況下,都可以確定需要更新。
[0107]S14、有靜默下載好的插件。
[0108]其中,若插件預(yù)先下載完成,可以觸發(fā)執(zhí)行步驟S22,若沒有下載好則觸發(fā)執(zhí)行步驟S15。舉例說明,如果需要更新,則先檢查插件是否有靜默下載好的插件,有則直接解壓安裝,沒有的話,非強(qiáng)制更新,則先加載本地可用插件,并靜默下載要更新的插件,下載完成后根據(jù)對(duì)下載好的插件進(jìn)行加密處理,便于下次快速查找,同時(shí)不解壓安裝,以待下次使用插件的時(shí)候安裝,以瀏覽器來說需要等到重啟瀏覽器的時(shí)候才會(huì)使用。如果是強(qiáng)制安裝,則直接啟動(dòng)下載功能,同時(shí)通知用戶下載進(jìn)度,下載完成后先進(jìn)行加密處理,然后再解壓安裝,詳見后續(xù)內(nèi)容的說明。
[0109]S15、是否強(qiáng)制更新。
[0110]其中,判斷插件的更新類型是否需要強(qiáng)制更新,對(duì)于強(qiáng)制更新可以執(zhí)行步驟S18,對(duì)于非強(qiáng)制更新可以執(zhí)行步驟S16和步驟S17。舉例說明如下,強(qiáng)制更新可以由終端后臺(tái)要求強(qiáng)制更新,或者在終端本地沒有可用插件時(shí)要求強(qiáng)制更新。
[0111]舉例說明如下,獲取終端更新下來的插件的更新類型,這個(gè)類型有2種:強(qiáng)制更新和非強(qiáng)制更新,另外從本地掃描得到的可用插件文件也有一個(gè)當(dāng)前版本號(hào),這個(gè)當(dāng)前版本號(hào)和插件列表中下發(fā)的更新版本號(hào)對(duì)比,如果一致,則最終的更新結(jié)果是不需要更新,如果版本不一致,則會(huì)根據(jù)插件管理服務(wù)器給定的更新結(jié)果來覺得最終的更新類型,如果本地沒有找到可用插件文件,則更新結(jié)果必然是強(qiáng)制更新。
[0112]S16、加載本地可用插件文件。
[0113]S17、觸發(fā)后臺(tái)靜默下載插件文件。
[0114]其中,可以通過終端的后臺(tái)從插件管理服務(wù)器下載插件文件。
[0115]S18、觸發(fā)瀏覽器服務(wù)器(英文名稱:server)端下載。
[0116]其中,瀏覽器server有一個(gè)單獨(dú)的server進(jìn)程,用來保證數(shù)據(jù)唯一"性,比如插件下載功能就需要在server端實(shí)現(xiàn),防止同一個(gè)插件,不同進(jìn)程同時(shí)下載。例如,瀏覽器server端從插件管理服務(wù)器中獲取插件列表,然后根據(jù)獲取到的插件列表,觸發(fā)瀏覽器server端下載到正確的插件文件。
[0117]S19、下載完成后數(shù)據(jù)校驗(yàn)。
[0118]其中,S18和S17執(zhí)行完成后可以執(zhí)行步驟S19。數(shù)據(jù)校驗(yàn)可以通過數(shù)據(jù)校驗(yàn)算法來完成插件的校驗(yàn)。
[0119]S20、做MD5重命名處理,方便下次快速訪問。
[0120]其中,MD5為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。
[0121]S21、是否來自靜默下載。
[0122]若來自靜默下載,則執(zhí)行步驟S22,若不是來自靜默下載,則執(zhí)行步驟S23。舉例說明,終端里面會(huì)記錄當(dāng)前的插件任務(wù)是否是靜默的,本身是否是靜默的,調(diào)用層使用的時(shí)候就可以確定插件是否來自靜默下載。
[0123 ] S22、解壓,并生成解密配置文件。
[0124]其中,步驟S22執(zhí)行之后觸發(fā)執(zhí)行步驟S24。例如,解密配置文件可以是plugin.dat文件,用于校驗(yàn)解壓后的插件文件是否正確。舉例說明,如果插件不需要更新,則直接加載即可。
[0125]S23、完成,下次使用插件時(shí)直接解壓縮,不需要重新下載。
[0126]S24、加載并使用插件。
[0127]需要說明的是,在本發(fā)明實(shí)施例中,所有啟動(dòng)下載的過程多是統(tǒng)一在server端處理的,這樣就避免了多進(jìn)程下載同一個(gè)插件可能會(huì)出現(xiàn)同步等問題。例如,如果A和B同時(shí)請(qǐng)求下載一個(gè)插件,那么A和B就會(huì)同時(shí)修改同一個(gè)插件文件,這樣文件的內(nèi)容可能會(huì)亂掉。
[0128]通過本發(fā)明實(shí)施例提供的前述方法,可以有效的利用已有的插件備份文件,同時(shí)考慮插件各種更新類型,減少用戶插件下載安裝等待時(shí)間,增加靜默下載功能,可以優(yōu)化用戶體驗(yàn),提前讓用戶使用插件功能,支持多實(shí)例管理,并且多進(jìn)程使用插件也能保證穩(wěn)定性和唯一性。高效的數(shù)據(jù)查找和數(shù)據(jù)校驗(yàn)功能,保證用戶使用的安全性和高效性,增強(qiáng)了用戶體驗(yàn)。
[0129]需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0130]為便于更好的實(shí)施本發(fā)明實(shí)施例的上述方案,下面還提供用于實(shí)施上述方案的相關(guān)裝置。
[0131]請(qǐng)參閱圖4-a所示,本發(fā)明實(shí)施例提供的一種應(yīng)用程序中插件的管理裝置400,可以包括:指令獲取模塊401、插件列表獲取模塊402、本地掃描模塊403、更新類型獲取模塊404、插件加載模塊405,其中,
[0132]指令獲取模塊401,用于獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,所述插件請(qǐng)求指令包括:在所述應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí);
[0133]插件列表獲取模塊402,用于根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)所述插件列表確定所述第一插件對(duì)應(yīng)的更新版本號(hào);
[0134]本地掃描模塊403,用于根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件;
[0135]更新類型獲取模塊404,用于若從所述本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型;
[0136]插件加載模塊405,用于若所述插件更新類型為所述第一插件不需要更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。
[0137]在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖4-b所示,所述應(yīng)用程序中插件的管理裝置400還包括:插件下載模塊406,其中,
[0138]所述更新類型獲取模塊404,還用于所述本地掃描模塊403根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件之后,若從所述本地可用的插件文件中沒有掃描到任何版本號(hào)對(duì)應(yīng)的第一插件,則確定所述第一插件對(duì)應(yīng)的插件更新類型為所述第一插件需要強(qiáng)制更新;
[0139]所述插件下載模塊406,用于根據(jù)所述插件列表從所述插件管理服務(wù)器下載更新版本號(hào)對(duì)應(yīng)的第一插件;
[0140]所述插件加載模塊405,還用于將所述更新版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。
[0141]在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖4-c所示,所述應(yīng)用程序中插件的管理裝置400還包括:插件靜默下載模塊407,其中,
[0142]所述插件加載模塊405,還用于所述更新類型獲取模塊404根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型之后,若所述插件更新類型為所述第一插件需要非強(qiáng)制更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中;
[0143]所述插件靜默下載模塊407,用于根據(jù)所述插件列表從所述插件管理服務(wù)器靜默下載更新版本號(hào)對(duì)應(yīng)的第一插件。
[0144]在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖4-d所示,相對(duì)于圖4-b或圖4-c所示,圖4-d中以相對(duì)于圖4-b為例進(jìn)行說明,所述應(yīng)用程序中插件的管理裝置400還包括:數(shù)據(jù)校驗(yàn)?zāi)K408和加密模塊409,其中,
[0145]所述數(shù)據(jù)校驗(yàn)?zāi)K408,用于所述插件靜默下載模塊或所述插件下載模塊406從所述插件管理服務(wù)器下載到更新版本號(hào)對(duì)應(yīng)的第一插件之后,對(duì)所述更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn);
[0146]所述加密模塊409,還用于當(dāng)所述更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)通過后,使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理。
[0147]進(jìn)一步的,在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖4-e所示,相對(duì)于圖4-d所示,所述應(yīng)用程序中插件的管理裝置400還包括:下載類型判斷模塊410、插件存儲(chǔ)模塊411和插件解壓縮模塊412,其中,
[0148]所述下載類型判斷模塊410,用于所述加密模塊409使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理之后,判斷所述更新版本號(hào)對(duì)應(yīng)的第一插件是否是靜默下載得到;
[0149]所述插件存儲(chǔ)模塊411,用于若所述更新版本號(hào)對(duì)應(yīng)的第一插件是靜默下載得到,則存儲(chǔ)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件;
[0150]所述插件解壓縮模塊412,用于若所述更新版本號(hào)對(duì)應(yīng)的第一插件不是靜默下載得到,對(duì)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行解壓縮,并生成解密配置信息。
[0151]在本發(fā)明的一些實(shí)施例中,所述插件靜默下載模塊407或所述插件下載模塊406,還用于所述數(shù)據(jù)校驗(yàn)?zāi)K408對(duì)所述更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn)之后,當(dāng)所述更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)沒有通過時(shí),從插件備份文件中重新獲取第一插件。
[0152]在本發(fā)明的一些實(shí)施例中,所述指令獲取模塊401,具體用于獲取應(yīng)用程序運(yùn)行過程中調(diào)用的至少兩個(gè)插件請(qǐng)求指令;
[0153]如圖4-f所示,所述插件列表獲取模塊402,包括:指令聚合模塊4021和指令執(zhí)行模塊4022,其中,
[0154]所述指令聚合模塊4021,用于若所述至少兩個(gè)插件請(qǐng)求指令中都包括有第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),則將至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令;
[0155]所述指令執(zhí)行模塊4022,用于根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取到所述第一插件對(duì)應(yīng)的插件列表。
[0156]進(jìn)一步的,所述至少兩個(gè)插件請(qǐng)求指令分別包括:發(fā)起各個(gè)插件請(qǐng)求指令的多個(gè)請(qǐng)求標(biāo)識(shí);所述指令聚合模塊4022,具體用于從所述至少兩個(gè)插件請(qǐng)求指令中分別提取到多個(gè)請(qǐng)求標(biāo)識(shí);將所述至少兩個(gè)插件請(qǐng)求指令中分別攜帶的第一插件標(biāo)識(shí)和各自的請(qǐng)求標(biāo)識(shí)聚合到一個(gè)插件請(qǐng)求指令中。
[0157]通過以上對(duì)本發(fā)明實(shí)施例的描述可知,首先獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),接下來根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào),根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件,若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型,若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。本發(fā)明實(shí)施例中從插件請(qǐng)求指令中獲取到需要加載的第一插件標(biāo)識(shí),通過第一插件的更新版本號(hào)和當(dāng)前版本號(hào)進(jìn)行判斷該第一插件的插件更新類型,在第一插件不需要更新的情況下,可以直接將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而實(shí)現(xiàn)應(yīng)用程序中安裝使用第一插件,本發(fā)明實(shí)施例中通過對(duì)插件更新類型的判斷,可以減少插件的重復(fù)下載,不需要等待最新插件的下載完成就可以使用本地可用的插件文件,從而提高了插件的使用效率。
[0158]本發(fā)明實(shí)施例還提供了另一種終端,如圖5所示,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明實(shí)施例方法部分。該終端可以為包括手機(jī)、平板電腦、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、P0S(Point ofSales,銷售終端)、車載電腦等任意終端設(shè)備,以終端為手機(jī)為例:
[0159]圖5示出的是與本發(fā)明實(shí)施例提供的終端相關(guān)的手機(jī)的部分結(jié)構(gòu)的框圖。參考圖5,手機(jī)包括:射頻(Rad1 Frequency,RF)電路1010、存儲(chǔ)器1020、輸入單元1030、顯示單元1040、傳感器1050、音頻電路1060、無線保真(wireless fidelity,WiFi)模塊1070、處理器1080、以及電源1090等部件。本領(lǐng)域技術(shù)人員可以理解,圖5中示出的手機(jī)結(jié)構(gòu)并不構(gòu)成對(duì)手機(jī)的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0160]下面結(jié)合圖5對(duì)手機(jī)的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:
[0161]RF電路1010可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器1080處理;另外,將設(shè)計(jì)上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路1010包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(Low NoiseAmplif ier,LNA)、雙工器等。此外,RF電路1010還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(GlobalSystem of Mobile communicat1n,GSM)、通用分組無線服務(wù)(General Packet Rad1Service,GPRS)、碼分多址(Code Divis1n Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Divis1n Multiple Access ,WCDMA)、長(zhǎng)期演進(jìn)(Long Term Evolut1n,LTE)、電子郵件、短消息服務(wù)(Short Messaging Service,SMS)等。
[0162]存儲(chǔ)器1020可用于存儲(chǔ)軟件程序以及模塊,處理器1080通過運(yùn)行存儲(chǔ)在存儲(chǔ)器1020的軟件程序以及模塊,從而執(zhí)行手機(jī)的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器1020可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器1020可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
[0163]輸入單元1030可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機(jī)的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,輸入單元1030可包括觸控面板1031以及其他輸入設(shè)備1032。觸控面板1031,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1031上或在觸控面板1031附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸控面板1031可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器1080,并能接收處理器1080發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板1031。除了觸控面板1031,輸入單元1030還可以包括其他輸入設(shè)備1032。具體地,其他輸入設(shè)備1032可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
[0164]顯示單元1040可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機(jī)的各種菜單。顯示單元1040可包括顯示面板1041,可選的,可以采用液晶顯示器(LiquidCrystal Display,LCD)、有機(jī)發(fā)光二極管(Organic Light-Emitting D1de,0LED)等形式來配置顯示面板1041。進(jìn)一步的,觸控面板1031可覆蓋顯示面板1041,當(dāng)觸控面板1031檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器1080以確定觸摸事件的類型,隨后處理器1080根據(jù)觸摸事件的類型在顯示面板1041上提供相應(yīng)的視覺輸出。雖然在圖5中,觸控面板1031與顯示面板1041是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)手機(jī)的輸入和輸入功能,但是在某些實(shí)施例中,可以將觸控面板1031與顯示面板1041集成而實(shí)現(xiàn)手機(jī)的輸入和輸出功能。
[0165]手機(jī)還可包括至少一種傳感器1050,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1041的亮度,接近傳感器可在手機(jī)移動(dòng)到耳邊時(shí),關(guān)閉顯示面板1041和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于手機(jī)還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
[0166]音頻電路1060、揚(yáng)聲器1061,傳聲器1062可提供用戶與手機(jī)之間的音頻接口。音頻電路1060可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器1061,由揚(yáng)聲器1061轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器1062將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路1060接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器1080處理后,經(jīng)RF電路1010以發(fā)送給比如另一手機(jī),或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器1020以便進(jìn)一步處理。
[0167]WiFi屬于短距離無線傳輸技術(shù),手機(jī)通過WiFi模塊1070可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁(yè)和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖5示出了WiFi模塊1070,但是可以理解的是,其并不屬于手機(jī)的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
[0168]處理器1080是手機(jī)的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器1020內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器1020內(nèi)的數(shù)據(jù),執(zhí)行手機(jī)的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器1080可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器1080可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器1080中。
[0169]手機(jī)還包括給各個(gè)部件供電的電源1090(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器1080邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。
[0170]盡管未示出,手機(jī)還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。
[0171]在本發(fā)明實(shí)施例中,該終端所包括的處理器1080還具有控制執(zhí)行以上由終端執(zhí)行的應(yīng)用程序中插件的管理方法流程。
[0172]通過以上對(duì)本發(fā)明實(shí)施例的描述可知,首先獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,插件請(qǐng)求指令包括:在應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),接下來根據(jù)插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)插件列表確定第一插件對(duì)應(yīng)的更新版本號(hào),根據(jù)第一插件標(biāo)識(shí)掃描本地可用的插件文件,若從本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取第一插件對(duì)應(yīng)的插件更新類型,若插件更新類型為第一插件不需要更新,則將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中。本發(fā)明實(shí)施例中從插件請(qǐng)求指令中獲取到需要加載的第一插件標(biāo)識(shí),通過第一插件的更新版本號(hào)和當(dāng)前版本號(hào)進(jìn)行判斷該第一插件的插件更新類型,在第一插件不需要更新的情況下,可以直接將當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到應(yīng)用程序中,從而實(shí)現(xiàn)應(yīng)用程序中安裝使用第一插件,本發(fā)明實(shí)施例中通過對(duì)插件更新類型的判斷,可以減少插件的重復(fù)下載,不需要等待最新插件的下載完成就可以使用本地可用的插件文件,從而提高了插件的使用效率。
[0173]另外需說明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號(hào)線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0174]通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲(chǔ)器、專用元器件等來實(shí)現(xiàn)。一般情況下,凡由計(jì)算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來實(shí)現(xiàn),而且,用來實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,?duì)本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(R0M,Read-0nly Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0175]綜上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種應(yīng)用程序中插件的管理方法,其特征在于,包括: 獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,所述插件請(qǐng)求指令包括:在所述應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí); 根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)所述插件列表確定所述第一插件對(duì)應(yīng)的更新版本號(hào); 根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件; 若從所述本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型; 若所述插件更新類型為所述第一插件不需要更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件之后,所述方法還包括: 若從所述本地可用的插件文件中沒有掃描到任何版本號(hào)對(duì)應(yīng)的第一插件,則確定所述第一插件對(duì)應(yīng)的插件更新類型為所述第一插件需要強(qiáng)制更新; 根據(jù)所述插件列表從所述插件管理服務(wù)器下載更新版本號(hào)對(duì)應(yīng)的第一插件; 將所述更新版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型之后,所述方法還包括: 若所述插件更新類型為所述第一插件需要非強(qiáng)制更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中; 根據(jù)所述插件列表從所述插件管理服務(wù)器靜默下載更新版本號(hào)對(duì)應(yīng)的第一插件。4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,從所述插件管理服務(wù)器下載到更新版本號(hào)對(duì)應(yīng)的第一插件之后,所述方法還包括: 對(duì)所述更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn); 當(dāng)所述更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)通過后,使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理之后,所述方法還包括: 判斷所述更新版本號(hào)對(duì)應(yīng)的第一插件是否是靜默下載得到; 若所述更新版本號(hào)對(duì)應(yīng)的第一插件是靜默下載得到,則存儲(chǔ)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件; 若所述更新版本號(hào)對(duì)應(yīng)的第一插件不是靜默下載得到,對(duì)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行解壓縮,并生成解密配置信息。6.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,所述獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,包括: 獲取應(yīng)用程序運(yùn)行過程中調(diào)用的至少兩個(gè)插件請(qǐng)求指令; 所述根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,包括: 若所述至少兩個(gè)插件請(qǐng)求指令中都包括有第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),則將所述至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令,并根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取到所述第一插件對(duì)應(yīng)的插件列表。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述至少兩個(gè)插件請(qǐng)求指令分別包括:發(fā)起各個(gè)插件請(qǐng)求指令的多個(gè)請(qǐng)求標(biāo)識(shí); 所述將所述至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令,包括: 從所述至少兩個(gè)插件請(qǐng)求指令中分別提取到多個(gè)請(qǐng)求標(biāo)識(shí); 將所述至少兩個(gè)插件請(qǐng)求指令中分別攜帶的第一插件標(biāo)識(shí)和各自的請(qǐng)求標(biāo)識(shí)聚合到一個(gè)插件請(qǐng)求指令中。8.一種應(yīng)用程序中插件的管理裝置,其特征在于,包括: 指令獲取模塊,用于獲取應(yīng)用程序運(yùn)行過程中調(diào)用的插件請(qǐng)求指令,所述插件請(qǐng)求指令包括:在所述應(yīng)用程序中需要加載的第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí); 插件列表獲取模塊,用于根據(jù)所述插件請(qǐng)求指令從插件管理服務(wù)器獲取到插件列表,根據(jù)所述插件列表確定所述第一插件對(duì)應(yīng)的更新版本號(hào); 本地掃描模塊,用于根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件; 更新類型獲取模塊,用于若從所述本地可用的插件文件中獲取到當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件,根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型; 插件加載模塊,用于若所述插件更新類型為所述第一插件不需要更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述應(yīng)用程序中插件的管理裝置還包括:插件下載模塊,其中, 所述更新類型獲取模塊,還用于所述本地掃描模塊根據(jù)所述第一插件標(biāo)識(shí)掃描本地可用的插件文件之后,若從所述本地可用的插件文件中沒有掃描到任何版本號(hào)對(duì)應(yīng)的第一插件,則確定所述第一插件對(duì)應(yīng)的插件更新類型為所述第一插件需要強(qiáng)制更新; 所述插件下載模塊,用于根據(jù)所述插件列表從所述插件管理服務(wù)器下載更新版本號(hào)對(duì)應(yīng)的第一插件; 所述插件加載模塊,還用于將所述更新版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述應(yīng)用程序中插件的管理裝置還包括:插件靜默下載模塊,其中, 所述插件加載模塊,還用于所述更新類型獲取模塊根據(jù)所述第一插件對(duì)應(yīng)的更新版本號(hào)和當(dāng)前版本號(hào)獲取所述第一插件對(duì)應(yīng)的插件更新類型之后,若所述插件更新類型為所述第一插件需要非強(qiáng)制更新,則將所述當(dāng)前版本號(hào)對(duì)應(yīng)的第一插件加載到所述應(yīng)用程序中; 所述插件靜默下載模塊,用于根據(jù)所述插件列表從所述插件管理服務(wù)器靜默下載更新版本號(hào)對(duì)應(yīng)的第一插件。11.根據(jù)權(quán)利要求9或10所述的裝置,其特征在于,所述應(yīng)用程序中插件的管理裝置還包括:數(shù)據(jù)校驗(yàn)?zāi)K和加密模塊,其中, 所述數(shù)據(jù)校驗(yàn)?zāi)K,用于所述插件靜默下載模塊或所述插件下載模塊從所述插件管理服務(wù)器下載到更新版本號(hào)對(duì)應(yīng)的第一插件之后,對(duì)所述更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行數(shù)據(jù)校驗(yàn); 所述加密模塊,還用于當(dāng)所述更新版本號(hào)對(duì)應(yīng)的第一插件校驗(yàn)通過后,使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述應(yīng)用程序中插件的管理裝置還包括:下載類型判斷模塊、插件存儲(chǔ)模塊和插件解壓縮模塊,其中, 所述下載類型判斷模塊,用于所述加密模塊使用所述更新版本號(hào)對(duì)下載到的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行加密處理之后,判斷所述更新版本號(hào)對(duì)應(yīng)的第一插件是否是靜默下載得到; 所述插件存儲(chǔ)模塊,用于若所述更新版本號(hào)對(duì)應(yīng)的第一插件是靜默下載得到,則存儲(chǔ)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件; 所述插件解壓縮模塊,用于若所述更新版本號(hào)對(duì)應(yīng)的第一插件不是靜默下載得到,對(duì)加密處理完成后的更新版本號(hào)對(duì)應(yīng)的第一插件進(jìn)行解壓縮,并生成解密配置信息。13.根據(jù)權(quán)利要求8至10中任一項(xiàng)所述的裝置,其特征在于,所述指令獲取模塊,具體用于獲取應(yīng)用程序運(yùn)行過程中調(diào)用的至少兩個(gè)插件請(qǐng)求指令; 所述插件列表獲取模塊,包括:指令聚合模塊和指令執(zhí)行模塊,其中, 所述指令聚合模塊,用于若所述至少兩個(gè)插件請(qǐng)求指令中都包括有第一插件對(duì)應(yīng)的第一插件標(biāo)識(shí),則將所述至少兩個(gè)插件請(qǐng)求指令聚合為一個(gè)插件請(qǐng)求指令; 所述指令執(zhí)行模塊,用于根據(jù)聚合后的一個(gè)插件請(qǐng)求指令從插件管理服務(wù)器獲取到所述第一插件對(duì)應(yīng)的插件列表。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述至少兩個(gè)插件請(qǐng)求指令分別包括:發(fā)起各個(gè)插件請(qǐng)求指令的多個(gè)請(qǐng)求標(biāo)識(shí); 所述指令聚合模塊,具體用于從所述至少兩個(gè)插件請(qǐng)求指令中分別提取到多個(gè)請(qǐng)求標(biāo)識(shí);將所述至少兩個(gè)插件請(qǐng)求指令中分別攜帶的第一插件標(biāo)識(shí)和各自的請(qǐng)求標(biāo)識(shí)聚合到一個(gè)插件請(qǐng)求指令中。
【文檔編號(hào)】G06F9/44GK106095458SQ201610444423
【公開日】2016年11月9日
【申請(qǐng)日】2016年6月20日
【發(fā)明人】韓山駿, 李龍彬
【申請(qǐng)人】騰訊科技(深圳)有限公司