本公開涉及網絡技術領域,尤其涉及一種升級方法及裝置。
背景技術:
為了修復Bug(漏洞)、改善功能以及添加新的功能,經常需要對系統(tǒng)或應用進行升級,以更好地滿足用戶的使用需求。在空中下載技術(Over-the-Air Technology,OTA)中,運營商將應用升級包或系統(tǒng)升級包置于OTA服務器中,終端或服務器基于當前版本與新版本之間的區(qū)別,計算當前版本與新版本之間的差量,根據(jù)該差量生成差量OTA包,終端通過下載并安裝該差量OTA包,實現(xiàn)從當前版本到新版本的升級。
對于包含預裝應用的系統(tǒng)如Android系統(tǒng)而言,通過OTA技術進行系統(tǒng)升級的具體方法可以為:Android系統(tǒng)的系統(tǒng)分區(qū)劃分為若干個塊,每個塊大小固定,在需要將該Android系統(tǒng)從當前版本升級為新版本時,將該當前版本的系統(tǒng)分區(qū)的每一個塊與新版本的對應塊進行比較,如果一樣,標記為相同,如果不一樣,計算差量并存儲該差量,將該系統(tǒng)分區(qū)的每個塊比較完以后,獲取當前版本與新版本之間的差量集合,根據(jù)該差量集合獲取差量OTA包,終端根據(jù)該差量OTA包即可將該Android系統(tǒng)從當前版本升級為新版本。
技術實現(xiàn)要素:
為克服相關技術中存在的問題,本公開提供一種升級方法及裝置。
根據(jù)本公開實施例的第一方面,提供一種升級方法,包括:
獲取終端當前系統(tǒng)的版本信息;
根據(jù)所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量,所述第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù);
如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成升級包,所述第二分區(qū)用于存儲至少一個預裝應用;
向所述終端發(fā)送所述升級包。
在本公開的第一方面的第一種可能實現(xiàn)方式中,所述方法還包括:
所述如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成升級包之前,對于所述目標系統(tǒng)中的任一預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中是否存在所述預裝應用;
如果所述當前系統(tǒng)的第二分區(qū)中不存在所述預裝應用,確定所述預裝應用為所述待更新預裝應用,執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟;
如果所述當前系統(tǒng)的第二分區(qū)中存在所述預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用是否一致,如果不一致,則確定所述預裝應用為所述待更新預裝應用,執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟。
在本公開的第一方面的第二種可能實現(xiàn)方式中,所述根據(jù)所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量之后,所述方法還包括:
如果檢測到所述目標系統(tǒng)的第二分區(qū)中不存在所述待更新預裝應用,根據(jù)所述第一分區(qū)差量生成所述升級包。
在本公開的第一方面的第三種可能實現(xiàn)方式中,所述第二分區(qū)以文件為粒度存儲所述至少一個預裝應用。
在本公開的第一方面的第四種可能實現(xiàn)方式中,所述第一分區(qū)以預設大小的塊為粒度存儲所述系統(tǒng)數(shù)據(jù)。
根據(jù)本公開實施例的第二方面,提供一種升級裝置,包括:
獲取模塊,用于獲取終端當前系統(tǒng)的版本信息;
比較模塊,用于根據(jù)所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量,所述第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù);
生成模塊,用于如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成升級包,所述第二分區(qū)用于存儲至少一個預裝應用;
發(fā)送模塊,用于向所述終端發(fā)送所述升級包,以使得所述終端根據(jù)所述升級包從所述當前系統(tǒng)升級至所述目標系統(tǒng)。
在本公開的第二方面的第一種可能實現(xiàn)方式中,所述裝置還包括:
檢測模塊,用于對于所述目標系統(tǒng)中的任一預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中是否存在所述預裝應用;
確定模塊,用于如果所述當前系統(tǒng)的第二分區(qū)中不存在所述預裝應用,確定所述預裝應用為所述待更新預裝應用;
所述生成模塊用于執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟;
所述檢測模塊還用于如果所述當前系統(tǒng)的第二分區(qū)中存在所述預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用是否一致;
所述確定模塊還用于如果所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用不一致,則確定所述預裝應用為所述待更新預裝應用;
所述生成模塊用于執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟。
在本公開的第二方面的第二種可能實現(xiàn)方式中,所述生成模塊還用于:
如果檢測到所述目標系統(tǒng)的第二分區(qū)中不存在所述待更新預裝應用,根據(jù)所述第一分區(qū)差量生成所述升級包。
在本公開的第二方面的第三種可能實現(xiàn)方式中,所述第二分區(qū)以文件為粒度存儲所述至少一個預裝應用。
在本公開的第二方面的第四種可能實現(xiàn)方式中,所述第一分區(qū)以預設大小的塊為粒度存儲所述系統(tǒng)數(shù)據(jù)。
第三方面,還提供了一種升級裝置,包括:
處理器;
用于存儲處理器可執(zhí)行的指令的存儲器;
其中,該處理器被配置為:
獲取終端當前系統(tǒng)的版本信息;
根據(jù)所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量,所述第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù);
如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成升級包,所述第二分區(qū)用于存儲至少一個預裝應用;
向所述終端發(fā)送所述升級包。
本公開實施例提供的技術方案帶來的有益效果是:
由于預裝應用與系統(tǒng)一樣都存儲在系統(tǒng)分區(qū)中,所以在用戶將任一預裝應用刪除后,會導致原來用于存儲該預裝應用的塊中的數(shù)據(jù)發(fā)生變化,進而導致無法根據(jù)塊中數(shù)據(jù)的區(qū)別計算差量,也就無法完成系統(tǒng)升級,導致系統(tǒng)升級成功率低。本公開通過將系統(tǒng)數(shù)據(jù)和預裝應用分別存儲于第一分區(qū)和第二分區(qū),采用不同的升級方法分別對系統(tǒng)及預裝應用進行升級,既能確保在對系統(tǒng)升級時減小對帶寬和對終端內存的占用率,還能夠避免由于預裝應用發(fā)生改變導致無法完成系統(tǒng)升級的問題,進而能夠提高系統(tǒng)升級成功率。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
圖1是根據(jù)一示例性實施例示出的一種升級方法的流程圖;
圖2A是根據(jù)一示例性實施例示出的一種升級方法的流程圖;
圖2B是根據(jù)一示例性實施例示出的一種分區(qū)存儲示意圖;
圖3是根據(jù)一示例性實施例示出的一種升級裝置框圖;
圖4是根據(jù)一示例性實施例示出的一種升級裝置400的框圖。
具體實施方式
為使本公開的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本公開實施方式作進一步地詳細描述。
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種升級方法的流程圖,如圖1所示,升級方法用于服務器中,包括以下步驟。
在步驟101中,獲取終端當前系統(tǒng)的版本信息。
在步驟102中,根據(jù)當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量,第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù)。
在步驟103中,如果檢測到目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)第一分區(qū)差量和待更新預裝應用,生成升級包,第二分區(qū)用于存儲至少一個預裝應用。
在步驟104中,向終端發(fā)送所述升級包。
本公開實施例提供的方法,通過將系統(tǒng)數(shù)據(jù)和預裝應用分別存儲于終端的第一分區(qū)和第二分區(qū),采用不同的升級方法分別對系統(tǒng)及預裝應用進行升級,既能確保在對系統(tǒng)升級時減小對帶寬和對終端內存的占用率,還能夠避免由于預裝應用發(fā)生改變導致無法完成系統(tǒng)升級的問題,進而能夠提高系統(tǒng)升級成功率。
在本公開的第一種可能實現(xiàn)方式中,所述如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成升級包之前,所述方法還包括:
對于所述目標系統(tǒng)中的任一預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中是否存在所述預裝應用;
如果所述當前系統(tǒng)的第二分區(qū)中不存在所述預裝應用,確定所述預裝應用為所述待更新預裝應用,執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟;
如果所述當前系統(tǒng)的第二分區(qū)中存在所述預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用是否一致,如果不一致,則確定所述預裝應用為所述待更新預裝應用,執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟。
在本公開的第二種可能實現(xiàn)方式中,所述根據(jù)所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量之后,所述方法還包括:
如果檢測到所述目標系統(tǒng)的第二分區(qū)中不存在所述待更新預裝應用,根據(jù)所述第一分區(qū)差量生成所述升級包。
在本公開的第三種可能實現(xiàn)方式中,所述第二分區(qū)以文件為粒度存儲所述至少一個預裝應用。
在本公開的第四種可能實現(xiàn)方式中,所述第一分區(qū)以預設大小的塊為粒度存儲所述系統(tǒng)數(shù)據(jù)。
上述所有可選技術方案,可以采用任意結合形成本公開的可選實施例,在此不再一一贅述。
圖2A是根據(jù)一示例性實施例示出的一種升級方法的流程圖。該實施例的執(zhí)行主體可以為服務器,參照圖2A,該實施例具體包括:
在步驟201中,獲取終端當前系統(tǒng)的版本信息。
在本公開實施例中,可以在接收到終端的系統(tǒng)升級請求時,獲取該終端當前系統(tǒng)的版本信息,該系統(tǒng)升級請求用于向服務器請求升級該終端當前系統(tǒng),該系統(tǒng)升級請求至少攜帶該終端當前系統(tǒng)的版本信息,以使得服務器能夠獲知該終端當前系統(tǒng)的版本信息,其中,該系統(tǒng)的版本信息可以是系統(tǒng)的版本序列號,也可以是其他能夠唯一標識系統(tǒng)版本的信息,本公開實施例對此也不作限定。
終端向服務器發(fā)送該系統(tǒng)升級請求的方法可以為:當終端接收或檢測到服務器發(fā)送的系統(tǒng)更新消息時,顯示提醒信息,以提醒用戶是否更新當前系統(tǒng),如果檢測到用戶對確定更新選項的觸發(fā)操作時,向服務器發(fā)送系統(tǒng)升級請求,以實現(xiàn)更新該終端當前系統(tǒng)的目的。其中,該提醒消息可以攜帶目標系統(tǒng)的版本信息,相應地,該系統(tǒng)升級請求也可以攜帶該終端本次升級的目標系統(tǒng)的版本信息。
在步驟202中,根據(jù)該當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將該當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與該目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到該當前系統(tǒng)與該目標系統(tǒng)的第一分區(qū)差量,該第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù)。
在本公開實施例中,將系統(tǒng)數(shù)據(jù)和預裝應用分別存儲于終端系統(tǒng)分區(qū)的兩個不同的分區(qū)中,該第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù),該第二分區(qū)用于存儲至少一個預裝應用;以使得服務器能夠采用不同的升級方法對系統(tǒng)和預裝應用進行升級。該第一分區(qū)和該第二分區(qū)為系統(tǒng)分區(qū)的兩個部分,該系統(tǒng)分區(qū)是指終端中用于終端當前系統(tǒng)的系統(tǒng)數(shù)據(jù)和至少一個預裝應用的存儲空間。
將該當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與該目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,將數(shù)據(jù)不同的部分進行標記,并記錄不同數(shù)據(jù)之間的差值,該差值即為該當前系統(tǒng)與該目標系統(tǒng)的第一分區(qū)差量。
在本公開另一實施例中,該第一分區(qū)以預設大小的塊為粒度存儲該系統(tǒng)數(shù)據(jù)。該預設大小可以設置為任一數(shù)值,如4Kb(Kilobyte,千字節(jié)),本公開實施例對此不作限定。
通過以預設大小的塊為粒度存儲該系統(tǒng)數(shù)據(jù),能夠實現(xiàn)在升級時,對每個塊中所存儲的系統(tǒng)數(shù)據(jù)進行一一對比,進而確定每個塊的差值,根據(jù)該差值生成的升級包相對于基于目標系統(tǒng)的全部系統(tǒng)數(shù)據(jù)生成的升級包而言,具有數(shù)據(jù)量小的特點,進而能夠減小對帶寬及終端內存的占用,且能提高升級效率。
如圖2B所示,該當前系統(tǒng)的第一分區(qū)和該目標系統(tǒng)的第一分區(qū)分別包括若干個塊,將該若干個塊中每個塊中的數(shù)據(jù)進行一一對比,如果對應兩個塊中的數(shù)據(jù)一致,則標記為相同,如果對應兩個塊中的數(shù)據(jù)不一致,計算該兩個塊之間的差值,該終端當前系統(tǒng)的第一分區(qū)和該目標系統(tǒng)的第一分區(qū)的差值集合即為該第一分區(qū)差值。
通過將該當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與該目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,以得到該當前系統(tǒng)與該目標系統(tǒng)的第一分區(qū)差量的方式對該終端系統(tǒng)進行升級,能夠避免將該目標系統(tǒng)的系統(tǒng)數(shù)據(jù)以全部發(fā)送的方式升級系統(tǒng)導致的對帶寬及終端內存占用率高的問題。
在步驟203中,檢測該目標系統(tǒng)的第二分區(qū)中是否存在待更新預裝應用,如果存在,執(zhí)行步驟204;如果不存在,執(zhí)行步驟205。
該待更新預裝應用是指在該終端當前系統(tǒng)中需要更新的預裝應用;該預裝應用是指系統(tǒng)自帶的應用。檢測該目標系統(tǒng)的第二分區(qū)中是否存在待更新預裝應用,也即是,檢測該終端當前系統(tǒng)的第二分區(qū)中是否存在需要更新的預裝應用的方法可以包括以下兩種:
第一種、獲取該終端當前系統(tǒng)的第二分區(qū)中每個預裝應用的應用標識,對于該目標系統(tǒng)中的任一預裝應用,獲取該預裝應用的應用標識,根據(jù)該預裝應用的應用標識,檢測該終端當前系統(tǒng)中是否存在對應預裝應用,如果檢測到在該終端當前系統(tǒng)中不存在該預裝應用,則確定該目標系統(tǒng)的第二分鐘中存在待更新的預裝應用。其中,該應用標識可以為應用名稱、也可以是其他能夠唯一標識對應應用的信息,本公開實施例對此不作限定。
第二種、獲取該終端當前系統(tǒng)的第二分區(qū)中每個預裝應用的版本信息及該目標系統(tǒng)的第二分區(qū)中每個預裝應用的版本信息,將該當前系統(tǒng)與該目標系統(tǒng)的對應預裝應用的版本信息進行比較,對于任一預裝應用,如果該目標系統(tǒng)中的版本信息較該終端當前系統(tǒng)的版本信息新,則確定該目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用。
檢測該目標系統(tǒng)的第二分區(qū)中是否存在待更新預裝應用的過程,可以采用上述兩種方法中的任一種方法實現(xiàn),也可以采用上述兩種方法的結合實現(xiàn),或者采用其他方法進行檢測,本公開實施例對此不作限定。
通過檢測該目標系統(tǒng)的第二分區(qū)中是否存在待更新預裝應用,以使得系統(tǒng)在檢測到該目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用時,能夠根據(jù)檢測到的該待更新預裝應用,實現(xiàn)對終端當前系統(tǒng)中的預裝應用的更新。
在本公開另一實施例中,該第二分區(qū)以文件為粒度存儲該至少一個預裝應用。如圖2B所示,該以文件為粒度存儲該至少一個預裝應用,是指將該至少一個預裝應用以文件的單位存儲在該第二分區(qū)中。
通過以文件為粒度存儲該至少一個預裝應用,能夠實現(xiàn)以基于文件完整升級的方式,對系統(tǒng)自帶的預裝應用進行更新,相對于以塊為粒度進行存儲的方式,能夠提高升級成功率和效率。
在步驟204中,如果檢測到該目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)該第一分區(qū)差量和該待更新預裝應用,生成升級包,執(zhí)行步驟206。
在檢測到該目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用時,生成升級包的方法可以為:對于該目標系統(tǒng)中的任一預裝應用,檢測該當前系統(tǒng)的第二分區(qū)中是否存在該預裝應用;如果該當前系統(tǒng)的第二分區(qū)中不存在該預裝應用,確定該預裝應用為該待更新預裝應用,執(zhí)行根據(jù)該第一分區(qū)差量和該待更新預裝應用,生成該升級包的步驟;如果該當前系統(tǒng)的第二分區(qū)中存在該預裝應用,檢測該當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用是否一致,如果不一致,則確定該預裝應用為該待更新預裝應用,執(zhí)行根據(jù)該第一分區(qū)差量和該待更新預裝應用,生成該升級包的步驟。
其中,該當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用是否一致,可以是指該當前系統(tǒng)和該目標系統(tǒng)對應預裝應用的版本信息是否一致,也可以是指該當前系統(tǒng)和該目標系統(tǒng)對應預裝應用的應用數(shù)據(jù)是否一致,本公開實施例對此不作限定。其中,該應用數(shù)據(jù)是指應用的安裝包中的數(shù)據(jù)。
當指的是該當前系統(tǒng)和該目標系統(tǒng)對應預裝應用的版本信息是否一致時,則對該當前系統(tǒng)和該目標系統(tǒng)中對應預裝應用的版本信息進行比較,如果該對應預裝應用的版本信息相同,則確定當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用一致,如果該對應預裝應用的版本信息不同,則確定當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用不一致。
當指的是該當前系統(tǒng)和該目標系統(tǒng)對應預裝應用的應用數(shù)據(jù)是否一致時,獲取該當前系統(tǒng)和該目標系統(tǒng)對應預裝應用,將該對應預裝應用的應用數(shù)據(jù)進行比較,如果對應預裝應用的應用數(shù)據(jù)相同,則確定當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用一致,如果該對應預裝應用的應用數(shù)據(jù)不同,則確定當前系統(tǒng)的第二分區(qū)中的該預裝應用與該目標系統(tǒng)中的該預裝應用不一致。
在本公開另一實施例中,如果檢測到該目標系統(tǒng)的第二分區(qū)中存在該待更新預裝應用,向終端發(fā)送提示消息,該提示消息用于提醒用戶是否需要對終端當前系統(tǒng)中的預裝應用進行更新,該提示消息至少包括確定更新選項和取消更新選項,在終端檢測到用戶對確定更新選項的觸發(fā)操作時,向服務器發(fā)送預裝應用更新請求,服務器在接收到終端發(fā)送的預裝應用更新請求時,執(zhí)行根據(jù)該第一分區(qū)差量和該待更新預裝應用,生成升級包的步驟,在終端檢測到用戶對取消更新選項的觸發(fā)操作時,向服務器發(fā)送取消預裝應用更新請求,服務器在接收到終端發(fā)送的取消預裝應用更新請求時,執(zhí)行根據(jù)該第一分區(qū)差量生成升級包的步驟。
通過在檢測到該目標系統(tǒng)的第二分區(qū)中存在該待更新預裝應用時,向終端發(fā)送用于提醒用戶是否需要對終端當前系統(tǒng)中的預裝應用進行更新的提示消息,能夠使用戶自行選擇是否對終端當前系統(tǒng)中的預裝應用進行更新,避免強行更新預裝應用給用戶的正常使用造成不便,進一步提高用戶體驗。
在步驟205中,如果檢測到該目標系統(tǒng)的第二分區(qū)中不存在該待更新預裝應用,根據(jù)該第一分區(qū)差量生成該升級包。
如果檢測到該目標系統(tǒng)的第二分區(qū)中不存在該待更新預裝應用,表示該終端當前系統(tǒng)中的預裝應用均為最新版本,無需進行升級,在這種情況下,只需根據(jù)步驟202獲取到的第一分區(qū)差量生成升級包,以實現(xiàn)對該終端當前系統(tǒng)的升級。
在步驟206中,向該終端發(fā)送該升級包,以使得該終端根據(jù)該升級包從該當前系統(tǒng)升級至該目標系統(tǒng)。
服務器根據(jù)該終端的系統(tǒng)升級請求生成升級包后,向終端返回該升級包,以使得該終端能夠通過安裝該升級包達到系統(tǒng)升級的目的。
本公開提供的升級方法可以用于對固定終端和移動終端的系統(tǒng)升級過程中,該固定終端可以為個人電腦、大型計算機等,該移動終端可以為智能手機、平板電腦、MP3(Moving Picture Experts Group Audio LayerⅢ,動態(tài)影像專家壓縮標準音頻層面3)、PDA(Personal Digital Assistant,個人數(shù)字助理)等,還可以用于對其他終端系統(tǒng)的升級,本公開實施例對該升級方法的應用場景不作限定。
本公開實施例提供的方法,通過將系統(tǒng)數(shù)據(jù)和預裝應用分別存儲于第一分區(qū)和第二分區(qū),采用不同的升級方法分別對系統(tǒng)及預裝應用進行升級,既能確保在對系統(tǒng)升級時減小對帶寬和對終端內存的占用率,還能夠避免由于預裝應用發(fā)生改變導致無法完成系統(tǒng)升級的問題,進而能夠提高系統(tǒng)升級成功率;進一步地,通過以文件為粒度存儲該至少一個預裝應用,能夠實現(xiàn)以基于文件完整升級的方式,對系統(tǒng)自帶的預裝應用進行更新,相對于以塊為粒度進行存儲的方式,能夠進一步提高升級成功率和效率。
圖3是根據(jù)一示例性實施例示出的一種升級裝置框圖。參照圖3,該裝置包括獲取模塊301,比較模塊302,生成模塊303和發(fā)送模塊304。
獲取模塊301,用于獲取終端當前系統(tǒng)的版本信息;
比較模塊302,用于根據(jù)所述獲取模塊301獲取到的所述當前系統(tǒng)的版本信息與目標系統(tǒng)的版本信息,將所述當前系統(tǒng)的第一分區(qū)中的數(shù)據(jù)與所述目標系統(tǒng)的第一分區(qū)中的數(shù)據(jù)進行比較,得到所述當前系統(tǒng)與所述目標系統(tǒng)的第一分區(qū)差量,所述第一分區(qū)用于存儲系統(tǒng)數(shù)據(jù);
生成模塊303,用于如果檢測到所述目標系統(tǒng)的第二分區(qū)中存在待更新預裝應用,根據(jù)所述比較模塊302得到的第一分區(qū)差量和所述待更新預裝應用,生成升級包,所述第二分區(qū)用于存儲至少一個預裝應用;
發(fā)送模塊304,用于向所述終端發(fā)送所述生成模塊303生成的所述升級包。
在本公開提供的第一種可能實現(xiàn)方式中,所述裝置還包括:
檢測模塊,用于對于所述目標系統(tǒng)中的任一預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中是否存在所述預裝應用;
確定模塊,用于如果所述檢測模塊檢測到所述當前系統(tǒng)的第二分區(qū)中不存在所述預裝應用,確定所述預裝應用為所述待更新預裝應用;
所述生成模塊303用于執(zhí)行根據(jù)所述第一分區(qū)差量和所述確定模塊確定的所述待更新預裝應用,生成所述升級包的步驟;
所述檢測模塊還用于如果所述當前系統(tǒng)的第二分區(qū)中存在所述預裝應用,檢測所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用是否一致;
所述確定模塊還用于如果所述檢測模塊檢測到所述當前系統(tǒng)的第二分區(qū)中的所述預裝應用與所述目標系統(tǒng)中的所述預裝應用不一致,則確定所述預裝應用為所述待更新預裝應用;
所述生成模塊303用于執(zhí)行根據(jù)所述第一分區(qū)差量和所述待更新預裝應用,生成所述升級包的步驟。
在本公開提供的第二種可能實現(xiàn)方式中,所述生成模塊303還用于:
如果檢測到所述目標系統(tǒng)的第二分區(qū)中不存在所述待更新預裝應用,根據(jù)所述第一分區(qū)差量生成所述升級包。
在本公開提供的第三種可能實現(xiàn)方式中,所述第二分區(qū)以文件為粒度存儲所述至少一個預裝應用。
在本公開提供的第四種可能實現(xiàn)方式中,所述第一分區(qū)以預設大小的塊為粒度存儲所述系統(tǒng)數(shù)據(jù)。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
圖4是根據(jù)一示例性實施例示出的一種升級裝置400的框圖。例如,裝置400可以被提供為一服務器。參照圖4,裝置400包括處理組件422,其進一步包括一個或多個處理器,以及由存儲器432所代表的存儲器資源,用于存儲可由處理部件422的執(zhí)行的指令,例如應用程序。存儲器432中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件422被配置為執(zhí)行指令,以執(zhí)行上述升級方法。
裝置400還可以包括一個電源組件426被配置為執(zhí)行裝置400的電源管理,一個有線或無線網絡接口450被配置為將裝置400連接到網絡,和一個輸入輸出(I/O)接口458。裝置500可以操作基于存儲在存儲器432的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權利要求指出。
應當理解的是,本公開并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。