本發(fā)明涉及數(shù)據(jù)更新技術(shù)領(lǐng)域,尤其是一種手機(jī)客戶端軟件的資源加密更新方法。
背景技術(shù):
隨著手機(jī)硬件技術(shù)的發(fā)展,智能手機(jī)中運(yùn)行的軟件越來(lái)越復(fù)雜。智能手機(jī)中的軟件需要進(jìn)行不斷的更新。中國(guó)發(fā)明專(zhuān)利CN 102054045 B公開(kāi)了一種電子裝置的資源更新系統(tǒng)及方法,可以高效更新電子裝置中的資源文件,減少服務(wù)器的負(fù)載。但是,這種軟件更新方法在運(yùn)行時(shí),軟件無(wú)法正常運(yùn)行,必須等待更新完成后才能重新開(kāi)始運(yùn)行,使用起來(lái)不方便。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種手機(jī)客戶端軟件的資源加密更新方法,能夠解決現(xiàn)有技術(shù)的不足,降低了軟件更新對(duì)于軟件正常使用的影響。
為解決上述技術(shù)問(wèn)題,本發(fā)明所采取的技術(shù)方案如下。
一種手機(jī)客戶端軟件的資源加密更新方法,包括以下步驟:
A、服務(wù)器端將需要更新數(shù)據(jù)壓縮至一個(gè)壓縮文件中,同時(shí)編制出壓縮文件內(nèi)容的索引文件和MD5碼;
B、手機(jī)客戶端運(yùn)行軟件,與服務(wù)器端進(jìn)行通訊連接,獲取壓縮文件的MD5碼,與手機(jī)客戶端內(nèi)相應(yīng)的資源文件的MD5碼進(jìn)行比對(duì),若MD5碼相同,則結(jié)束更新步驟,若MD5碼不相同,則進(jìn)行下述步驟;
C、手機(jī)客戶端獲取索引文件,確定需要更新的文件列表;
D、手機(jī)客戶端在運(yùn)行軟件的同時(shí),根據(jù)文件列表從服務(wù)器端進(jìn)行文件的下載,手機(jī)客戶端將下載的文件分為兩類(lèi),將需要對(duì)手機(jī)客戶端軟件內(nèi)相應(yīng)原文件進(jìn)行替換的下載文件標(biāo)記為一類(lèi)文件,將需要添加至手機(jī)客戶端軟件中的下載文件標(biāo)記為二類(lèi)文件;
E、將二類(lèi)文件直接添加至手機(jī)客戶端軟件的相應(yīng)位置;在手機(jī)客戶端內(nèi)設(shè)置一個(gè)緩沖區(qū)用于一類(lèi)文件的替換,對(duì)于未被軟件調(diào)用的與一類(lèi)文件對(duì)應(yīng)的原文件,將其存入緩沖區(qū),然后使用與其對(duì)應(yīng)的一類(lèi)文件將其替換,對(duì)于正在被軟件調(diào)用的與一類(lèi)文件對(duì)應(yīng)的原文件,建立若干個(gè)一類(lèi)文件與原文件之間的映射關(guān)系,不同的映射關(guān)系之間為串聯(lián)關(guān)系,相鄰的兩個(gè)映射關(guān)系之間設(shè)置有中間文件,從與原文件最接近的中間文件開(kāi)始,依次使用中間文件依次對(duì)原文件位置上的文件進(jìn)行替換,將替換下來(lái)的文件存入緩沖區(qū);
F、當(dāng)文件替換過(guò)程中出現(xiàn)錯(cuò)誤,使用緩沖區(qū)的文件進(jìn)行文件的還原;
G、對(duì)更新后的文件重新計(jì)算MD5碼,若更新后的MD5碼與服務(wù)器端發(fā)送的MD5碼相同,結(jié)束更新過(guò)程,若不同,則從步驟C開(kāi)始重新循環(huán) 執(zhí)行。
作為優(yōu)選,步驟A中,索引文件包括若干個(gè)文件特征關(guān)鍵字和文件地址指針,不同文件特征關(guān)鍵字所代表的文件塊之間設(shè)置有文件地址指針。
作為優(yōu)選,文件特征關(guān)鍵字包括文件塊范圍標(biāo)記和校驗(yàn)?zāi)K,手機(jī)客戶端下載文件時(shí),通過(guò)文件塊范圍標(biāo)記直接確定下載區(qū)間,下載結(jié)束后通過(guò)校驗(yàn)?zāi)K對(duì)文件完整性進(jìn)行檢驗(yàn)。
作為優(yōu)選,所述文件地址指針為雙向映射關(guān)系,選取文件特征關(guān)鍵字之間最短路徑作為文件地址指針的映射主方向,不同下載區(qū)間之間跳轉(zhuǎn)首選映射主方向。
作為優(yōu)選,步驟D中,手機(jī)客戶端優(yōu)先下載軟件正在調(diào)用部分的更新文件。
作為優(yōu)選,所述緩沖區(qū)為堆棧結(jié)構(gòu),在使用緩沖區(qū)的文件進(jìn)行還原時(shí),同時(shí)使用堆棧結(jié)構(gòu)頂部的至少兩個(gè)文件進(jìn)行還原操作。
采用上述技術(shù)方案所帶來(lái)的有益效果在于:本發(fā)明提高了更新資源的保密性,便于動(dòng)態(tài)進(jìn)行資源的更新,更新效率高,對(duì)于CPU的占用率較小。本發(fā)明通過(guò)改進(jìn)資源文件的更新步驟,實(shí)現(xiàn)了軟件運(yùn)行和軟件更新的同步進(jìn)行,并且更新過(guò)程效率高,不會(huì)給CPU的多線程運(yùn)算帶來(lái)較大的壓力。
具體實(shí)施方式
一種手機(jī)客戶端軟件的資源加密更新方法,其特征在于包括以下步驟:
A、服務(wù)器端將需要更新數(shù)據(jù)壓縮至一個(gè)壓縮文件中,同時(shí)編制出壓縮文件內(nèi)容的索引文件和MD5碼;索引文件包括若干個(gè)文件特征關(guān)鍵字和文件地址指針,不同文件特征關(guān)鍵字所代表的文件塊之間設(shè)置有文件地址指針,文件特征關(guān)鍵字包括文件塊范圍標(biāo)記和校驗(yàn)?zāi)K,手機(jī)客戶端下載文件時(shí),通過(guò)文件塊范圍標(biāo)記直接確定下載區(qū)間,下載結(jié)束后通過(guò)校驗(yàn)?zāi)K對(duì)文件完整性進(jìn)行檢驗(yàn),所述文件地址指針為雙向映射關(guān)系,選取文件特征關(guān)鍵字之間最短路徑作為文件地址指針的映射主方向,不同下載區(qū)間之間跳轉(zhuǎn)首選映射主方向;
B、手機(jī)客戶端運(yùn)行軟件,與服務(wù)器端進(jìn)行通訊連接,獲取壓縮文件的MD5碼,與手機(jī)客戶端內(nèi)相應(yīng)的資源文件的MD5碼進(jìn)行比對(duì),若MD5碼相同,則結(jié)束更新步驟,若MD5碼不相同,則進(jìn)行下述步驟;
C、手機(jī)客戶端獲取索引文件,確定需要更新的文件列表;
D、手機(jī)客戶端在運(yùn)行軟件的同時(shí),根據(jù)文件列表從服務(wù)器端進(jìn)行文件的下載,手機(jī)客戶端將下載的文件分為兩類(lèi),將需要對(duì)手機(jī)客戶端軟件內(nèi)相應(yīng)原文件進(jìn)行替換的下載文件標(biāo)記為一類(lèi)文件,將需要添加至手機(jī)客戶端軟件中的下載文件標(biāo)記為二類(lèi)文件;手機(jī)客戶端優(yōu)先下載軟件 正在調(diào)用部分的更新文件;
E、將二類(lèi)文件直接添加至手機(jī)客戶端軟件的相應(yīng)位置;在手機(jī)客戶端內(nèi)設(shè)置一個(gè)緩沖區(qū)用于一類(lèi)文件的替換,所述緩沖區(qū)為堆棧結(jié)構(gòu),對(duì)于未被軟件調(diào)用的與一類(lèi)文件對(duì)應(yīng)的原文件,將其存入緩沖區(qū),然后使用與其對(duì)應(yīng)的一類(lèi)文件將其替換,對(duì)于正在被軟件調(diào)用的與一類(lèi)文件對(duì)應(yīng)的原文件,建立若干個(gè)一類(lèi)文件與原文件之間的映射關(guān)系,不同的映射關(guān)系之間為串聯(lián)關(guān)系,相鄰的兩個(gè)映射關(guān)系之間設(shè)置有中間文件,從與原文件最接近的中間文件開(kāi)始,依次使用中間文件依次對(duì)原文件位置上的文件進(jìn)行替換,將替換下來(lái)的文件存入緩沖區(qū);替換時(shí),在手機(jī)客戶端運(yùn)行內(nèi)存中建立一個(gè)鏡像區(qū),在鏡像區(qū)內(nèi)建立一個(gè)替換前的運(yùn)行程序鏡像,將中間文件逐個(gè)讀入運(yùn)行內(nèi)存中,實(shí)現(xiàn)調(diào)用文件的替換,在運(yùn)行內(nèi)存中,中間文件的運(yùn)行優(yōu)先級(jí)高于鏡像區(qū)的程序文件;
F、當(dāng)文件替換過(guò)程中出現(xiàn)錯(cuò)誤,使用緩沖區(qū)的文件進(jìn)行文件的還原,在使用緩沖區(qū)的文件進(jìn)行還原時(shí),同時(shí)使用堆棧結(jié)構(gòu)頂部的至少兩個(gè)文件進(jìn)行還原操作;
G、對(duì)更新后的文件重新計(jì)算MD5碼,若更新后的MD5碼與服務(wù)器端發(fā)送的MD5碼相同,結(jié)束更新過(guò)程,若不同,則從步驟C開(kāi)始重新循環(huán)執(zhí)行。
本發(fā)明與現(xiàn)有技術(shù)相比,可以減少80%~90%的程序更新時(shí)間,更新過(guò) 程中對(duì)于CPU的占用率平均降低20%以上,更新過(guò)程安全性高,更新結(jié)果準(zhǔn)確性高。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書(shū)中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書(shū)及其等效物界定。