本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種智能設(shè)備軟件升級(jí)的方法及系統(tǒng)。
背景技術(shù):
隨著智能設(shè)備的日漸成熟與普及,智能手機(jī)被廣泛應(yīng)用,人們習(xí)慣于用智能手機(jī)娛樂、學(xué)習(xí)甚至工作。由于人們的需求日益增多,為了滿足用戶的各種需求,智能手機(jī)的軟件升級(jí)也越來(lái)越頻繁。一般情況下,用戶都會(huì)使用FOTA(Firmware Over-The-Air,空中下載軟件升級(jí)),通過云端升級(jí)技術(shù),為具有連網(wǎng)功能的設(shè)備:例如手機(jī)、平板電腦、便攜式媒體播放器、移動(dòng)互聯(lián)網(wǎng)設(shè)備等提供固件升級(jí)服務(wù)。
然而,升級(jí)過程中,用戶必須切換到“恢復(fù)模式”(recovery模式)完成所有升級(jí)操作。在“恢復(fù)模式”下,用戶不能正常使用設(shè)備上所有的應(yīng)用程序,如果新舊軟件版本差異較大,用戶必須長(zhǎng)時(shí)間等待設(shè)備升級(jí)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種智能設(shè)備軟件升級(jí)的方法及系統(tǒng),能夠減少恢復(fù)模式下軟件升級(jí)的時(shí)間,解決智能設(shè)備軟件升級(jí)的過程中,用戶長(zhǎng)時(shí)間不能正常使用智能設(shè)備的問題。
為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是:提供一種智能設(shè)備軟件升級(jí)的方法,所述方法包括:獲取用于所述智能設(shè)備升級(jí)的第一文件;基于所述第一文件讀取所述智能設(shè)備中舊版本文件數(shù)據(jù);在所述智能設(shè)備的用戶使用模式下將所述舊版本文件數(shù)據(jù)與所述第一文件進(jìn)行運(yùn)算,得到第二文件;在所述智能設(shè)備的恢復(fù)模式下安裝所述第二文件。
其中,所述獲取用于所述智能設(shè)備升級(jí)的第一文件,包括:建立指定文件夾;將所述第一文件存入所述指定文件夾。
其中,所述第二文件保存于所述指定文件夾。
其中,進(jìn)一步包括:判斷所述智能設(shè)備的剩余可用存儲(chǔ)空間是否小于閾值;若小于所述閾值,則不執(zhí)行所述在所述智能設(shè)備的恢復(fù)模式下安裝所述第二文件的動(dòng)作。
其中,所述基于所述第一文件讀取所述智能設(shè)備中舊版本文件數(shù)據(jù)包括:從所述第一文件的腳本中讀取腳本語(yǔ)句;得到此腳本語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍,進(jìn)而讀取所述舊版本文件數(shù)據(jù)。
為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是:提供一種智能設(shè)備軟件升級(jí)的系統(tǒng),包括:獲取模塊,獲取用于所述智能設(shè)備升級(jí)的第一文件;讀取模塊,基于所述第一文件讀取所述智能設(shè)備中舊版本文件數(shù)據(jù);運(yùn)算模塊,在所述智能設(shè)備的用戶使用模式下將所述舊版本文件數(shù)據(jù)與所述第一文件進(jìn)行運(yùn)算,得到第二文件;安裝模塊,在所述智能設(shè)備的恢復(fù)模式下安裝所述第二文件。
其中,所述獲取模塊包括:新建單元,用于建立指定文件夾;第一存儲(chǔ)單元,用于將所述第一文件存入所述指定文件夾。
其中,獲取模塊進(jìn)一步包括:第二存儲(chǔ)單元,用于將所述第二文件保存于所述指定文件夾。
其中,所述系統(tǒng)進(jìn)一步包括:判斷模塊,判斷所述智能設(shè)備的剩余可用存儲(chǔ)空間是否小于閾值,若小于所述閾值,則不執(zhí)行所述在所述智能設(shè)備的恢復(fù)模式下安裝所述第二文件的動(dòng)作。
其中,所述讀取模塊包括:第一讀取單元,用于從所述第一文件的腳本中讀取腳本語(yǔ)句;第二讀取單元,得到此腳本語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍,進(jìn)而讀取所述舊版本文件數(shù)據(jù)。
本發(fā)明的有益效果是:通過在用戶使用模式下,獲取用于安裝的第二文件,進(jìn)而減少恢復(fù)模式下軟件升級(jí)的時(shí)間,解決智能設(shè)備軟件升級(jí)的過程中,用戶長(zhǎng)時(shí)間不能正常使用智能設(shè)備的問題。
附圖說明
圖1是本發(fā)明智能設(shè)備升級(jí)方法第一實(shí)施例的流程示意圖;
圖2是本發(fā)明智能設(shè)備升級(jí)方法第二實(shí)施例的流程示意圖;
圖3是本發(fā)明用戶使用模式下一實(shí)施例的邏輯流程圖;
圖4是本發(fā)明本發(fā)明恢復(fù)模式下一實(shí)施例的邏輯流程圖;
圖5是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)第一實(shí)施例的結(jié)構(gòu)示意圖;
圖6是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)第一實(shí)施例的另一結(jié)構(gòu)示意圖;
圖7是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)第二實(shí)施例的結(jié)構(gòu)示意圖;
圖8是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)另一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
請(qǐng)參閱圖1,圖1是本發(fā)明智能設(shè)備升級(jí)方法一實(shí)施例的流程示意圖。需注意的是,若有實(shí)質(zhì)上相同的結(jié)果,本發(fā)明的方法并不以圖1所示的流程順序?yàn)橄?。如圖1所示,該方法包括如下步驟:
S101:獲取用于智能設(shè)備升級(jí)的第一文件。
其中,用戶可以使用FOTA(Firmware Over-The-Air,空中下載軟件升級(jí)),為具有連網(wǎng)功能的智能設(shè)備:例如手機(jī)、平板電腦、便攜式媒體播放器、移動(dòng)互聯(lián)網(wǎng)設(shè)備等,從云端服務(wù)器中下載用于智能設(shè)備升級(jí)的第一文件。用戶還可以通過數(shù)據(jù)線、藍(lán)牙等數(shù)據(jù)傳輸工具從其他服務(wù)器或相關(guān)智能設(shè)備中拷貝用于智能設(shè)備升級(jí)的第一文件。
其中,上述第一文件可以是用于版本定向升級(jí)的差分升級(jí)包。一般情況下,用于智能設(shè)備升級(jí)的文件有兩種形式:完整升級(jí)包和差分升級(jí)包,差分升級(jí)包是系統(tǒng)根據(jù)檢測(cè)新版本升級(jí)文件與前一版本升級(jí)文件之間的差異,采用差分處理等算法提取需要升級(jí)的差異部分而形成的差分升級(jí)包,因此,上述差分升級(jí)包只適用于前一版本文件升級(jí)。例如,版本V4.4的差分升級(jí)包只能用于當(dāng)前版本V4.3的智能設(shè)備的升級(jí)。
S102:基于第一文件讀取智能設(shè)備中舊版本文件數(shù)據(jù)。
其中,上述第一文件升級(jí)包中包含智能設(shè)備舊版本文件數(shù)據(jù)存儲(chǔ)的范圍。通過讀取第一文件升級(jí)包的腳本語(yǔ)句,獲取此語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍,根據(jù)存儲(chǔ)范圍從系統(tǒng)固件分區(qū)中,讀取智能設(shè)備舊版本文件數(shù)據(jù)。
S103:智能設(shè)備的用戶使用模式下將舊版本文件數(shù)據(jù)與第一文件進(jìn)行運(yùn)算,得到第二文件。
步驟S101中涉及,獲取用于智能設(shè)備升級(jí)的第一文件可以是用于版本定向升級(jí)的差分升級(jí)包,將上述差分升級(jí)包與舊版本文件數(shù)據(jù)進(jìn)行運(yùn)算,進(jìn)而得到完整的升級(jí)文件,即第二文件。其中,獲取第二文件的運(yùn)算方法可以是bspatch算法或其它算法。本發(fā)明中,在用戶使用模式下,用戶可以正常使用智能設(shè)備中所有APP軟件或其它應(yīng)用程序。
S104:在智能設(shè)備的恢復(fù)模式下安裝第二文件。
其中,智能設(shè)備的恢復(fù)模式(Recovery Mode)是指一種可以對(duì)智能設(shè)備內(nèi)部的數(shù)據(jù)或系統(tǒng)進(jìn)行修改的模式,在該模式下,用戶可以實(shí)現(xiàn)智能設(shè)備系統(tǒng)軟件升級(jí)。然而,在恢復(fù)模式下,用戶不可以使用任何APP軟件或其它應(yīng)用程序。
通過上述方法,在用戶使用模式下,獲取用于安裝的第二文件,能夠減少恢復(fù)模式下軟件升級(jí)的時(shí)間,解決智能設(shè)備軟件升級(jí)的過程中,用戶長(zhǎng)時(shí)間不能正常使用智能設(shè)備的問題。
圖2是本發(fā)明智能設(shè)備升級(jí)方法第二實(shí)施例的流程示意圖。本實(shí)施例是在智能設(shè)備升級(jí)方法第一實(shí)施例的基礎(chǔ)上,進(jìn)一步包括步驟S204。
S204:判斷智能設(shè)備的剩余可用存儲(chǔ)空間是否小于閾值。
S205:在智能設(shè)備的恢復(fù)模式下安裝第二文件。
當(dāng)智能設(shè)備的剩余可用存儲(chǔ)空間大于或等于所述閾值,執(zhí)行步驟S205,當(dāng)智能設(shè)備的剩余可用存儲(chǔ)空間小于所述閾值,跳過步驟S205直接結(jié)束智能設(shè)備的升級(jí)。例如,當(dāng)智能設(shè)備的剩余可用存儲(chǔ)空間大于或等于15%時(shí),智能設(shè)備自動(dòng)重啟,并進(jìn)入恢復(fù)模式下安裝第二文件;當(dāng)智能設(shè)備的剩余可用存儲(chǔ)空間小于15%時(shí),結(jié)束智能設(shè)備的升級(jí)。
通過上述方法,可以判斷智能設(shè)備是否有足夠的剩余可用存儲(chǔ)空間用于存儲(chǔ)第二文件或升級(jí)過程中產(chǎn)生的數(shù)據(jù)信息,減少在恢復(fù)模式上安裝第二文件時(shí)由于空間不足而產(chǎn)生的問題。
為了更好的理解本發(fā)明,下面分別描述用戶使用模式和恢復(fù)模式下的邏輯流程圖。
如圖3所示,圖3是本發(fā)明用戶使用模式下一實(shí)施例的邏輯流程圖。本實(shí)施例中,在發(fā)明用戶使用模式下依次執(zhí)行以下步驟:
S301:開始。
S302:建立指定文件夾。
其中,如果上述指定文件夾已存在,清除文件夾中所有文件。
S303:獲取用于智能設(shè)備升級(jí)的第一文件。
S304:將第一文件存入指定文件夾。
S305:從第一文件的腳本中讀取腳本語(yǔ)句。
S306:得到上述腳本語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍,進(jìn)而讀取舊版本文件數(shù)據(jù)。
S307:用戶使用模式下將舊版本文件數(shù)據(jù)與第一文件進(jìn)行運(yùn)算,得到第二文件。
S308:將第二文件保存于上述指定文件夾。其中,可以將第二文件以“系統(tǒng)固件分區(qū)存儲(chǔ)范圍”進(jìn)行文件命名,便于恢復(fù)模式下正確識(shí)別該文件。例如“1000-1099”。
S309:判斷智能設(shè)備的剩余可用存儲(chǔ)空間是否小于閾值。如果小于閾值,執(zhí)行步驟S311,結(jié)束安裝;如果大于或等于閾值,則執(zhí)行步驟S310。
S310:判斷第一文件的腳本語(yǔ)句是否處理完成。如果處理完成,執(zhí)行步驟S311,如果第一文件的腳本語(yǔ)句沒有處理完成,返回繼續(xù)執(zhí)行步驟S305。
S311:結(jié)束。
本實(shí)施例中,當(dāng)步驟S309判斷智能設(shè)備的剩余可用存儲(chǔ)空間小于閾值,例如:15%,執(zhí)行步驟S311結(jié)束智能設(shè)備的升級(jí),同時(shí),可以用不同方式提醒用戶清理存儲(chǔ)空間,便于繼續(xù)完成智能設(shè)備升級(jí)的過程。例如以對(duì)話框的方式提醒用戶。當(dāng)步驟310判斷第一文件的腳本語(yǔ)句處理完成,執(zhí)行步驟S311,智能設(shè)備自動(dòng)重啟并進(jìn)入恢復(fù)模式,繼續(xù)完成智能設(shè)備的升級(jí),也可以為用戶提供可選界面,用戶可以選擇立即重啟并進(jìn)入恢復(fù)模式,或暫時(shí)不重啟智能設(shè)備,結(jié)束設(shè)備升級(jí)。
圖4是本發(fā)明恢復(fù)模式下一實(shí)施例的邏輯流程圖。
S401:開始。
S402:從第一文件的腳本中讀取腳本語(yǔ)句。
S403:得到上述腳本語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍。
S404:判斷指定文件夾中是否有以系統(tǒng)固件分區(qū)存儲(chǔ)范圍命名的第二文件。如果上述文件存在,執(zhí)行步驟S405,否則,執(zhí)行步驟S410,結(jié)束安裝。
S405:讀取指定文件夾中對(duì)應(yīng)的第二文件,并計(jì)算校驗(yàn)值。
S406:判斷校驗(yàn)值是否正確。如果校驗(yàn)值正確,執(zhí)行步驟S407,否則執(zhí)行步驟S410,結(jié)束安裝。
S407:安裝第二文件。
S408:將第二文件存儲(chǔ)到系統(tǒng)固件分區(qū)對(duì)應(yīng)的位置。
S409:判斷第一文件的腳本語(yǔ)句是否處理完成。如果處理完成,執(zhí)行步驟S410,如果第一文件的腳本語(yǔ)句沒有處理完成,返回繼續(xù)執(zhí)行步驟S402。
S410:結(jié)束。
本實(shí)施例中,如果步驟S404中,沒有發(fā)現(xiàn)用于智能設(shè)備升級(jí)的第二文件,用戶可以選擇結(jié)束安裝或者通過執(zhí)行圖3中,用戶使用模式下的步驟S303~S307,重新獲取第二文件繼續(xù)完成智能設(shè)備的升級(jí)。
圖5是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)第一實(shí)施例的結(jié)構(gòu)示意圖。所述系統(tǒng)包括:獲取模塊11、讀取模塊12、運(yùn)算模塊13及安裝模塊14。其中,
獲取模塊11,獲取用于智能設(shè)備升級(jí)的第一文件。
讀取模塊12,基于第一文件讀取智能設(shè)備中舊版本文件數(shù)據(jù)。
運(yùn)算模塊13,用于智能設(shè)備的用戶使用模式下將舊版本文件數(shù)據(jù)與第一文件進(jìn)行運(yùn)算,得到第二文件。
安裝模塊14,用于智能設(shè)備的恢復(fù)模式下安裝所述第二文件。
如圖6所示,獲取模塊11進(jìn)一步包括:新建單元111,用于建立指定文件夾;第一存儲(chǔ)單元112,用于將所述第一文件存入所述指定文件夾;第二存儲(chǔ)單元113,用于將所述第二文件保存于所述指定文件夾。讀取模塊12進(jìn)一步包括:第一讀取單元121,用于從所述第一文件的腳本中讀取腳本語(yǔ)句;第二讀取單元122,得到此腳本語(yǔ)句對(duì)應(yīng)的系統(tǒng)固件分區(qū)存儲(chǔ)范圍,進(jìn)而讀取所述舊版本文件數(shù)據(jù)。
其中,該智能設(shè)備升級(jí)系統(tǒng)可以執(zhí)行上述方法中智能設(shè)備升級(jí)的執(zhí)行步驟。相關(guān)內(nèi)容請(qǐng)參見上述方法中的詳細(xì)說明,在此不再贅敘。
圖7是本發(fā)明智能設(shè)備升級(jí)系統(tǒng)第二實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例是在智能設(shè)備升級(jí)系統(tǒng)第一實(shí)施例的基礎(chǔ)上,進(jìn)一步包括判斷模塊24。其中,判斷模塊24用于判斷智能設(shè)備的剩余可用存儲(chǔ)空間是否小于閾值,若小于所述閾值,則不執(zhí)行在智能設(shè)備的恢復(fù)模式下安裝第二文件的步驟。
如圖8所示,本實(shí)施例中,該處理裝置包括:接收器110、存儲(chǔ)器120及處理器130,接收器110及存儲(chǔ)器120通過總線與處理器130相連。
接收器110用于接收數(shù)據(jù)或智能設(shè)備用于升級(jí)的文件,如上述實(shí)施例中涉及的第一文件。
存儲(chǔ)器120用于處理存儲(chǔ)處理器130工作所需要的指令或數(shù)據(jù),也可以用于存儲(chǔ)接收器110接收的數(shù)據(jù)或文件,如上述實(shí)施例中涉及的第一文件、第二文件等。
處理器130用于執(zhí)行在用戶使用模式下將舊版本文件數(shù)據(jù)與第一文件進(jìn)行運(yùn)算,得到第二文件;在智能設(shè)備的恢復(fù)模式下安裝第二文件。所述處理器130執(zhí)行的動(dòng)作可以進(jìn)一步包括上述智能設(shè)備軟件升級(jí)方法的任一實(shí)施例。
在本發(fā)明所提供的幾個(gè)實(shí)施方式中,應(yīng)該理解到,所揭露的方法或系統(tǒng),可以通過其它的方式實(shí)現(xiàn)。例如,智能設(shè)備升級(jí)系統(tǒng)可以是安裝在智能設(shè)備中可供用戶操作的可視化APP或應(yīng)用程序,也可以是后臺(tái)運(yùn)行的獨(dú)立程序。
以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。