一種差分包的制作方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種差分包的制作方法。
【背景技術(shù)】
[0002] 現(xiàn)有的0TA(0ver-the-Air Technology,空中下載技術(shù))升級有兩種類型,這兩種 類型分別是increment 0ΤΑ(增量/差分)和Full 0ΤΑ(整包)。
[0003] 整包升級由于升級文件的大小比較接近整個固件的鏡像,下載更新包將是一個很 漫長的過程。差分的優(yōu)勢是比較小,相對于整包來說更容易控制。容易看出,當(dāng)前各類智能 設(shè)備系統(tǒng)升級時普遍使用差分包升級,在Android系統(tǒng)上更是如此。原因就在于其體積遠(yuǎn)遠(yuǎn) 小于全量包升級。
[0004] 系統(tǒng)差分包的制作原理在于比較源版本和目標(biāo)版本中每個文件差異,并制作成 patch,進(jìn)而生成升級腳本,體現(xiàn)版本之間的增刪改差異。差分包中僅包含差異的部分以及 腳本。
[0005] 對于智能終端例如電視來說,由于智能電視通常具有多個尺寸的屏幕,即便是同 種型號,對應(yīng)不同大小的電視的硬件系統(tǒng)往往并不完全相同,例如不同尺寸的電視具有不 同的功放要求等,為了應(yīng)對此類設(shè)備,往往是對于每一個尺寸的電視均在自己的整機(jī)版本 序列上不斷完成升級更新。
[0006] 但是現(xiàn)有技術(shù)中的整機(jī)版本的差分包制作方法上,主要聚焦于如何快速的完成包 的制作,主要是體現(xiàn)在差異的比較上,也即升級文件與原文件之間差異的比較,其往往攜帶 有整機(jī)版本的硬件方面的數(shù)據(jù),例如,有三臺硬件不完全相同的設(shè)備A\B\C需要做差分升 級,升級的內(nèi)容僅為安裝的應(yīng)用APP的更新,但是由于設(shè)備的硬件信息不同,在制作差分包 時,需要制作三個版本的差分升級包,這三個版本的差分升級包的區(qū)分在于其中的腳本文 件對應(yīng)的硬件信息不同,這樣,雖然升級的軟件內(nèi)容相同,但是僅因為硬件信息不相同,不 得不制作多個版本的升級包去適配不同的硬件版本,在開發(fā)升級包的過程中,極大的浪費(fèi) 了開發(fā)成本和測試成本,占用了較多的系統(tǒng)服務(wù)器資源。
【發(fā)明內(nèi)容】
[0007] 本申請實施例通過提供一種差分包的制作方法和裝置,解決了現(xiàn)有技術(shù)中在軟件 升級內(nèi)容相同的情況下,需要為硬件信息不相同的終端制作多個版本的升級包去適配對應(yīng) 的硬件信息,浪費(fèi)開發(fā)和測試成本,并且占用了較多的系統(tǒng)服務(wù)器資源的問題,本申請使得 不同尺寸的終端設(shè)備可以共用一個版本的目標(biāo)文件。
[0008] -方面,本申請實施例提供了一種差分包的制作方法,包括:
[0009] 根據(jù)Μ臺終端設(shè)備上報的版本信息,確定所述Μ臺終端設(shè)備的當(dāng)前版本文件包中的 待升級的源文件,Μ為大于等于1的正整數(shù);
[0010]若所述Μ臺終端設(shè)備的源文件均相同,根據(jù)所述待升級的源文件的類型配置對應(yīng) 的過濾條件;
[0011] 根據(jù)所述過濾條件,將基于目標(biāo)文件和源文件制作的差分包進(jìn)行文件濾除,以使 經(jīng)濾除文件后的差分包可適配于所述Μ臺終端設(shè)備。
[0012] 進(jìn)一步的,所述根據(jù)所述待升級的源文件的類型配置對應(yīng)的過濾條件的步驟具體 為:
[0013] 獲取所述待升級的源文件所屬的系統(tǒng)架構(gòu)層;
[0014]若所述待升級的源文件所屬的系統(tǒng)架構(gòu)層位于安卓內(nèi)核層以上,則獲取待升級的 終端硬件信息對應(yīng)的patch文件;
[0015] 確定將濾除所述patch文件的指令作為所述待升級的源文件對應(yīng)的過濾條件。
[0016] 進(jìn)一步的,所述根據(jù)所述待升級的源文件的類型配置對應(yīng)的過濾調(diào)節(jié)的步驟具體 為:
[0017] 判斷所述待升級的源文件是否包含有鏡像文件;
[0018] 若否,獲則取待升級的終端硬件信息對應(yīng)的patch文件;
[0019] 確定將濾除所述patch文件的指令作為所述待升級的源文件對應(yīng)的過濾條件。
[0020] 進(jìn)一步的,所述方法進(jìn)一步包括,若所述待升級的源文件所屬的系統(tǒng)架構(gòu)層位移 安卓內(nèi)核層以下,則向服務(wù)器發(fā)送第一指令,所述第一指令用于停止制作差分包。
[0021] 進(jìn)一步的,所述方法進(jìn)一步包括,若所述待升級的源文件包含有鏡像文件,則向服 務(wù)器發(fā)送第二指令,所述第二指令用于停止制作差分包。
[0022] 進(jìn)一步的,在判斷所述待升級的源文件所屬的系統(tǒng)架構(gòu)層位于安卓內(nèi)核層以上的 步驟之后,還包括:
[0023] 若所述待升級的源文件所述的系統(tǒng)架構(gòu)層位于安卓應(yīng)用層,則向服務(wù)器發(fā)送第三 指令,所述第三指令用于指示服務(wù)器生成所述待升級的源文件對應(yīng)的差分包。
[0024] 另一方面,本申請實施例還提供了一種差分包的制作裝置,所述裝置包括:
[0025] 確定模塊,用于根據(jù)Μ臺終端設(shè)備上報的版本信息,確定所述Μ臺終端設(shè)備的當(dāng)前 版本文件包中的待升級的源文件,Μ為大于等于1的正整數(shù);
[0026] 過濾配置模塊,用于若所述Μ臺終端設(shè)備的源文件均相同,根據(jù)所述待升級的源文 件的類型配置對應(yīng)的過濾條件;
[0027] 差分包控制模塊,用于根據(jù)所述過濾條件,將基于目標(biāo)文件和源文件制作的差分 包進(jìn)行文件濾除,以使經(jīng)濾除文件后的差分包可適配于所述Μ臺終端設(shè)備。
[0028]本申請實施例中提供的一種差分包制作方法,首先根據(jù)Μ臺終端設(shè)備上報的版本 信息,確定所述Μ臺終端設(shè)備的當(dāng)前版本文件包中的待升級的源文件,其次若所述Μ臺終端 設(shè)備的源文件均相同,根據(jù)所述待升級的源文件的類型配置對應(yīng)的過濾條件;源文件相同 說明待升級的終端設(shè)備將要升級的軟件信息基本相同,在制作差分包的過程中,某些升級 過程會引入與升級無關(guān)的冗余信息,最后根據(jù)所述過濾條件,將基于目標(biāo)文件和源文件制 作的差分包進(jìn)行文件濾除,以使經(jīng)濾除文件后的差分包可適配于所述Μ臺終端設(shè)備,與現(xiàn)有 技術(shù)相比,由于增加了對待升級的源文件的類型判斷,根據(jù)類型設(shè)置不同的過濾條件,因此 對應(yīng)于一些情況的升級方式,根據(jù)過濾條件將差分包進(jìn)行文件濾除,濾除后剩余的將是可 供所有終端均可使用的差分升級包,因此本申請不需要給每一個不同尺寸的終端均分別制 作對應(yīng)的差分升級包,節(jié)省了開發(fā)和測試成本,并且不會占用較多的系統(tǒng)服務(wù)器資源。
【附圖說明】
[0029] 圖1為本申請實施例一中一種差分包的制作方法的流程圖;
[0030] 圖2為本申請實施例一中一種差分包的制作裝置的模塊圖;
【具體實施方式】
[0031] 本申請實施例通過提供一種差分包的制作方法和裝置,解決了現(xiàn)有技術(shù)中在軟件 升級內(nèi)容相同的情況下,需要為硬件信息不相同的終端制作多個版本的升級包去適配對應(yīng) 的硬件信息,浪費(fèi)開發(fā)和測試成本,并且占用了較多的系統(tǒng)服務(wù)器資源的問題,本申請使得 不同尺寸的終端設(shè)備可以共用一個版本的目標(biāo)文件。
[0032] 為了更好的理解上述技術(shù)方案,下面將結(jié)合說明書附圖以及具體的實施方式對上 述技術(shù)方案進(jìn)行詳細(xì)的說明。
[0033] 實施例一
[0034]本申請實施例提供了一種差分包的制作方法,如圖1所示,方法包括:
[0035]步驟S101:根據(jù)Μ臺終端設(shè)備上報的版本信息,確定所述Μ臺終端設(shè)備的當(dāng)前版本 文件包中的待升級的源文件,Μ為大于等于1的正整數(shù);
[0036] 步驟S102:若所述Μ臺終端設(shè)備的源文件均相同,根據(jù)所述待升級的源文件的類型 配置對應(yīng)的過濾條件;
[0037] 步驟S103:根據(jù)所述過濾條件,將基于目標(biāo)文件和源文件制作的差分包進(jìn)行文件 濾除,以使經(jīng)濾除文件后的差分包可適配于所述Μ臺終端設(shè)備。
[0038] 對于Μ臺終端設(shè)備來說,待升級的源文件內(nèi)容相同,在服務(wù)器端通過編譯工具進(jìn)行 編譯時,使用差分升級的好處顯而易見,那么你不需要下載完整的8Μ文件,只需要下載更新 部分就可以,而更新部分可能只有3、4Μ,可以很大程度上減少流量的損失?,F(xiàn)有的編譯方式 也就是差分升級或者叫增量升級的原理很簡單,即首先將終端的舊版本與新版本做差分, 得到更新的部分的補(bǔ)丁,例如舊版本的源文件有5Μ,新版本的有8Μ,更新的部分則可能只有 3Μ左右(這里需要說明的是,得到的差分包大小并不是簡單的相減,因為其實需要包含一些 上下文相關(guān)的東西,也即會引入對應(yīng)的硬件信息),例如一臺屏幕30寸的電視Α和一臺屏幕 40寸的電視B都需要進(jìn)行差分升級,雖然他們升級的內(nèi)容可能是系統(tǒng)級動態(tài)庫文件,例如功 放的庫文件,在編譯時,由于編譯器的工作原理,會不可避免的將終端的尺