欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

組件更新處理方法及裝置與流程

文檔序號(hào):11829046閱讀:427來(lái)源:國(guó)知局
組件更新處理方法及裝置與流程

本發(fā)明涉及一種應(yīng)用處理技術(shù)領(lǐng)域,尤其涉及一種組件更新處理方法及裝置。



背景技術(shù):

隨著科技的迅猛發(fā)展,各種各樣功能的應(yīng)用(Application;App)的出現(xiàn),大大地方便了人們的生活。

隨著近年來(lái)線上到線下(Online To Offline;O2O)運(yùn)營(yíng)模式的出現(xiàn),由于O2O業(yè)務(wù)的實(shí)時(shí)性等特性,O2O的生態(tài)組件的產(chǎn)品形態(tài)亦為“小步快跑,快速試錯(cuò)”。且現(xiàn)有的很多O2O的生態(tài)組件通過(guò)設(shè)置在一些傳統(tǒng)的應(yīng)用如地圖、搜索等App上。傳統(tǒng)的App有其自身的版本計(jì)劃,通常發(fā)版周期比較長(zhǎng);而O2O業(yè)務(wù)的生態(tài)組件有其自身的實(shí)時(shí)性等特性,通常需要更新頻率較高,因此需要發(fā)版周期比較短。

因此,現(xiàn)有技術(shù)中,傳統(tǒng)App和設(shè)置在其上的O2O業(yè)務(wù)的生態(tài)組件的經(jīng)常存在發(fā)版計(jì)劃不匹配的技術(shù)問(wèn)題,導(dǎo)致O2O業(yè)務(wù)的生態(tài)組件的更新必須要等到傳統(tǒng)App更新的時(shí)候才能實(shí)現(xiàn)更新,導(dǎo)致傳統(tǒng)App上設(shè)置的O2O業(yè)務(wù)的生態(tài)組件的更新效率較低。



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

本發(fā)明提供了一種組件更新處理方法及裝置,用于提高App中的組件的更新效率。

本發(fā)明提供一種組件更新處理方法,所述方法包括:

當(dāng)應(yīng)用中的組件被打開(kāi)之后,確定所述組件能夠進(jìn)行熱更新;

當(dāng)所述組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址;

根據(jù)所述下載地址,下載所述組件的所述新更新包;

采用所述新更新包更新所述組件。

進(jìn)一步可選地,如上所述的方法中,當(dāng)所述組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址,具體包括:

向所述組件服務(wù)器發(fā)送攜帶本地更新包版本號(hào)的更新請(qǐng)求;

接收所述組件服務(wù)器發(fā)送的攜帶更新標(biāo)識(shí)位的更新響應(yīng)消息;所述更新標(biāo)識(shí)位為所述組件服務(wù)器根據(jù)所述本地更新包的版本號(hào)和最新的更新包的版本號(hào)確定的;

根據(jù)所述更新響應(yīng)消息中的所述更新標(biāo)識(shí)位,確定所述組件需要下載所述新更新包進(jìn)行更新;

從所述更新響應(yīng)消息中獲取所述新更新包的下載地址;

進(jìn)一步地,所述方法還包括:

當(dāng)根據(jù)所述更新響應(yīng)消息中的所述更新標(biāo)識(shí)位,確定所述組件不需要下載所述新更新包進(jìn)行更新,進(jìn)一步從所述更新響應(yīng)消息中獲取下載標(biāo)識(shí)位;

根據(jù)所述下載標(biāo)識(shí)位確定已下載最新的更新包。

進(jìn)一步可選地,如上所述的方法中,根據(jù)所述下載地址,下載所述組件的所述新更新包,具體包括:

根據(jù)所述下載地址向文件服務(wù)器發(fā)送攜帶白名單標(biāo)識(shí)的更新包下載請(qǐng)求,以供所述文件服務(wù)器根據(jù)所述白名單標(biāo)識(shí)檢測(cè)所述更新包下載請(qǐng)求為合法請(qǐng)求;

接收所述文件服務(wù)器發(fā)送的、采用第一加密算法對(duì)所述新更新包進(jìn)行加密后的第一文件和采用第二加密算法對(duì)所述新更新包的第一信息摘要值進(jìn)行加密后的第二文件;

采用所述第一加密算法對(duì)應(yīng)的解密算法對(duì)所述第一文件解密;

獲取所述第一文件解密后的文件的第二信息摘要值;

采用所述第二加密算法對(duì)應(yīng)的解密算法對(duì)所述第二文件進(jìn)行解密,得到第三信息摘要值;

將所述第二信息摘要值和所述第三信息摘要值進(jìn)行比對(duì),當(dāng)兩者一致時(shí),確定采用所述第一加密算法對(duì)應(yīng)的解密算法對(duì)所述第一文件解密后的文件為所述新更新包。

進(jìn)一步可選地,如上所述的方法中,根據(jù)所述下載地址向文件服務(wù)器發(fā)送攜帶白名單標(biāo)識(shí)的更新包下載請(qǐng)求,具體包括:

將所述白名單標(biāo)識(shí)攜帶在所述更新包下載請(qǐng)求的頭文件中;

采用超文本傳輸協(xié)議向所述下載地址對(duì)應(yīng)的所述文件服務(wù)器發(fā)送所述更新包下載請(qǐng)求。

進(jìn)一步可選地,如上所述的方法中,還包括:

在采用所述新更新包更新所述組件過(guò)程中,更新崩潰退出時(shí),記錄崩潰標(biāo)識(shí)位;

進(jìn)一步地,在采用所述新更新包更新所述組件過(guò)程中,更新崩潰退出時(shí),記錄崩潰標(biāo)識(shí)位,具體包括:在采用所述新更新包更新所述組件過(guò)程中,更新崩潰退出時(shí),將崩潰時(shí)運(yùn)行的所述新更新包的對(duì)應(yīng)的函數(shù)的退出標(biāo)識(shí)更新為非正常退出的標(biāo)識(shí)。

進(jìn)一步可選地,如上所述的方法中,采用所述新更新包更新所述組件之后,還包括:

刪除本地的舊更新包,存儲(chǔ)所述新更新包以及所述更新包的版本號(hào)。

進(jìn)一步可選地,如上所述的方法中,確定所述組件能夠進(jìn)行熱更新,具體包括:

根據(jù)基線接口標(biāo)識(shí)位確定所述應(yīng)用允許所述組件進(jìn)行熱更新。

進(jìn)一步可選地,如上所述的方法中,根據(jù)基線接口標(biāo)識(shí)位確定所述應(yīng)用允許所述組件進(jìn)行熱更新之后,當(dāng)所述組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址之前,還包括:

檢測(cè)當(dāng)前運(yùn)行的應(yīng)用的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)是否分別均與本地存儲(chǔ)的應(yīng)用的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致;

當(dāng)不一致時(shí),刪除本地的更新包;

進(jìn)一步地,當(dāng)運(yùn)行的所述應(yīng)用的版本號(hào)、所述組件的版本號(hào)以及所述更新包的版本號(hào)是否分別均與本地存儲(chǔ)的所述應(yīng)用的版本號(hào)、所述組件的版本號(hào)以及所述更新包的版本號(hào)一致時(shí),所述方法還包括:

檢測(cè)本地存儲(chǔ)的所述更新包是否存在崩潰標(biāo)識(shí)位;當(dāng)本地存儲(chǔ)的更新包存在所述崩潰標(biāo)識(shí)位,不加載本地的存儲(chǔ)的更新包;

進(jìn)一步地,當(dāng)本地存儲(chǔ)的所述更新包不存在所述崩潰標(biāo)識(shí)位時(shí),檢測(cè)并確定控制加載本地標(biāo)識(shí)位標(biāo)識(shí)的為所述組件服務(wù)器允許所述組件加載更新包。

本發(fā)明還提供一種組件更新處理裝置,所述裝置包括:

確定模塊,用于當(dāng)應(yīng)用中的組件被打開(kāi)之后,確定所述組件能夠進(jìn)行熱更新;

獲取模塊,用于當(dāng)所述組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址;

下載模塊,用于根據(jù)所述下載地址,下載所述組件的所述新更新包;

更新模塊,用于采用所述新更新包更新所述組件。

進(jìn)一步可選地,如上所述的裝置中,所述獲取模塊,具體用于:

向所述組件服務(wù)器發(fā)送攜帶本地更新包版本號(hào)的更新請(qǐng)求;

接收所述組件服務(wù)器發(fā)送的攜帶更新標(biāo)識(shí)位的更新響應(yīng)消息;所述更新標(biāo)識(shí)位為所述組件服務(wù)器根據(jù)所述本地更新包的版本號(hào)和最新的更新包的版本號(hào)確定的;

根據(jù)所述更新響應(yīng)消息中的所述更新標(biāo)識(shí)位,確定所述組件需要下載所述新更新包進(jìn)行更新下載標(biāo)識(shí)位;

從所述更新響應(yīng)消息中獲取所述新更新包的下載地址;

進(jìn)一步地,所述獲取模塊,還用于當(dāng)根據(jù)所述更新響應(yīng)消息中的所述更新標(biāo)識(shí)位,確定所述組件不需要下載所述新更新包進(jìn)行更新,進(jìn)一步從所述更新響應(yīng)消息中獲取下載標(biāo)識(shí)位;

所述確定模塊,還用于根據(jù)所述下載標(biāo)識(shí)位確定已下載最新的更新包。

進(jìn)一步可選地,如上所述的裝置中,所述下載模塊,具體用于:

根據(jù)所述下載地址向文件服務(wù)器發(fā)送攜帶白名單標(biāo)識(shí)的更新包下載請(qǐng)求,以供所述文件服務(wù)器根據(jù)所述白名單標(biāo)識(shí)檢測(cè)所述更新包下載請(qǐng)求為合法請(qǐng)求;

接收所述文件服務(wù)器發(fā)送的、采用第一加密算法對(duì)所述新更新包進(jìn)行加密后的第一文件和采用第二加密算法對(duì)所述新更新包的第一信息摘要值進(jìn)行加密后的第二文件;

采用所述第一加密算法對(duì)應(yīng)的解密算法對(duì)所述第一文件解密;

獲取所述第一文件解密后的文件的第二信息摘要值;

采用所述第二加密算法對(duì)應(yīng)的解密算法對(duì)所述第二文件進(jìn)行解密,得到第三信息摘要值;

將所述第二信息摘要值和所述第三信息摘要值進(jìn)行比對(duì),當(dāng)兩者一致時(shí),確定采用所述第一加密算法對(duì)應(yīng)的解密算法對(duì)所述第一文件解密后的文件為所述新更新包。

進(jìn)一步可選地,如上所述的裝置中,所述下載模塊,具體還用于:

將所述白名單標(biāo)識(shí)攜帶在所述更新包下載請(qǐng)求的頭文件中;

采用超文本傳輸協(xié)議向所述下載地址對(duì)應(yīng)的所述文件服務(wù)器發(fā)送所述更新包下載請(qǐng)求。

進(jìn)一步可選地,如上所述的裝置中,還包括:

記錄模塊,用于在采用所述新更新包更新所述組件過(guò)程中,更新崩潰退出時(shí),記錄崩潰標(biāo)識(shí)位;

進(jìn)一步地,所述記錄模塊,具體用于在采用所述新更新包更新所述組件過(guò)程中,更新崩潰退出時(shí),將崩潰時(shí)運(yùn)行的所述新更新包的對(duì)應(yīng)的函數(shù)的退出標(biāo)識(shí)更新為非正常退出的標(biāo)識(shí)。

進(jìn)一步可選地,如上所述的裝置中,所述更新模塊,還用于刪除本地的舊更新包,存儲(chǔ)所述新更新包以及所述更新包的版本號(hào)。

進(jìn)一步可選地,如上所述的裝置中,所述確定模塊,具體用于根據(jù)基線接口標(biāo)識(shí)位確定所述應(yīng)用允許所述組件進(jìn)行熱更新。

進(jìn)一步可選地,如上所述的裝置中,還包括:

檢測(cè)模塊,用于檢測(cè)當(dāng)前運(yùn)行的應(yīng)用的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)是否分別均與本地存儲(chǔ)的應(yīng)用的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致;

處理模塊,用于當(dāng)所述檢測(cè)模塊確定不一致時(shí),刪除本地的更新包;

進(jìn)一步地,所述檢測(cè)模塊,還用于當(dāng)確定運(yùn)行的所述應(yīng)用的版本號(hào)、所述組件的版本號(hào)以及所述更新包的版本號(hào)是否分別均與本地存儲(chǔ)的所述應(yīng)用的版本號(hào)、所述組件的版本號(hào)以及所述更新包的版本號(hào)一致時(shí),進(jìn)一步檢測(cè)本地存儲(chǔ)的所述更新包是否存在崩潰標(biāo)識(shí)位;

所述處理模塊,還用于當(dāng)本地存儲(chǔ)的更新包存在所述崩潰標(biāo)識(shí)位,不加載本地的存儲(chǔ)的更新包。

所述檢測(cè)模塊,還用于當(dāng)本地存儲(chǔ)的所述更新包不存在所述崩潰標(biāo)識(shí)位時(shí),檢測(cè)并確定控制加載本地標(biāo)識(shí)位標(biāo)識(shí)的為所述組件服務(wù)器允許所述組件加載更新包。

本發(fā)明的組件更新處理方法及裝置,通過(guò)采用上述方案,可以實(shí)現(xiàn)對(duì)App中插入的組件進(jìn)行熱更新,克服現(xiàn)有技術(shù)中傳統(tǒng)App和設(shè)置在其上的O2O業(yè)務(wù)的生態(tài)組件的經(jīng)常存在發(fā)版計(jì)劃不匹配的技術(shù)問(wèn)題,使得組件的更新不用等待APP的更新便可以實(shí)現(xiàn)熱更新,能夠有效地提高組件的更新效率,能夠有效地增強(qiáng)對(duì)組件的獨(dú)立管理能力。

【附圖說(shuō)明】

圖1為本發(fā)明的組件更新處理方法實(shí)施例的流程圖。

圖2為本實(shí)施例的組件更新處理過(guò)程中的代碼示例。

圖3為本發(fā)明的組件更新處理裝置實(shí)施例一的結(jié)構(gòu)圖。

圖4為本發(fā)明的組件更新處理裝置實(shí)施例二的結(jié)構(gòu)圖。

【具體實(shí)施方式】

為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。

圖1為本發(fā)明的組件更新處理方法實(shí)施例的流程圖。如圖1所示,本實(shí)施例的組件更新處理方法,具體可以包括如下步驟:

100、當(dāng)App中的組件被打開(kāi)之后,確定組件能夠進(jìn)行熱更新;

101、當(dāng)組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址;

102、根據(jù)下載地址,下載組件的新更新包;

103、采用新更新包更新組件。

本實(shí)施例的應(yīng)用場(chǎng)景為在傳統(tǒng)的App中插入有組件,例如該App為地圖、搜索等App,該組件可以為插入在該App中的酒店業(yè)務(wù)組件等等。在該App中打開(kāi)該組件之后,可以先確定該組件是否能夠進(jìn)行熱更新,即在App不更新的前提下,單獨(dú)更新插入在該App中的組件。當(dāng)確定該組件可以更新時(shí),可以從組件服務(wù)器獲取新更新包的下載地址,然后根據(jù)下載地址下載組件的新更新包,并采用新更新包更新該組件。

本實(shí)施例的組件更新處理方法的執(zhí)行主體可以為組件更新處理裝置,該組件更新處理裝置也可以設(shè)置在組件一側(cè),在App中的組件被打開(kāi)時(shí),可以采用本實(shí)施例的上述技術(shù)方案,實(shí)現(xiàn)對(duì)App中的組件進(jìn)行熱更新處理。

本實(shí)施例的組件更新處理方法,通過(guò)采用上述方案,可以實(shí)現(xiàn)對(duì)App中插入的組件進(jìn)行熱更新,克服現(xiàn)有技術(shù)中傳統(tǒng)App和設(shè)置在其上的O2O業(yè)務(wù)的生態(tài)組件的經(jīng)常存在發(fā)版計(jì)劃不匹配的技術(shù)問(wèn)題,使得組件的更新不用等待APP的更新便可以實(shí)現(xiàn)熱更新,能夠有效地提高組件的更新效率,能夠有效地增強(qiáng)對(duì)組件的獨(dú)立管理能力。

例如,本實(shí)施例的步驟100,具體包括:根據(jù)基線接口標(biāo)識(shí)位確定App允許組件進(jìn)行熱更新。也就是說(shuō),在App中可以設(shè)置有基線接口標(biāo)識(shí)位,通過(guò)該基線接口標(biāo)識(shí)位來(lái)標(biāo)識(shí)App是否允許該組件進(jìn)行熱更新,例如可以設(shè)置基線接口標(biāo)識(shí)位為0,標(biāo)識(shí)該App不允許該組件進(jìn)行熱更新。設(shè)置基線標(biāo)識(shí)位為1,標(biāo)識(shí)該App允許該組件進(jìn)行熱更新。例如,基線在ComEntity基類(lèi)里可以提供基線接口標(biāo)識(shí)位。以根據(jù)基線接口標(biāo)識(shí)位判斷組件是否加載JSPatch,組件在內(nèi)部加載JSPatch之前要進(jìn)行判斷。

進(jìn)一步可選地,本實(shí)施例的步驟101,具體可以包括如下步驟:

(a1)向組件服務(wù)器發(fā)送攜帶本地更新包版本號(hào)的更新請(qǐng)求;

(a2)接收組件服務(wù)器發(fā)送的攜帶更新標(biāo)識(shí)位的更新響應(yīng)消息;

更新標(biāo)識(shí)位為組件服務(wù)器根據(jù)本地更新包的版本號(hào)和最新的更新包的版本號(hào)確定的;

(a3)根據(jù)更新響應(yīng)消息中的更新標(biāo)識(shí)位,確定組件需要下載新更新包進(jìn)行更新;

(a4)從更新響應(yīng)消息中獲取新更新包的下載地址。

而當(dāng)根據(jù)更新響應(yīng)消息中的更新標(biāo)識(shí)位,確定組件不需要下載新更新包進(jìn)行更新,進(jìn)一步從更新響應(yīng)消息中獲取下載標(biāo)識(shí)位;并根據(jù)下載標(biāo)識(shí)位確定已下載最新的更新包。

其中更新標(biāo)識(shí)位可以采用isUpgrade字段來(lái)標(biāo)識(shí),下載標(biāo)識(shí)位可以采用isLoad字段來(lái)表示。

本實(shí)施例中的新更新包可以存儲(chǔ)在組件服務(wù)器中,當(dāng)確定組件能夠進(jìn)行熱更新時(shí),該組件更新處理裝置先向組件服務(wù)器發(fā)送攜帶本地更新包版本號(hào)的更新請(qǐng)求;然后組件服務(wù)器會(huì)根據(jù)組件的本地更新包版本號(hào)和記錄的最新的最新的更新包的版本號(hào)相比對(duì),當(dāng)本地更新包版本號(hào)等于最新的更新包的版本號(hào),確定該組件已經(jīng)為最新版本,不需要更新;此時(shí)組件服務(wù)器會(huì)將isUpgrade設(shè)置為0。否則當(dāng)本地更新包版本號(hào)不等于最新的更新包版本號(hào),此時(shí)認(rèn)為該組件不是最新版本,可以進(jìn)行更新;此時(shí)組件服務(wù)器會(huì)將isUpgrade設(shè)置為1。這樣,組件更新處理裝置在接收到更新響應(yīng)消息之后,根據(jù)其中的isUpgrade便可以確定組件是否需要下載新更新包進(jìn)行更新;當(dāng)需要時(shí),從更新響應(yīng)消息中獲取新更新包的下載地址。

而當(dāng)isLoad為0時(shí),組件更新處理裝置確定組件不需要下載新更新包進(jìn)行更新,進(jìn)一步從更新響應(yīng)消息中獲取isLoad;并當(dāng)isLoad為1時(shí),表示已下載最新的更新包。

圖2為本實(shí)施例的組件更新處理過(guò)程中的代碼示例,例如,圖2所示的代碼可以設(shè)置在更新響應(yīng)消息中,其中的isUpgrade為更新標(biāo)識(shí)位,isLoad為下載標(biāo)識(shí)位,isLoad位于isUpgrade的上一行,被消息提示框遮擋。該更新響應(yīng)消息中還可以包括新更新包的名稱,新更新包的下載地址,還有當(dāng)前App的版本號(hào)baseVer,組件的版本號(hào)pluginVer,更新包的版本號(hào)patchVer,等等。其中新更新包的下載地址,也可以稱之為文件統(tǒng)一資源定位符(Uniform Resoure Locator;URL),此處簡(jiǎn)稱為fileURL,即文件的下載地址。當(dāng)根據(jù)更新響應(yīng)消息中的isUpgrade和/或isLoad確定組件需要下載新更新包進(jìn)行更新,從更新響應(yīng)消息中獲取新更新包的下載地址即fileURL。

其中組件的最新的更新包可以存儲(chǔ)在文件服務(wù)器中,在組件服務(wù)器和文件服務(wù)器中均存儲(chǔ)有該最新的更新包的版本號(hào),其中組件服務(wù)器和文件服務(wù)器可以設(shè)置在云端。

本實(shí)施例的更新控制可以由云端控制,可以進(jìn)行定量灰度下發(fā),分城市下發(fā),分渠道下發(fā),如地圖/搜索/線上到線下(Online To Offline;O2O)平臺(tái)。

進(jìn)一步可選地,本實(shí)施例的步驟102,具體可以包括如下步驟:

(b1)根據(jù)下載地址向文件服務(wù)器發(fā)送攜帶白名單標(biāo)識(shí)的更新包下載請(qǐng)求,以供文件服務(wù)器根據(jù)白名單標(biāo)識(shí)檢測(cè)更新包下載請(qǐng)求為合法請(qǐng)求;

例如采用白名單機(jī)制可以防止惡意盜鏈。具體地,可以將白名單標(biāo)識(shí)攜帶在更新包下載請(qǐng)求的頭文件中;采用超文本傳輸協(xié)議(HyperText Transfer Protocol;HTTP)向下載地址對(duì)應(yīng)的文件服務(wù)器發(fā)送更新包下載請(qǐng)求,這樣即使被第三方獲取到下載地址,也可以避免其通過(guò)云端下載到Patch File,可以增強(qiáng)信息傳輸?shù)陌踩浴?/p>

本實(shí)施例中,采用HTPP下載新更新包即Patch File,可以避免新更新包Patch File被第三方工具攔截。(b2)接收文件服務(wù)器發(fā)送的、采用第一加密算法對(duì)新更新包進(jìn)行加密后的第一文件和采用第二加密算法對(duì)新更新包的第一信息摘要值進(jìn)行加密后的第二文件;

本實(shí)施例中,為了保證下載的新更新包為被攔截修改或者惡意篡改,可以采用多種加密技術(shù)組合使用,避免Patch File下載過(guò)程中被攔截修改。例如文件服務(wù)器發(fā)送給組件更新處理裝置的包括第一文件和第二文件兩個(gè)文件,第一個(gè)文件是采用第一加密算法對(duì)新更新包加密后的文件,例如第一加密算法可以為高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard;AES)算法;第二加密文件可以為采用第二加密算法對(duì)新更新包的第一信息摘要值進(jìn)行加密后的文件。例如可以采用消息摘要算法第五版(Message Digest Algorithm;MD5)計(jì)算該新更新包的第一信息摘要值,然后利用第二加密算法如RSA算法對(duì)第一信息摘要值進(jìn)行加密,得到第二文件。

(b3)采用第一加密算法對(duì)應(yīng)的解密算法對(duì)第一文件解密;

(b4)獲取第一文件解密后的文件的第二信息摘要值;

(b5)采用第二加密算法對(duì)應(yīng)的解密算法對(duì)第二文件進(jìn)行解密,得到第三信息摘要值;

(b6)將第二信息摘要值和第三信息摘要值進(jìn)行比對(duì),當(dāng)兩者一致時(shí),確定采用第一加密算法對(duì)應(yīng)的解密算法對(duì)第一文件解密后的文件為新更新包。

組件更新處理裝置在接收到第一文件和第二文件之后,可以采用AES對(duì)應(yīng)的解密算法對(duì)第一文件解密,然后采用MD5算法對(duì)解密后的文件計(jì)算信息摘要值,得到第二信息摘要值。同時(shí)采用RSY對(duì)應(yīng)的解密算法對(duì)第二文件進(jìn)行解密,得到第三信息摘要值。其中MD5算法為非常精密的算法,只要處理的原文件有些許變化,計(jì)算后的信息摘要值都會(huì)相差很大。因此,將第二信息摘要值和第三信息摘要值進(jìn)行比對(duì),當(dāng)兩者一致時(shí),便可以確定采用第一加密算法對(duì)應(yīng)的解密算法對(duì)第一文件解密后的文件為新更新包,且可以認(rèn)為該新更新包在傳輸中未被進(jìn)行任何篡改。

進(jìn)一步可選地,在上述AES/RSA加密解密的基礎(chǔ)上,文件服務(wù)器還可以采用base64編碼對(duì)第一文件和第二文件進(jìn)行編碼,對(duì)應(yīng)地,在組件更新處理裝置一側(cè),采用base64解碼對(duì)接收到的文件進(jìn)行解碼,得到第一文件和第二文件。這樣,可以避免在加密后的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為字符串時(shí),因?yàn)榭崭裨斐蓴?shù)據(jù)截?cái)唷?/p>

進(jìn)一步可選地,本實(shí)施例的組件更新處理方法,還可以包括:在采用新更新包更新組件過(guò)程中,更新崩潰退出時(shí),記錄崩潰標(biāo)識(shí)位;

例如,在采用新更新包更新組件過(guò)程中,更新崩潰退出時(shí),將崩潰時(shí)運(yùn)行的新更新包的對(duì)應(yīng)的函數(shù)的退出標(biāo)識(shí)更新為非正常退出的標(biāo)識(shí)。新更新包中包括多個(gè)函數(shù),在利用新更新包更新組件時(shí),可以加載到某個(gè)函數(shù)時(shí),出現(xiàn)crash,而導(dǎo)致更新崩潰,退出。此時(shí)將崩潰時(shí)運(yùn)行的新更新包的對(duì)應(yīng)的函數(shù)的退出標(biāo)識(shí)更新為非正常退出的標(biāo)識(shí),例如原來(lái)為1的話,更新為0。

該機(jī)制為crash容錯(cuò)處理機(jī)制,在云端的文件服務(wù)器中的Patch文件里,在每次進(jìn)入/退出一個(gè)函數(shù)時(shí),都設(shè)置相應(yīng)的該函數(shù)的進(jìn)入標(biāo)識(shí)為和退出標(biāo)識(shí)位,例如可以均設(shè)置為1。在組件更新處理裝置端運(yùn)行時(shí),會(huì)check標(biāo)記位是否一致,如果一致,確定沒(méi)有經(jīng)過(guò)crash,否則確認(rèn)發(fā)生過(guò)crash,因此,本實(shí)施例的技術(shù)方案具有crash容錯(cuò)能力。

為了防止組件加載存在問(wèn)題的patch包造成crash,基線暫時(shí)不提供組件crash時(shí)的回調(diào)函數(shù),所以要求組件在每個(gè)修改方法開(kāi)始的地方重置進(jìn)入標(biāo)識(shí)位和退出標(biāo)識(shí)位,然后在開(kāi)始時(shí)標(biāo)記進(jìn)入標(biāo)識(shí)位,在結(jié)束時(shí)標(biāo)記結(jié)束標(biāo)識(shí)位,下次啟動(dòng)組件后判斷是否加載patch包。

進(jìn)一可選地,在上述實(shí)施例的步驟103“采用新更新包更新組件”之后,還可以包括:刪除本地的舊更新包,存儲(chǔ)新更新包以及更新包的版本號(hào),可以保證加載的一致性。

進(jìn)一步可選地,在上述實(shí)施例的技術(shù)方案的基礎(chǔ)上“根據(jù)基線接口標(biāo)識(shí)位確定App允許組件進(jìn)行熱更新”之后,“當(dāng)組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址”之前,還可以包括:

(c1)檢測(cè)當(dāng)前運(yùn)行的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)是否分別均與本地存儲(chǔ)的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致;當(dāng)不一致時(shí),執(zhí)行步驟(c2);當(dāng)一致時(shí),執(zhí)行步驟(c3);

(c2)刪除本地的更新包;然后可以從步驟100開(kāi)始執(zhí)行上述實(shí)施例的技術(shù)方案。

若當(dāng)前運(yùn)行的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)均與本地存儲(chǔ)的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致,說(shuō)明本地的存儲(chǔ)的版本與云端的版本一致,可以進(jìn)行升級(jí);否則若不一致,可以刪除本地的所有更新包,重置所有打點(diǎn)標(biāo)識(shí),重新向云端請(qǐng)求更新。

(c3)檢測(cè)本地存儲(chǔ)的更新包是否存在崩潰標(biāo)識(shí)位;當(dāng)本地存儲(chǔ)的更新包存在崩潰標(biāo)識(shí)位,執(zhí)行步驟(c4);當(dāng)本地存儲(chǔ)的更新包不存在崩潰標(biāo)識(shí)位,執(zhí)行步驟(c5);

本實(shí)施例中,當(dāng)本地存儲(chǔ)有崩潰標(biāo)識(shí)位時(shí),說(shuō)明之前的更新版本在加載時(shí)出現(xiàn)crash,此時(shí)可以避免再次加載存儲(chǔ)的更新包,防止crash的再次發(fā)生。

(c4)不加載本地的存儲(chǔ)的更新包;

(c5)檢測(cè)控制加載本地標(biāo)識(shí)位標(biāo)識(shí)的是否為組件服務(wù)器允許組件加載更新包;若是,然后可以從步驟100開(kāi)始執(zhí)行上述實(shí)施例的技術(shù)方案;否則若不是,不更新。

當(dāng)本地存儲(chǔ)的更新包不存在崩潰標(biāo)識(shí)位,還可以進(jìn)一步檢測(cè)控制加載本地標(biāo)識(shí)位,該控制加載本地標(biāo)識(shí)位可以理解為遠(yuǎn)端對(duì)組件更新處理裝置端的控制。如當(dāng)該控制加載本地標(biāo)識(shí)位為0時(shí),表示組件服務(wù)器不允許組件加載更新包;否則當(dāng)該控制加載本地標(biāo)識(shí)位為1時(shí),表示組件服務(wù)器允許組件加載更新包。

本實(shí)施例的組件更新處理方法中所包括的上述所有可選技術(shù)方案,可以采用可以結(jié)合的方式,任意組合,形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。

本實(shí)施例的組件更新處理方法,通過(guò)采用上述方案,可以實(shí)現(xiàn)對(duì)App中插入的組件進(jìn)行熱更新,克服現(xiàn)有技術(shù)中傳統(tǒng)App和設(shè)置在其上的O2O業(yè)務(wù)的生態(tài)組件的經(jīng)常存在發(fā)版計(jì)劃不匹配的技術(shù)問(wèn)題,使得組件的更新不用等待APP的更新便可以實(shí)現(xiàn)熱更新,能夠有效地提高組件的更新效率,能夠有效地增強(qiáng)對(duì)組件的獨(dú)立管理能力。

圖3為本發(fā)明的組件更新處理裝置實(shí)施例一的結(jié)構(gòu)圖。如圖3所示,本實(shí)施例的組件更新處理裝置,具體可以包括:確定模塊10、獲取模塊11、下載模塊12和更新模塊13。

其中確定模塊10用于當(dāng)App中的組件被打開(kāi)之后,確定組件能夠進(jìn)行熱更新;獲取模塊11用于當(dāng)根據(jù)確定模塊10確定組件需要更新時(shí),從組件服務(wù)器中獲取新更新包的下載地址;下載模塊12用于根據(jù)獲取模塊11獲取的下載地址,下載組件的新更新包;更新模塊13用于采用下載模塊12下載的新更新包更新組件。

本實(shí)施例的組件更新處理裝置,通過(guò)采用上述模塊實(shí)現(xiàn)組件的更新處理,與上述相關(guān)方法實(shí)施例的實(shí)現(xiàn)原理以及實(shí)現(xiàn)效果相同,詳細(xì)可以參考上述相關(guān)方法實(shí)施例的記載,在此不再贅述。

圖4為本發(fā)明的組件更新處理裝置實(shí)施例二的結(jié)構(gòu)圖。如圖4所示,本實(shí)施例的組件更新處理裝置,在上述圖3所示實(shí)施例的技術(shù)方案的基礎(chǔ)上,進(jìn)一步還包括如下技術(shù)方案。

本實(shí)施例的組件更新處理裝置中,獲取模塊11具體用于:

向組件服務(wù)器發(fā)送攜帶本地更新包版本號(hào)的更新請(qǐng)求;

接收組件服務(wù)器發(fā)送的攜帶更新標(biāo)識(shí)位的更新響應(yīng)消息;更新標(biāo)識(shí)位和下載標(biāo)識(shí)位為組件服務(wù)器根據(jù)本地更新包的版本號(hào)和最新的更新包的版本號(hào)確定的;

根據(jù)更新響應(yīng)消息中的更新標(biāo)識(shí)位,確定組件需要下載新更新包進(jìn)行更新;

從更新響應(yīng)消息中獲取新更新包的下載地址;

進(jìn)一步地,獲取模塊11還用于當(dāng)根據(jù)更新響應(yīng)消息中的更新標(biāo)識(shí)位,確定組件不需要下載新更新包進(jìn)行更新,進(jìn)一步從更新響應(yīng)消息中獲取下載標(biāo)識(shí)位;

確定模塊10還用于根據(jù)下載標(biāo)識(shí)位確定已下載最新的更新包。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,下載模塊12具體用于:

根據(jù)下載地址向文件服務(wù)器發(fā)送攜帶白名單標(biāo)識(shí)的更新包下載請(qǐng)求,以供文件服務(wù)器根據(jù)白名單標(biāo)識(shí)檢測(cè)更新包下載請(qǐng)求為合法請(qǐng)求;

接收文件服務(wù)器發(fā)送的、采用第一加密算法對(duì)新更新包進(jìn)行加密后的第一文件和采用第二加密算法對(duì)新更新包的第一信息摘要值進(jìn)行加密后的第二文件;

采用第一加密算法對(duì)應(yīng)的解密算法對(duì)第一文件解密;

獲取第一文件解密后的文件的第二信息摘要值;

采用第二加密算法對(duì)應(yīng)的解密算法對(duì)第二文件進(jìn)行解密,得到第三信息摘要值;

將第二信息摘要值和第三信息摘要值進(jìn)行比對(duì),當(dāng)兩者一致時(shí),確定采用第一加密算法對(duì)應(yīng)的解密算法對(duì)第一文件解密后的文件為新更新包。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,下載模塊12具體還用于:

將白名單標(biāo)識(shí)攜帶在更新包下載請(qǐng)求的頭文件中;

采用超文本傳輸協(xié)議向下載地址對(duì)應(yīng)的文件服務(wù)器發(fā)送更新包下載請(qǐng)求。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,還包括記錄模塊14。

該記錄模塊14用于在更新模塊13采用新更新包更新組件過(guò)程中,更新崩潰退出時(shí),記錄崩潰標(biāo)識(shí)位;

進(jìn)一步地,記錄模塊14具體用于在更新模塊13采用新更新包更新組件過(guò)程中,更新崩潰退出時(shí),將崩潰時(shí)運(yùn)行的新更新包的對(duì)應(yīng)的函數(shù)的退出標(biāo)識(shí)更新為非正常退出的標(biāo)識(shí)。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,更新模塊13還用于刪除本地的舊更新包,存儲(chǔ)新更新包以及更新包的版本號(hào)。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,確定模塊10具體用于根據(jù)基線接口標(biāo)識(shí)位確定App允許組件進(jìn)行熱更新。

進(jìn)一步可選地,本實(shí)施例的組件更新處理裝置中,還包括:檢測(cè)模塊15和處理模塊16。

檢測(cè)模塊15用于在確定模塊10確定App允許組件進(jìn)行熱更新時(shí),檢測(cè)當(dāng)前運(yùn)行的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)是否分別均與本地存儲(chǔ)的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致;

處理模塊16用于根據(jù)檢測(cè)模塊15的檢測(cè)結(jié)果,確定不一致時(shí),刪除本地的更新包;然后觸發(fā)獲取模塊11從組件服務(wù)器中獲取新更新包的下載地址。

進(jìn)一步地,檢測(cè)模塊15還用于當(dāng)確定運(yùn)行的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)是否分別均與本地存儲(chǔ)的App的版本號(hào)、組件的版本號(hào)以及更新包的版本號(hào)一致時(shí),進(jìn)一步檢測(cè)本地存儲(chǔ)的更新包是否存在崩潰標(biāo)識(shí)位;

處理模塊16還用于當(dāng)本地存儲(chǔ)的更新包存在崩潰標(biāo)識(shí)位,不加載本地的存儲(chǔ)的更新包;然后觸發(fā)獲取模塊11從組件服務(wù)器中獲取新更新包的下載地址。

檢測(cè)模塊15還用于當(dāng)本地存儲(chǔ)的更新包不存在崩潰標(biāo)識(shí)位時(shí),檢測(cè)并確定控制加載本地標(biāo)識(shí)位標(biāo)識(shí)的為組件服務(wù)器允許組件加載更新包。

本實(shí)施例的組件更新處理裝置,通過(guò)采用上述模塊實(shí)現(xiàn)組件的更新處理,與上述相關(guān)方法實(shí)施例的實(shí)現(xiàn)原理以及實(shí)現(xiàn)效果相同,詳細(xì)可以參考上述相關(guān)方法實(shí)施例的記載,在此不再贅述。

本實(shí)施例的組件更新處理方法及裝置,優(yōu)選地,適用于IOS操作系統(tǒng),其中的應(yīng)用可以為地圖,搜索或者各種O2O應(yīng)用平臺(tái),其中的組件可以為普通的組件,也可以為O2O業(yè)務(wù)的組件,如酒店業(yè)務(wù)的組件。

在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。

所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。

上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
绵阳市| 寻乌县| 深圳市| 巴林右旗| 固始县| 扎鲁特旗| 巧家县| 上思县| 襄汾县| 延庆县| 祁连县| 霞浦县| 城市| 濮阳市| 彭州市| 荃湾区| 凭祥市| 开远市| 南平市| 张北县| 韩城市| 蒙阴县| 鸡东县| 元朗区| 鞍山市| 恩平市| 昭通市| 九龙县| 习水县| 临沧市| 耒阳市| 平利县| 通河县| 乌海市| 子洲县| 哈巴河县| 敖汉旗| 视频| 西和县| 永安市| 锡林浩特市|