亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

業(yè)務(wù)應(yīng)用程序的升級方法和裝置與流程

文檔序號:11828998閱讀:303來源:國知局
業(yè)務(wù)應(yīng)用程序的升級方法和裝置與流程

本發(fā)明涉及軟件升級領(lǐng)域,特別是涉及一種業(yè)務(wù)應(yīng)用程序的升級方法和裝置。



背景技術(shù):

隨著計算機(jī)技術(shù)的發(fā)展,提供各種功能的應(yīng)用程序應(yīng)運(yùn)而生。有時應(yīng)用程序需要實現(xiàn)其他業(yè)務(wù)功能,該業(yè)務(wù)功能需要較長周期的開發(fā),且成本較高,因此產(chǎn)生了業(yè)務(wù)平臺。應(yīng)用程序只需要集成業(yè)務(wù)平臺提供的SDK(Software Development Kit,軟件開發(fā)工具包)就可以具有業(yè)務(wù)功能,極大的減小了開發(fā)周期,功能也相對穩(wěn)定。但是目前的SDK更新周期比較快,若應(yīng)用程序需要使用業(yè)務(wù)SDK的最新功能,或者某個版本的業(yè)務(wù)SDK存在驗證缺陷時,應(yīng)用程序需要集成最新的業(yè)務(wù)SDK,且需要重新更新應(yīng)用程序。

因應(yīng)用程序直接集成業(yè)務(wù)SDK,應(yīng)用程序發(fā)布后要更新業(yè)務(wù)SDK,需要重新集成SDK和重新發(fā)布的應(yīng)用程序,而且也要重新升級應(yīng)用程序后才能使用最新業(yè)務(wù)SDK功能,業(yè)務(wù)SDK無法自主升級,而且業(yè)務(wù)SDK和應(yīng)用程序運(yùn)行在同一個進(jìn)程內(nèi),業(yè)務(wù)SDK的全局?jǐn)?shù)據(jù)可以被應(yīng)用程序訪問,安全性低。



技術(shù)實現(xiàn)要素:

基于此,有必要針對傳統(tǒng)的應(yīng)用程序集成業(yè)務(wù)SDK中,業(yè)務(wù)的SDK無法自主升級且SDK數(shù)據(jù)可以被應(yīng)用程序訪問導(dǎo)致安全性低的問題,提供一種業(yè)務(wù)應(yīng)用程序的升級方法和裝置。

一種業(yè)務(wù)應(yīng)用程序的升級方法,包括以下步驟:

將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化;

檢測業(yè)務(wù)應(yīng)用程序的升級類型;

若所述升級類型為建議升級,獲取目標(biāo)應(yīng)用程序,將所述目標(biāo)應(yīng)用程序拷貝到臨時存放目錄中,以及加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序;

若所述升級類型為強(qiáng)制升級,獲取目標(biāo)應(yīng)用程序,將所述目標(biāo)應(yīng)用程序拷貝到所述指定文件目錄中,并在校驗所述目標(biāo)應(yīng)用程序通過后,加載所述指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

一種業(yè)務(wù)應(yīng)用程序的升級裝置,包括:

初始化模塊,用于將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化;

類型檢測模塊,用于檢測業(yè)務(wù)應(yīng)用程序的升級類型;

獲取模塊,用于若所述升級類型為建議升級,獲取目標(biāo)應(yīng)用程序,以及若所述升級類型為強(qiáng)制升級,獲取目標(biāo)應(yīng)用程序;

拷貝模塊,用于若所述升級類型為建議升級,則將所述目標(biāo)應(yīng)用程序拷貝到臨時存放目錄中,以及若所述升級類型為強(qiáng)制升級,將所述目標(biāo)應(yīng)用程序拷貝到所述指定文件目錄中;

加載模塊,用于若所述升級類型為建議升級,加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,以及若所述升級類型為強(qiáng)制升級,則在校驗所述目標(biāo)應(yīng)用程序通過后,加載所述指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

上述業(yè)務(wù)應(yīng)用程序的升級方法和裝置,檢測到業(yè)務(wù)應(yīng)用程序的升級類型后,獲取目標(biāo)應(yīng)用程序,主應(yīng)用程序加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,業(yè)務(wù)應(yīng)用程序?qū)崿F(xiàn)了自主升級,不需要額外安裝,也不需要主應(yīng)用程序更新即可使用業(yè)務(wù)應(yīng)用程序,且主應(yīng)用程序與業(yè)務(wù)應(yīng)用程序運(yùn)行在不同的進(jìn)程中,主應(yīng)用程序無法直接訪問業(yè)務(wù)應(yīng)用程序的數(shù)據(jù),提高了業(yè)務(wù)應(yīng)用程序數(shù)據(jù)的安全性。

附圖說明

圖1為一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法及升級裝置的應(yīng)用環(huán)境示意圖;

圖2為圖1中終端的內(nèi)部結(jié)構(gòu)框圖;

圖3為圖1中服務(wù)器的內(nèi)部結(jié)構(gòu)框圖;

圖4為一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法的流程圖;

圖5為另一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法的流程圖;

圖6為一個實施例中將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化的 具體流程圖;

圖7為一個實施例中業(yè)務(wù)應(yīng)用程序集成和運(yùn)行時框圖;

圖8為一個實施例中業(yè)務(wù)應(yīng)用程序的升級裝置的結(jié)構(gòu)框圖;

圖9為另一個實施例中業(yè)務(wù)應(yīng)用程序的升級裝置的結(jié)構(gòu)框圖;

圖10為一個實施例中初始化模塊的內(nèi)部結(jié)構(gòu)示意圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

可以理解,本發(fā)明所使用的術(shù)語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術(shù)語限制。這些術(shù)語僅用于將第一個元件與另一個元件區(qū)分。舉例來說,在不脫離本發(fā)明的范圍的情況下,可以將第一客戶端稱為第二客戶端,且類似地,可將第二客戶端稱為第一客戶端。第一客戶端和第二客戶端兩者都是客戶端,但其不是同一客戶端。

圖1為一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法及升級裝置的應(yīng)用環(huán)境示意圖。如圖1所示,該應(yīng)用環(huán)境包括終端110和服務(wù)器120。終端110可為一個或多個。終端110與服務(wù)器120通過網(wǎng)絡(luò)進(jìn)行通信。終端110可為智能手機(jī)、平板電腦、臺式計算機(jī)、筆記本電腦、個人數(shù)字助理等。服務(wù)器120可以用獨(dú)立的服務(wù)器或者是多個服務(wù)器組成的服務(wù)器集群來實現(xiàn)。

圖2為圖1中的終端的內(nèi)部結(jié)構(gòu)框圖。如圖2所示,該終端110包括通過系統(tǒng)總線連接的處理器、存儲介質(zhì)、內(nèi)存、網(wǎng)絡(luò)接口、顯示屏、外部存儲器和輸入裝置。其中,終端110的存儲介質(zhì)存儲有操作系統(tǒng),還包括一種業(yè)務(wù)應(yīng)用程序的升級裝置,該業(yè)務(wù)應(yīng)用程序的升級裝置用于實現(xiàn)一種業(yè)務(wù)應(yīng)用程序的升級方法。該處理器用于提供計算和控制能力,支撐整個終端的運(yùn)行。終端110中的內(nèi)存為存儲介質(zhì)中的業(yè)務(wù)應(yīng)用程序的升級裝置的運(yùn)行提供環(huán)境,網(wǎng)絡(luò)接口用于與服務(wù)器120進(jìn)行網(wǎng)絡(luò)通信,如發(fā)送下載請求至服務(wù)器,接收服務(wù)器120返回的業(yè)務(wù)的目標(biāo)應(yīng)用程序等。終端110的顯示屏可以是液晶顯示屏或者電子 墨水顯示屏等。終端110的外部存儲器可用于存儲備份的目標(biāo)應(yīng)用程序或其他數(shù)據(jù)等。終端110的輸入裝置可以是顯示屏上覆蓋的觸摸層,也可以是終端外殼上設(shè)置的按鍵、軌跡球或觸控板,也可以是外接的鍵盤、觸控板或鼠標(biāo)等。

圖3為一個實施例中服務(wù)器120的內(nèi)部結(jié)構(gòu)框圖。如圖3所示,該服務(wù)器120包括通過系統(tǒng)總線連接的處理器、存儲介質(zhì)、內(nèi)存和網(wǎng)絡(luò)接口。其中,該服務(wù)器120的存儲介質(zhì)存儲有操作系統(tǒng)、數(shù)據(jù)庫和業(yè)務(wù)應(yīng)用程序的升級裝置,數(shù)據(jù)庫中存儲有業(yè)務(wù)升級所需的目標(biāo)應(yīng)用程序,該業(yè)務(wù)應(yīng)用程序的升級裝置用于實現(xiàn)適用于服務(wù)器的一種業(yè)務(wù)應(yīng)用程序的升級方法。該服務(wù)器120的處理器用于提供計算和控制能力,支撐整個服務(wù)器的運(yùn)行。該服務(wù)器120的內(nèi)存為存儲介質(zhì)中的業(yè)務(wù)應(yīng)用程序的升級裝置的運(yùn)行提供環(huán)境。該服務(wù)器120的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通過網(wǎng)絡(luò)連接通信,比如接收終端發(fā)送的目標(biāo)應(yīng)用程序下載請求以及向終端返回目標(biāo)應(yīng)用程序等。服務(wù)器可以用獨(dú)立的服務(wù)器或者是多個服務(wù)器組成的服務(wù)器集群來實現(xiàn)。

圖4為一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法的流程圖。圖4中的業(yè)務(wù)應(yīng)用程序的升級方法運(yùn)行于圖1中的應(yīng)用環(huán)境中。如圖4所示,一種業(yè)務(wù)應(yīng)用程序的升級方法,包括以下步驟:

步驟402,將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化。

本實施例中,主應(yīng)用程序是指提供某項服務(wù)的應(yīng)用程序,例如即時通信應(yīng)用程序、游戲應(yīng)用程序、郵件應(yīng)用程序、打車應(yīng)用程序等。業(yè)務(wù)應(yīng)用程序是指提供某項業(yè)務(wù)的應(yīng)用程序,例如業(yè)務(wù)應(yīng)用程序可為支付應(yīng)用程序、游戲外掛應(yīng)用程序、郵件應(yīng)用程序等。主應(yīng)用程序所提供的服務(wù)與業(yè)務(wù)應(yīng)用程序所提供的服務(wù)功能不同。業(yè)務(wù)應(yīng)用程序是被集成多個主應(yīng)用程序使用的。

免安裝的業(yè)務(wù)應(yīng)用程序是指不需在終端上進(jìn)行安裝操作直接被調(diào)用的業(yè)務(wù)應(yīng)用程序。

為了實現(xiàn)免安裝,可將業(yè)務(wù)的核心功能打包成業(yè)務(wù)插件apk,將業(yè)務(wù)插件和業(yè)務(wù)插件的簽名文件打包成一個壓縮文件(如zip文件等),再提供一個動態(tài)加載zip文件的免安裝的調(diào)度程序(框架SDK等),通過該調(diào)度程序提供解壓zip 文件、so解碼、校驗簽名文件,動態(tài)加載apk,以及將動態(tài)加載的apk中的activity、廣播、service等運(yùn)行在框架SDK的代理activity、代理廣播、代理service中。其中,apk是指安卓系統(tǒng)上的應(yīng)用程序文件格式,全稱為Android Package。業(yè)務(wù)插件即為業(yè)務(wù)應(yīng)用程序。該業(yè)務(wù)應(yīng)用程序不限于運(yùn)行于安卓系統(tǒng),還可運(yùn)行于Unix系統(tǒng)、Linux系統(tǒng)、Windows phone系統(tǒng)等等。activity、廣播、service為安卓的幾個組件,activity表示一個可以被看到的活動頁面;廣播表示可以被多個應(yīng)用程序監(jiān)聽到的消息;service表示一個后臺服務(wù)。

因安卓系統(tǒng)可以使用C++等語言開發(fā)的動態(tài)鏈接庫,so庫被打包到安卓應(yīng)用程序中,通常情況下,安卓應(yīng)用程序安裝會將so庫放置在某些特定的目錄下,對于安卓應(yīng)用免安裝來說,需要將安卓應(yīng)用程序中的so庫解析出來放置在一個特定的目錄供系統(tǒng)加載。

步驟404,檢測業(yè)務(wù)應(yīng)用程序的升級類型。

業(yè)務(wù)應(yīng)用程序的升級類型可包括建議升級、強(qiáng)制升級等。建議升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序可不使用更新的業(yè)務(wù)應(yīng)用程序。強(qiáng)制升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序必須要使用更新的業(yè)務(wù)應(yīng)用程序。

步驟406,若該升級類型為建議升級,獲取目標(biāo)應(yīng)用程序,將該目標(biāo)應(yīng)用程序拷貝到臨時存放目錄中,以及加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

具體的,建議升級時不阻斷當(dāng)前用戶的使用,先將目標(biāo)應(yīng)用程序拷貝至臨時存放目錄中,待下一次進(jìn)入時將當(dāng)前版本的業(yè)務(wù)應(yīng)用程序替換為目標(biāo)應(yīng)用程序,對用戶來說無感知和無阻塞。

獲取目標(biāo)應(yīng)用程序可從本地或服務(wù)器上下載目標(biāo)應(yīng)用程序。臨時存放目錄中存儲的目標(biāo)應(yīng)用程序本次不需進(jìn)行升級,下次調(diào)用業(yè)務(wù)應(yīng)用程序時調(diào)用。指定文件目錄中存儲每次被調(diào)用的業(yè)務(wù)應(yīng)用程序。

步驟408,若該升級類型為強(qiáng)制升級,獲取目標(biāo)應(yīng)用程序,將該目標(biāo)應(yīng)用程序拷貝到該指定文件目錄中,并在校驗該目標(biāo)應(yīng)用程序通過后,加載該指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

具體的,強(qiáng)制升級表示當(dāng)前版本不可用,需要升級后才能使用。

獲取目標(biāo)應(yīng)用程序可從本地或服務(wù)器上下載目標(biāo)應(yīng)用程序。校驗?zāi)繕?biāo)應(yīng)用 程序是指校驗?zāi)繕?biāo)應(yīng)用程序的完整性和合法性??色@取下載的目標(biāo)應(yīng)用程序的采用非對稱私鑰加密的MD5值,然后采用公鑰解密下載的目標(biāo)應(yīng)用程序,并計算下載的目標(biāo)應(yīng)用程序的MD5值,將計算得到的MD5值與獲取的MD5值進(jìn)行比較,若一致,則說明下載的目標(biāo)應(yīng)用程序完整且合法,若不一致,則說明下載的目標(biāo)應(yīng)用程序不完整或不合法。在其他實施例中,也可采用其他校驗算法校驗下載的目標(biāo)應(yīng)用程序的完整性和合法性,如奇偶校驗法、CRC(Cyclic Redundancy Check,循環(huán)冗余校驗碼)校驗法等。

上述業(yè)務(wù)應(yīng)用程序的升級方法,檢測到業(yè)務(wù)應(yīng)用程序的升級類型后,獲取目標(biāo)應(yīng)用程序,主應(yīng)用程序加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,業(yè)務(wù)應(yīng)用程序?qū)崿F(xiàn)了自主升級,不需要額外安裝,也不需要主應(yīng)用程序更新即可使用業(yè)務(wù)應(yīng)用程序,且主應(yīng)用程序與業(yè)務(wù)應(yīng)用程序運(yùn)行在不同的進(jìn)程中,主應(yīng)用程序無法直接訪問業(yè)務(wù)應(yīng)用程序的數(shù)據(jù),提高了業(yè)務(wù)應(yīng)用程序數(shù)據(jù)的安全性。

圖5為另一個實施例中業(yè)務(wù)應(yīng)用程序的升級方法的流程圖。圖5中的業(yè)務(wù)應(yīng)用程序的升級方法運(yùn)行于圖1中的應(yīng)用環(huán)境中。如圖5所示,一種業(yè)務(wù)應(yīng)用程序的升級方法,包括以下步驟:

步驟502,將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化。

本實施例中,主應(yīng)用程序是指提供某項服務(wù)的應(yīng)用程序,例如即時通信應(yīng)用程序、游戲應(yīng)用程序、郵件應(yīng)用程序、打車應(yīng)用程序等。業(yè)務(wù)應(yīng)用程序是指提供某項業(yè)務(wù)的應(yīng)用程序,例如業(yè)務(wù)應(yīng)用程序可為支付應(yīng)用程序、游戲外掛應(yīng)用程序、郵件應(yīng)用程序等。主應(yīng)用程序所提供的服務(wù)與業(yè)務(wù)應(yīng)用程序所提供的服務(wù)功能不同。

免安裝的業(yè)務(wù)應(yīng)用程序是指不需在終端上進(jìn)行安裝操作直接被調(diào)用的業(yè)務(wù)應(yīng)用程序。

步驟504,檢測業(yè)務(wù)應(yīng)用程序的升級類型。

業(yè)務(wù)應(yīng)用程序的升級類型可包括建議升級、強(qiáng)制升級、不需要升級等。建議升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序可不使用更新的業(yè)務(wù)應(yīng)用程序。強(qiáng)制升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序必須要使用更新的業(yè)務(wù)應(yīng)用程序。

根據(jù)業(yè)務(wù)應(yīng)用程序初始化時獲取業(yè)務(wù)應(yīng)用程序的升級配置表,根據(jù)業(yè)務(wù)應(yīng)用程序的當(dāng)前版本號與業(yè)務(wù)應(yīng)用程序的升級配置表進(jìn)行比較,判斷為強(qiáng)制升級還是建議升級。例如,若業(yè)務(wù)應(yīng)用程序的當(dāng)前版本號為已停用,則需要強(qiáng)制升級,若業(yè)務(wù)應(yīng)用程序的當(dāng)前版本號還可使用,則為建議升級。當(dāng)前版本號可采用版本名稱和/或版本編號標(biāo)示。

步驟506,若升級類型為建議升級,判斷本地是否存在目標(biāo)應(yīng)用程序,若是,執(zhí)行步驟508,若否,執(zhí)行步驟510。

具體的,本地可為終端自帶的存儲器或外接的存儲器。外接的存儲器可為SD卡(Secure Digital Memory Card,數(shù)字安全卡)、Mini SD卡、移動硬盤等。

建議升級時不阻斷當(dāng)前用戶的使用,先將目標(biāo)應(yīng)用程序拷貝至臨時存放目錄中,待下一次進(jìn)入時將當(dāng)前版本的業(yè)務(wù)應(yīng)用程序替換為目標(biāo)應(yīng)用程序,對用戶來說無感知和無阻塞。

步驟508,將該目標(biāo)應(yīng)用程序拷貝到臨時存放目錄,然后執(zhí)行步驟514。

步驟510,下載目標(biāo)應(yīng)用程序,然后執(zhí)行步驟512。

具體的,終端可從服務(wù)器下載目標(biāo)應(yīng)用程序。

步驟512,將下載的目標(biāo)應(yīng)用程序拷貝到臨時存放目錄,然后執(zhí)行步驟514。

步驟514,加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

具體的,指定文件目錄中的業(yè)務(wù)應(yīng)用程序為每次主應(yīng)用程序運(yùn)行時調(diào)用的業(yè)務(wù)應(yīng)用程序。

步驟516,若升級類型為強(qiáng)制升級,判斷本地是否存在目標(biāo)應(yīng)用程序,若是,則執(zhí)行步驟518,若否,則執(zhí)行步驟524。

強(qiáng)制升級表示當(dāng)前版本不可用,需要升級后才能使用。

步驟518,將該目標(biāo)應(yīng)用程序拷貝到該指定文件目錄,然后執(zhí)行步驟520。

步驟520,校驗?zāi)繕?biāo)應(yīng)用程序,然后執(zhí)行步驟522。

校驗?zāi)繕?biāo)應(yīng)用程序是指校驗?zāi)繕?biāo)應(yīng)用程序的完整性和合法性??色@取下載的目標(biāo)應(yīng)用程序的采用非對稱私鑰加密的MD5值,然后采用公鑰解密下載的目標(biāo)應(yīng)用程序,并計算下載的目標(biāo)應(yīng)用程序的MD5值,將計算得到的MD5值與獲取的MD5值進(jìn)行比較,若一致,則說明下載的目標(biāo)應(yīng)用程序完整且合法,若 不一致,則說明下載的目標(biāo)應(yīng)用程序不完整或不合法。在其他實施例中,也可采用其他校驗算法校驗下載的目標(biāo)應(yīng)用程序的完整性和合法性,如奇偶校驗法、CRC校驗法等。

步驟522,加載該指定文件目錄中的業(yè)務(wù)應(yīng)用程序,然后執(zhí)行步驟528。

步驟524,下載目標(biāo)應(yīng)用程序。

步驟526,將下載的目標(biāo)應(yīng)用程序拷貝到指定文件目錄,然后執(zhí)行步驟520。

步驟528,備份目標(biāo)應(yīng)用程序至本地。

此外,若升級類型為不需要升級,則加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

其中,步驟506至步驟514為步驟406的具體步驟。步驟516至步驟526為步驟408的具體步驟。

上述業(yè)務(wù)應(yīng)用程序的升級方法,檢測到業(yè)務(wù)應(yīng)用程序的升級類型后,獲取目標(biāo)應(yīng)用程序,主應(yīng)用程序加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,業(yè)務(wù)應(yīng)用程序?qū)崿F(xiàn)了自主升級,不需要額外安裝,也不需要主應(yīng)用程序更新即可使用業(yè)務(wù)應(yīng)用程序,且主應(yīng)用程序與業(yè)務(wù)應(yīng)用程序運(yùn)行在不同的進(jìn)程中,主應(yīng)用程序無法直接訪問業(yè)務(wù)應(yīng)用程序的數(shù)據(jù),提高了業(yè)務(wù)應(yīng)用程序數(shù)據(jù)的安全性;通過判斷本地是否有目標(biāo)應(yīng)用程序,若有直接使用本地的目標(biāo)應(yīng)用程序,節(jié)省網(wǎng)絡(luò)資源;通過備份目標(biāo)應(yīng)用程序到本地,當(dāng)有多個主應(yīng)用程序都集成該業(yè)務(wù)應(yīng)用程序,需要升級業(yè)務(wù)應(yīng)用程序時,只需下載一次目標(biāo)應(yīng)用程序,其他主應(yīng)用程序可直接從本地調(diào)用,節(jié)省網(wǎng)絡(luò)資源,節(jié)省用戶流量。

在其他實施例中,上述業(yè)務(wù)應(yīng)用程序的升級方法,在該將下載的目標(biāo)應(yīng)用程序拷貝到臨時存放目錄或?qū)⑾螺d的目標(biāo)應(yīng)用程序拷貝到指定文件目錄的步驟之后,還包括:備份該目標(biāo)應(yīng)用程序至本地。

在其他實施例中,上述業(yè)務(wù)應(yīng)用程序的升級方法,可不備份該目標(biāo)應(yīng)用程序。

圖6為一個實施例中將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化的具體流程圖。如圖6所示,將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化的步驟包括:

步驟602,判斷是否需從預(yù)定目錄中解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件,若是,則執(zhí)行步驟604,若否,執(zhí)行步驟606。

具體的,預(yù)定目錄可為assets目錄等。業(yè)務(wù)應(yīng)用程序的簽名文件可為通過非對稱加密得到的簽名文件。非對稱加密可為MD5加密、RSA加密、背包算法等。

步驟604,解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件至指定文件目錄。

本實施例中,指定文件目錄可為操作系統(tǒng)下的主應(yīng)用程序的data(數(shù)據(jù))區(qū)目錄。解壓的業(yè)務(wù)應(yīng)用程序存儲在plugins目錄中,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載plugins目錄中的業(yè)務(wù)應(yīng)用程序文件。業(yè)務(wù)應(yīng)用程序的so文件存儲在pluginlibs目錄,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載pluginlibs目錄中的so文件。

解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件至指定文件目錄后,校驗解壓的業(yè)務(wù)應(yīng)用程序。

步驟606,判斷是否需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序,若是,執(zhí)行步驟608,若否,執(zhí)行步驟614。

具體的,臨時存放目錄可為pluginUpdate目錄。判斷是否需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序的步驟包括:判斷臨時存放目錄中目標(biāo)應(yīng)用程序的版本號是否高于指定文件目錄中的業(yè)務(wù)應(yīng)用程序的版本號,若是,則將臨時存放目錄中目標(biāo)應(yīng)用程序拷貝到指定文件目錄中,若否,則不拷貝。

或者,在一個實施例中,判斷是否需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序的步驟包括:判斷臨時存放目錄中目標(biāo)應(yīng)用程序的時間戳是否晚于指定文件目錄中的業(yè)務(wù)應(yīng)用程序的時間戳,若是,則將臨時存放目錄中目標(biāo)應(yīng)用程序拷貝到指定文件目錄中,若否,則不拷貝。

步驟608,將臨時存放目錄中的目標(biāo)應(yīng)用程序拷貝到指定文件目錄。

在一個實施例中,在將臨時存放目錄中的目標(biāo)應(yīng)用程序拷貝到指定文件目錄的步驟之后,該方法還包括:刪除該臨時存放目錄中的目標(biāo)應(yīng)用程序。

具體的,刪除臨時存放目錄(如pluginUpdate目錄)中存放的建議升級下載的文件,減小了對用戶存儲空間的占用。

步驟610,校驗該目標(biāo)應(yīng)用程序,若校驗失敗,則執(zhí)行步驟612,若校驗通過,則執(zhí)行步驟614。

具體的,校驗?zāi)繕?biāo)應(yīng)用程序的完整性和合法性??色@取下載的目標(biāo)應(yīng)用程序的采用非對稱私鑰加密的MD5值,然后采用公鑰解密下載的目標(biāo)應(yīng)用程序,并計算下載的目標(biāo)應(yīng)用程序的MD5值,將計算得到的MD5值與獲取的MD5值進(jìn)行比較,若一致,則說明下載的目標(biāo)應(yīng)用程序完整且合法,若不一致,則說明下載的目標(biāo)應(yīng)用程序不完整或不合法。在其他實施例中,也可采用其他校驗算法校驗下載的目標(biāo)應(yīng)用程序的完整性和合法性,如奇偶校驗法、CRC校驗法等。

步驟612,將指定文件目錄中目標(biāo)應(yīng)用程序恢復(fù)為預(yù)定目錄中的業(yè)務(wù)應(yīng)用程序,然后執(zhí)行步驟614。

具體的,指定文件目錄為data區(qū)目錄。預(yù)定目錄為assets目錄。將data區(qū)目錄中的業(yè)務(wù)應(yīng)用程序apk回退為assets目錄中的業(yè)務(wù)應(yīng)用程序apk,保證業(yè)務(wù)的可用性。

步驟614,校驗業(yè)務(wù)應(yīng)用程序的簽名文件。

具體額,在業(yè)務(wù)應(yīng)用程序的so文件中校驗簽名文件,因so文件中預(yù)置了業(yè)務(wù)應(yīng)用程序的簽名文件,so讀取解壓的業(yè)務(wù)應(yīng)用程序的簽名文件,將解壓的業(yè)務(wù)應(yīng)用程序的簽名文件與預(yù)置的業(yè)務(wù)應(yīng)用程序的簽名文件進(jìn)行比較,若相同,則校驗成功,若不同,則校驗失敗。通過校驗業(yè)務(wù)應(yīng)用程序的簽名文件,防止調(diào)度程序(框架SDK)被二次惡意打包,因為惡意的二次打包是沒有合法的簽名文件的。

步驟616,判斷業(yè)務(wù)應(yīng)用程序的簽名文件校驗是否成功,若是,執(zhí)行步驟618,若否,執(zhí)行步驟612。

步驟618,該業(yè)務(wù)應(yīng)用程序初始化完成。

在業(yè)務(wù)應(yīng)用程序初始化完成后,后臺還可下發(fā)業(yè)務(wù)應(yīng)用程序的簽名文件進(jìn)行二次校驗,保證調(diào)度程序和業(yè)務(wù)應(yīng)用程序的合法性和安全性。

上述對業(yè)務(wù)應(yīng)用程序初始化,校驗業(yè)務(wù)應(yīng)用程序,防止業(yè)務(wù)應(yīng)用程序被篡改,如果校驗失敗,則回退到預(yù)定目錄中的業(yè)務(wù)應(yīng)用程序,保證業(yè)務(wù)的可用性,校驗業(yè)務(wù)應(yīng)用程序的簽名文件,防止調(diào)度程序被二次惡意打包。

在一個實施例中,上述業(yè)務(wù)應(yīng)用程序的升級方法,還包括:將業(yè)務(wù)應(yīng)用程 序和業(yè)務(wù)應(yīng)用程序的簽名文件打包成壓縮文件,將該壓縮文件及免安裝的調(diào)度程序集成在主應(yīng)用程序中,且該壓縮文件存放在預(yù)定目錄中。

當(dāng)主應(yīng)用程序首次調(diào)用業(yè)務(wù)應(yīng)用程序時,通過該調(diào)度程序從預(yù)定目錄將該壓縮文件中的業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件解壓至指定文件目錄。

具體的,主應(yīng)用程序首次調(diào)用業(yè)務(wù)應(yīng)用程序時,調(diào)度程序(框架SDK)動態(tài)的從assets目錄中將zip文件解壓到應(yīng)用的data/data/應(yīng)用包名目錄下,并通過系統(tǒng)的dexclassloader加載data區(qū)的業(yè)務(wù)應(yīng)用程序(插件apk),如此可以跳過業(yè)務(wù)應(yīng)用程序apk的安裝。

圖7為一個實施例中業(yè)務(wù)應(yīng)用程序集成和運(yùn)行時框圖。如圖7所示,主應(yīng)用程序在開放階段:assets目錄中存放業(yè)務(wù)的zip文件,該zip文件包含業(yè)務(wù)應(yīng)用程序apk和業(yè)務(wù)應(yīng)用程序apk的簽名文件;libs目錄存放業(yè)務(wù)應(yīng)用程序的調(diào)度程序加載plugin.jar文件;AndroidManifest.xml中注冊了業(yè)務(wù)應(yīng)用程序代理activity(pluginProxyActivity),代理廣播(pluginProxyBroadcast),代理service(pluginProxyService)。主應(yīng)用程序在運(yùn)行階段:Android操作系統(tǒng)的data/data/package目錄下創(chuàng)建3個子目錄,plugins目錄存放zip文件解壓后的apk文件,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載plugins目錄中的apk文件;pluginlibs目錄存放zip文件中apk的so文件目錄,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載pluginlibs目錄中的so文件;pluginUpdate目錄存放業(yè)務(wù)過程中建議升級時下載的目標(biāo)應(yīng)用程序或拷貝本地的目標(biāo)應(yīng)用程序,pluginUpdate目錄的目標(biāo)應(yīng)用程序完整性和合法性校驗通過,并且版本號高于當(dāng)前plugins目錄中的業(yè)務(wù)版本號,則調(diào)度程序(框架SDK)會將pluginUpdate目錄的目標(biāo)應(yīng)用程序替換至plugins目錄中。

為了進(jìn)一步說明業(yè)務(wù)應(yīng)用程序的升級方法,以該業(yè)務(wù)應(yīng)用程序為支付應(yīng)用程序為例進(jìn)行描述。支付應(yīng)用程序初始化之前:將支付的核心功能打包成插件apk,將插件apk和插件apk的MD5簽名文件打包成一個zip文件,再提供一個動態(tài)加載zip文件的框架SDK,該框架SDK提供解壓zip文件、so解碼、校驗MD5值,動態(tài)加載apk,以及動態(tài)記載apk中的activity、廣播、service等運(yùn)行在框架SDK的代理activity、代理廣播、代理service中;主應(yīng)用程序集成支付應(yīng)用程序時只需集成框架SDK和zip文件,將zip文件放置在assets目錄;主應(yīng) 用程序首次調(diào)用支付時,框架SDK動態(tài)的從assets目錄將zip文件解壓至主應(yīng)用的data/data/應(yīng)用包名目錄下,并通過系統(tǒng)的dexclassloader加載data區(qū)的插件apk,以跳過支付插件apk的安裝。

支付應(yīng)用程序初始化過程包括:

(a1)判斷是否需從assets目錄(預(yù)定目錄)解壓支付插件及支付插件的簽名文件,若是,則執(zhí)行(a2),若否執(zhí)行(a3);

(a2)解壓支付插件apk(支付應(yīng)用程序)到data區(qū)plugins目錄(指定文件目錄),解壓so文件至data區(qū)pluginslibs目錄中,并校驗支付插件apk的MD5值,將該支付插件apk備份至外部存儲器,然后執(zhí)行(a3);

(a3)判斷是否需從pluginUpdate目錄(即臨時存放目錄)拷貝目標(biāo)應(yīng)用程序,若是,則執(zhí)行(a4),若否,執(zhí)行(a7);

目標(biāo)應(yīng)用程序是指支付的升級文件。

(a4)拷貝pluginUpdate目錄插件apk,并刪除pluginUpdate目錄中目標(biāo)應(yīng)用程序;

(a5)校驗?zāi)繕?biāo)應(yīng)用程序,校驗?zāi)繕?biāo)應(yīng)用程序是否通過,若否,執(zhí)行(a6),若是,執(zhí)行(a7);

(a6)將data區(qū)文件恢復(fù)為assets目錄中的支付插件apk,然后執(zhí)行(a7);

(a7)校驗so文件中的插件apk的簽名文件,校驗是否成功,若是,則支付插件初始化完成,若否,執(zhí)行(a6)。

其中,支付插件即為支付應(yīng)用程序。

支付應(yīng)用程序的升級過程包括:

(b1)支付開始;

(b2)判斷支付插件的升級類型;

(b3)升級類型為建議升級,判斷本地是否存在支付目標(biāo)應(yīng)用程序,若是,則執(zhí)行(b4),若否執(zhí)行(b5);

(b4)拷貝目標(biāo)應(yīng)用程序至data區(qū)的pluginUpdate目錄中,然后執(zhí)行(b8);

(b5)啟動線程下載支付目標(biāo)應(yīng)用程序;

(b6)將下載的支付目標(biāo)應(yīng)用程序拷貝至data區(qū)的pluginUpdate目錄中, 然后執(zhí)行(b7);

(b7)將下載的支付目標(biāo)應(yīng)用程序備份至本地(內(nèi)部存儲器或外部存儲器),執(zhí)行(b8);

(b8)加載plugins目錄中的支付應(yīng)用程序,進(jìn)入支付流程,然后支付結(jié)束;

(b9)升級類型為強(qiáng)制升級,判斷本地是否存在支付目標(biāo)應(yīng)用程序,若是,執(zhí)行(b10),若否,執(zhí)行(b11);

(b10)拷貝支付目標(biāo)應(yīng)用程序至data區(qū)的plugins目錄中,然后執(zhí)行(b13);

(b11)下載支付目標(biāo)應(yīng)用程序,然后執(zhí)行(b12);

(b12)將下載的支付目標(biāo)應(yīng)用程序拷貝至data區(qū)的plugins目錄,然后執(zhí)行(b13);

(b13)校驗支付目標(biāo)應(yīng)用程序,校驗通過后,執(zhí)行(b14);

(b14)加載plugins目錄中的支付應(yīng)用程序,然后執(zhí)行(b7);

(b15)升級類型為不需升級,則執(zhí)行(b8)。

上述業(yè)務(wù)應(yīng)用程序的升級方法不限于應(yīng)用于支付業(yè)務(wù),也可應(yīng)用于郵件業(yè)務(wù)應(yīng)用程序升級、即時通信應(yīng)用程序升級等等,其過程與支付業(yè)務(wù)應(yīng)用程序升級相同,在此不再贅述。

圖8為一個實施例中業(yè)務(wù)應(yīng)用程序的升級裝置的結(jié)構(gòu)框圖。圖8中業(yè)務(wù)應(yīng)用程序的升級裝置運(yùn)行于圖1的應(yīng)用環(huán)境中,以終端角度進(jìn)行描述。如圖8所示,該業(yè)務(wù)應(yīng)用程序的升級裝置,包括初始化模塊810、類型檢測模塊820、獲取模塊830、拷貝模塊840和加載模塊850。其中:

初始化模塊810用于將主應(yīng)用程序集成的免安裝的業(yè)務(wù)應(yīng)用程序初始化。

本實施例中,主應(yīng)用程序是指提供某項服務(wù)的應(yīng)用程序,例如即時通信應(yīng)用程序、游戲應(yīng)用程序、郵件應(yīng)用程序、打車應(yīng)用程序等。業(yè)務(wù)應(yīng)用程序是指提供某項業(yè)務(wù)的應(yīng)用程序,例如業(yè)務(wù)應(yīng)用程序可為支付應(yīng)用程序、游戲外掛應(yīng)用程序、郵件應(yīng)用程序等。主應(yīng)用程序所提供的服務(wù)與業(yè)務(wù)應(yīng)用程序所提供的服務(wù)功能不同。

免安裝的業(yè)務(wù)應(yīng)用程序是指不需在終端上進(jìn)行安裝操作直接被調(diào)用的業(yè)務(wù) 應(yīng)用程序。

類型檢測模塊820用于檢測業(yè)務(wù)應(yīng)用程序的升級類型。業(yè)務(wù)應(yīng)用程序的升級類型可包括建議升級、強(qiáng)制升級等。建議升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序可不使用更新的業(yè)務(wù)應(yīng)用程序。強(qiáng)制升級是指本次調(diào)用業(yè)務(wù)應(yīng)用程序必須要使用更新的業(yè)務(wù)應(yīng)用程序。

獲取模塊830用于若該升級類型為建議升級,獲取目標(biāo)應(yīng)用程序,以及若該升級類型為強(qiáng)制升級,獲取目標(biāo)應(yīng)用程序。

具體的,建議升級時不阻斷當(dāng)前用戶的使用,先將目標(biāo)應(yīng)用程序拷貝至臨時存放目錄中,待下一次進(jìn)入時將當(dāng)前版本的業(yè)務(wù)應(yīng)用程序替換為目標(biāo)應(yīng)用程序,對用戶來說無感知和無阻塞。獲取目標(biāo)應(yīng)用程序可從本地或服務(wù)器上下載目標(biāo)應(yīng)用程序。

拷貝模塊840用于若該升級類型為建議升級,則將該目標(biāo)應(yīng)用程序拷貝到臨時存放目錄中,以及若該升級類型為強(qiáng)制升級,將該目標(biāo)應(yīng)用程序拷貝到該指定文件目錄中。

具體的,臨時存放目錄中存儲的目標(biāo)應(yīng)用程序本次不需進(jìn)行升級,下次調(diào)用業(yè)務(wù)應(yīng)用程序時調(diào)用。指定文件目錄中存儲每次被調(diào)用的業(yè)務(wù)應(yīng)用程序。

加載模塊850用于若該升級類型為建議升級,加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,以及若該升級類型為強(qiáng)制升級,則在校驗該目標(biāo)應(yīng)用程序通過后,加載該指定文件目錄中的業(yè)務(wù)應(yīng)用程序。

校驗?zāi)繕?biāo)應(yīng)用程序是指校驗?zāi)繕?biāo)應(yīng)用程序的完整性和合法性。可獲取下載的目標(biāo)應(yīng)用程序的采用非對稱私鑰加密的MD5值,然后采用公鑰解密下載的目標(biāo)應(yīng)用程序,并計算下載的目標(biāo)應(yīng)用程序的MD5值,將計算得到的MD5值與獲取的MD5值進(jìn)行比較,若一致,則說明下載的目標(biāo)應(yīng)用程序完整且合法,若不一致,則說明下載的目標(biāo)應(yīng)用程序不完整或不合法。在其他實施例中,也可采用其他校驗算法校驗下載的目標(biāo)應(yīng)用程序的完整性和合法性,如奇偶校驗法、CRC校驗法等。

上述業(yè)務(wù)應(yīng)用程序的升級裝置,檢測到業(yè)務(wù)應(yīng)用程序的升級類型后,獲取目標(biāo)應(yīng)用程序,主應(yīng)用程序加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,業(yè)務(wù)應(yīng)用程 序?qū)崿F(xiàn)了自主升級,不需要額外安裝,也不需要主應(yīng)用程序更新即可使用業(yè)務(wù)應(yīng)用程序,且主應(yīng)用程序與業(yè)務(wù)應(yīng)用程序運(yùn)行在不同的進(jìn)程中,主應(yīng)用程序無法直接訪問業(yè)務(wù)應(yīng)用程序的數(shù)據(jù),提高了業(yè)務(wù)應(yīng)用程序數(shù)據(jù)的安全性。

圖9為另一個實施例中業(yè)務(wù)應(yīng)用程序的升級裝置的結(jié)構(gòu)框圖。圖8中業(yè)務(wù)應(yīng)用程序的升級裝置運(yùn)行于圖1的應(yīng)用環(huán)境中,以終端角度進(jìn)行描述。如圖9所示,該業(yè)務(wù)應(yīng)用程序的升級裝置,除了包括初始化模塊810、類型檢測模塊820、獲取模塊830、拷貝模塊840和加載模塊850,還包括第一判斷模塊860、第一下載模塊870、第二判斷模塊880、第二下載模塊882、壓縮模塊884、集成模塊886、調(diào)用模塊888、備份模塊890。其中:

第一判斷模塊860用于若該升級類型為建議升級,判斷本地是否存在目標(biāo)應(yīng)用程序。

第一下載模塊870用于若升級類型為建議升級,判斷出本地不存在目標(biāo)應(yīng)用程序時,下載目標(biāo)應(yīng)用程序。

該拷貝模塊840還用于若升級類型為建議升級,判斷出本地存在目標(biāo)應(yīng)用程序時,將該目標(biāo)應(yīng)用程序拷貝到臨時存放目錄,以及判斷出本地不存在目標(biāo)應(yīng)用程序時,將下載的目標(biāo)應(yīng)用程序拷貝到臨時存放目錄。

第二判斷模塊880用于若該升級類型為強(qiáng)制升級,判斷本地是否存在目標(biāo)應(yīng)用程序。

第二下載模塊890用于若該升級類型為強(qiáng)制升級,判斷出本地不存在目標(biāo)應(yīng)用程序時,下載目標(biāo)應(yīng)用程序。

該拷貝模塊840還用于若該升級類型為強(qiáng)制升級,判斷出本地存在目標(biāo)應(yīng)用程序時,將該目標(biāo)應(yīng)用程序拷貝到該指定文件目錄,以及判斷出本地不存在目標(biāo)應(yīng)用程序時,將下載的目標(biāo)應(yīng)用程序拷貝到指定文件目錄。

壓縮模塊884用于將業(yè)務(wù)應(yīng)用程序和業(yè)務(wù)應(yīng)用程序的簽名文件打包成壓縮文件。

集成模塊886用于將該壓縮文件及免安裝的調(diào)度程序集成在主應(yīng)用程序中,且該壓縮文件存放在預(yù)定目錄中。

調(diào)用模塊888用于當(dāng)主應(yīng)用程序首次調(diào)用業(yè)務(wù)應(yīng)用程序時,通過該調(diào)度程 序從預(yù)定目錄將該壓縮文件中的業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件解壓至指定文件目錄。

備份模塊890用于在該將下載的目標(biāo)應(yīng)用程序拷貝到臨時存放目錄或?qū)⑾螺d的目標(biāo)應(yīng)用程序拷貝到指定文件目錄之后,備份該目標(biāo)應(yīng)用程序至本地。

上述業(yè)務(wù)應(yīng)用程序的升級裝置,檢測到業(yè)務(wù)應(yīng)用程序的升級類型后,獲取目標(biāo)應(yīng)用程序,主應(yīng)用程序加載指定文件目錄中的業(yè)務(wù)應(yīng)用程序,業(yè)務(wù)應(yīng)用程序?qū)崿F(xiàn)了自主升級,不需要額外安裝,也不需要主應(yīng)用程序更新即可使用業(yè)務(wù)應(yīng)用程序,且主應(yīng)用程序與業(yè)務(wù)應(yīng)用程序運(yùn)行在不同的進(jìn)程中,主應(yīng)用程序無法直接訪問業(yè)務(wù)應(yīng)用程序的數(shù)據(jù),提高了業(yè)務(wù)應(yīng)用程序數(shù)據(jù)的安全性;通過判斷本地是否有目標(biāo)應(yīng)用程序,若有直接使用本地的目標(biāo)應(yīng)用程序,節(jié)省網(wǎng)絡(luò)資源;通過備份目標(biāo)應(yīng)用程序到本地,當(dāng)有多個主應(yīng)用程序都集成該業(yè)務(wù)應(yīng)用程序,需要升級業(yè)務(wù)應(yīng)用程序時,只需下載一次目標(biāo)應(yīng)用程序,其他主應(yīng)用程序可直接從本地調(diào)用,節(jié)省網(wǎng)絡(luò)資源,節(jié)省用戶流量。

圖10為一個實施例中初始化模塊的內(nèi)部結(jié)構(gòu)示意圖。如圖10所示,該初始化模塊810包括判斷單元811、解壓單元812、拷貝單元813、刪除單元814、校驗單元815、恢復(fù)單元816。其中:

判斷單元811用于判斷是否需從預(yù)定目錄中解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件。

解壓單元812用于在判斷出需從預(yù)定目錄中解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件時,解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件至指定文件目錄。

本實施例中,指定文件目錄可為操作系統(tǒng)下的主應(yīng)用程序的data(數(shù)據(jù))區(qū)目錄。解壓的業(yè)務(wù)應(yīng)用程序存儲在plugins目錄中,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載plugins目錄中的業(yè)務(wù)應(yīng)用程序文件。業(yè)務(wù)應(yīng)用程序的so文件存儲在pluginlibs目錄,主應(yīng)用程序調(diào)用業(yè)務(wù)時動態(tài)加載pluginlibs目錄中的so文件。

解壓業(yè)務(wù)應(yīng)用程序及業(yè)務(wù)應(yīng)用程序的簽名文件至指定文件目錄后,校驗解壓的業(yè)務(wù)應(yīng)用程序。

該判斷單元811還用于判斷是否需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序。

具體的,臨時存放目錄可為pluginUpdate目錄。判斷單元811還用于判斷臨時存放目錄中目標(biāo)應(yīng)用程序的版本號是否高于指定文件目錄中的業(yè)務(wù)應(yīng)用程序的版本號,若是,則將臨時存放目錄中目標(biāo)應(yīng)用程序拷貝到指定文件目錄中,若否,則不拷貝。

或者,在一個實施例中,判斷單元811還用于判斷臨時存放目錄中目標(biāo)應(yīng)用程序的時間戳是否晚于指定文件目錄中的業(yè)務(wù)應(yīng)用程序的時間戳,若是,則將臨時存放目錄中目標(biāo)應(yīng)用程序拷貝到指定文件目錄中,若否,則不拷貝。

拷貝單元813用于在判斷出需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序時,將臨時存放目錄中的目標(biāo)應(yīng)用程序拷貝到指定文件目錄。

刪除單元814用于在將臨時存放目錄中的目標(biāo)應(yīng)用程序拷貝到指定文件目錄之后,刪除該臨時存放目錄中的目標(biāo)應(yīng)用程序。

校驗單元815用于在將臨時存放目錄中的目標(biāo)應(yīng)用程序拷貝到指定文件目錄后,校驗該目標(biāo)應(yīng)用程序,以及在判斷出不需從臨時存放目錄中拷貝目標(biāo)應(yīng)用程序時,校驗業(yè)務(wù)應(yīng)用程序的簽名文件;以及若該目標(biāo)應(yīng)用程序校驗通過,則校驗業(yè)務(wù)應(yīng)用程序的簽名文件,若該業(yè)務(wù)應(yīng)用程序的簽名文件校驗成功,則該業(yè)務(wù)應(yīng)用程序初始化完成。

具體的,校驗?zāi)繕?biāo)應(yīng)用程序的完整性和合法性??色@取下載的目標(biāo)應(yīng)用程序的采用非對稱私鑰加密的MD5值,然后采用公鑰解密下載的目標(biāo)應(yīng)用程序,并計算下載的目標(biāo)應(yīng)用程序的MD5值,將計算得到的MD5值與獲取的MD5值進(jìn)行比較,若一致,則說明下載的目標(biāo)應(yīng)用程序完整且合法,若不一致,則說明下載的目標(biāo)應(yīng)用程序不完整或不合法。在其他實施例中,也可采用其他校驗算法校驗下載的目標(biāo)應(yīng)用程序的完整性和合法性,如奇偶校驗法、CRC校驗法等。

恢復(fù)單元816用于若該業(yè)務(wù)應(yīng)用程序的簽名文件校驗失敗,則將指定文件目錄中目標(biāo)應(yīng)用程序恢復(fù)為預(yù)定目錄中的業(yè)務(wù)應(yīng)用程序,以及若該目標(biāo)應(yīng)用程序校驗失敗,則將指定文件目錄中目標(biāo)應(yīng)用程序恢復(fù)為預(yù)定目錄中的業(yè)務(wù)應(yīng)用程序。

本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一非易失性計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等。

以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1