本申請公開了一種差分升級方法、電子設備及存儲介質,所述差分升級方法包括:獲取待升級對象的當前運行版本對應的差分包;根據所述差分包,生成多個差分任務;通過至少兩個子線程并發執行所獲取的差分任務;當所有差分任務執行完時,完成差分升級。本申請通過創建多個子線程,由處于空閑狀態的所有子線程同時執行多條差分升級指令,以實現差分并行升級,極大提高差分升級效率,縮短整個升級時間,方便用戶。戶。戶。
【技術實現步驟摘要】
一種差分升級方法、電子設備及存儲介質
[0001]本申請涉及升級
,具體涉及一種差分升級方法、電子設備及存儲介質。
技術介紹
[0002]現有技術中升級方式有多種,其中一種是差分升級。差分升級方式是為了解決全量包過大而提出的一種有效升級方式,通過某種算法找出新版本和舊版本不一樣的地方,然后將不一樣的地方抽取出來形成所謂的更新補丁(patch),利用該補丁文件對源文件進行一個一個升級。
[0003]但隨著功能應用的增多,使得差分升級的應用的補丁文件越來越多、越來越大,而補丁文件過多過大,容易導致應用升級的時間過長,極大降低升級效率。
[0004]因此,現有技術有待于改進和發展。
技術實現思路
[0005]基于此,有必要針對現有技術中差分升級時間過長導致升級效率低的技術問題,提供一種差分升級方法、電子設備及存儲介質。
[0006]為了達到上述目的,本申請采取了以下技術方案:
[0007]第一方面,本申請提供一種差分升級方法,所述差分升級方法包括以下步驟:
[0008]獲取待升級對象的當前運行版本對應的差分包;
[0009]根據所述差分包,生成多個差分任務;
[0010]通過至少兩個子線程并發執行所獲取的差分任務;
[0011]當所有差分任務執行完時,完成差分升級。
[0012]可選地,所述獲取待升級對象的當前運行版本對應的差分包之后還包括:
[0013]校驗所述差分包是否完整和/或下載是否成功;
[0014]當校驗完整且下載成功后,自動重啟終端設備并進入恢復模式。
[0015]可選地,所述根據所述差分包,生成多個差分任務具體包括:
[0016]獲取所述差分包對應的升級腳本;
[0017]在恢復模式下按照預設規則讀取所述升級腳本,確定每個待升級文件對應的升級方式;其中,所述升級腳本包括若干待升級文件以及每個所述待升級文件對應的升級方式;
[0018]若某一待升級文件對應的升級方式為差分升級,則將所述待升級文件差分時所需的相關參數信息封裝成一數據結構,并根據所述數據結構生成一差分任務。
[0019]可選地,所述通過至少兩個子線程并發執行所獲取的差分任務具體包括:
[0020]在恢復模式下創建線程池,所述線程池包括至少兩個子線程,啟動至少兩個子線程;
[0021]至少兩個子線程分別獲取一差分任務,并發執行所獲取的差分任務。
[0022]可選地,所述通過至少兩個子線程并發執行所獲取的差分任務,包括:
[0023]若處于空閑狀態的子線程個數大于剩余差分任務的個數M,則隨機選取M個子線
程,M個子線程并發執行所有剩余差分任務;M≥1 的正整數。
[0024]可選地,所述通過至少兩個子線程并發執行所獲取的差分任務之后,所述方法還包括:
[0025]判斷當前待執行的差分任務是否為最后一個差分任務;
[0026]若當前待執行的差分任務是最后一個差分任務,執行所述差分任務后釋放資源,結束差分升級;
[0027]若當前待執行的差分任務不是最后一個差分任務,則繼續執行所述通過至少兩個子線程并發執行所獲取的差分任務的步驟,直至當前待執行的差分任務是最后一個差分任務。
[0028]可選地,所述當所有差分任務執行完時,完成差分升級之后還包括:
[0029]關閉所有子線程;
[0030]以正常模式重啟,以檢測是否升級成功。
[0031]可選地,所述差分升級采用FOTA升級。
[0032]第二方面,本申請還提供一種電子設備,所述電子設備包括處理器和與所述處理器連接的存儲器,所述存儲器存儲有一個或者多個程序,所述處理器用于執行:
[0033]獲取待升級對象的當前運行版本對應的差分包;
[0034]根據所述差分包,生成多個差分任務;
[0035]通過至少兩個子線程并發執行所獲取的差分任務;
[0036]當所有差分任務執行完時,完成差分升級。
[0037]第三方面,本申請還提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現所述的差分升級方法中的步驟。
[0038]有益效果:
[0039]相對于現有技術,本申請提供了一種差分升級方法、電子設備及存儲介質,所述差分升級方法包括獲取待升級對象的當前運行版本對應的差分包;根據所述差分包,生成多個差分任務;通過至少兩個子線程并發執行所獲取的差分任務;當所有差分任務執行完時,完成差分升級。本申請通過創建多個子線程,由處于空閑狀態的所有子線程同時執行多條差分升級指令,以實現差分并行升級,極大提高差分升級效率,縮短整個升級時間,方便用戶。
附圖說明
[0040]圖1為本申請提供的一種差分升級方法的流程圖。
[0041]圖2為本申請提供的一種差分升級方法一應用場景框圖。
[0042]圖3為本申請提供的一種電子設備的結構框圖。
具體實施方式
[0043]本申請提供一種差分升級方法、電子設備及存儲介質,為使本申請的目的、技術方案及效果更加清楚、明確,以下參照附圖并舉實施例對本申請進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本申請,并不用于限定本申請。
[0044]本
技術人員可以理解,除非特意聲明,這里使用的單數形式“一”、“一
個”、“所述”和“該”也可包括復數形式。應該進一步理解的是,本申請的說明書中使用的措辭“包括”是指存在所述特征、整數、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。
[0045]本
技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術語和科學術語),具有與本申請所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
[0046]經專利技術人研究發現,現有的差分升級通過某種算法找出新版本和舊版本不一樣的地方,然后將不一樣的地方抽取出來形成所謂的更新補丁(patch),利用該補丁文件對源文件進行一個一個升級,同一時間只能按順序執行一條差分升級指令,實現差分串行升級。然后隨著應用越做越大,會導致要差分升級的應用的補丁文件也會越來越大,而補丁文件越大,會導致該應用升級的時間更長。差分包包含了所有要升級文件的補丁文件,按照目前差分升級串行執行的特點,會導致整個升級過程過長,降低升級效率,增加升級成本。
[004本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種差分升級方法,其特征在于,所述差分升級方法包括以下步驟:獲取待升級對象的當前運行版本對應的差分包;根據所述差分包,生成多個差分任務;通過至少兩個子線程并發執行所獲取的差分任務;當所有差分任務執行完時,完成差分升級。2.根據權利要求1所述的差分升級方法,其特征在于,所述獲取待升級對象的當前運行版本對應的差分包之后還包括:校驗所述差分包是否完整和/或下載是否成功;當校驗完整且下載成功后,自動重啟終端設備并進入恢復模式。3.根據權利要求1所述的差分升級方法,其特征在于,所述根據所述差分包,生成多個差分任務具體包括:獲取所述差分包對應的升級腳本;在恢復模式下按照預設規則讀取所述升級腳本,確定每個待升級文件對應的升級方式;其中,所述升級腳本包括若干待升級文件以及每個所述待升級文件對應的升級方式;若某一待升級文件對應的升級方式為差分升級,則將所述待升級文件差分時所需的相關參數信息封裝成一數據結構,并根據所述數據結構生成一差分任務。4.根據權利要求3所述的差分升級方法,其特征在于,所述通過至少兩個子線程并發執行所獲取的差分任務具體包括:在恢復模式下創建線程池,所述線程池包括至少兩個子線程,啟動至少兩個子線程;至少兩個子線程分別獲取一差分任務,并發執行所獲取的差分任務。5.根據權利要求4所述的差分升級方法,其特征在于,所述通過至少兩個子線程并發...
【專利技術屬性】
技術研發人員:劉慶,
申請(專利權)人:深圳TCL新技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。