一種軟體升級的方法及系統的製作方法
2023-08-04 07:21:36
一種軟體升級的方法及系統的製作方法
【專利摘要】本發明適用於計算機【技術領域】,提供了一種軟體升級的方法及系統,所述方法包括:伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載,客戶端從伺服器下載所述軟體增量包;根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;運行所述合成升級包,以對客戶端軟體進行升級,本發明,實現了減小升級文件的大小,節約了升級下載的網絡流量,提高用戶下載成功率,降低了用戶升級的成本。
【專利說明】一種軟體升級的方法及系統
【技術領域】
[0001]本發明屬於計算機【技術領域】,尤其涉及一種軟體升級的方法及系統。
【背景技術】
[0002]隨著移動終端的快速發展,移動終端軟體的軟體升級包也越來越大,由於目前國內的無線網絡環境比較複雜,尤其是通用分組無線服務技術(GeneralPacket RadioService,GPRS)網絡,網關限制以及網速較慢等問題,經常出現用戶下載軟體升級包的時間很長,容易失敗,從而移動終端軟體升級的成功率低,升級成本比較高。
[0003]綜上所述,需要一種解決現有軟體升級方法的成功率低、升級成本比較高的問題的軟體升級的方法。
【發明內容】
[0004]本發明實施例提供了一種軟體升級的方法及系統,旨在解決現有軟體升級方法的成功率低、升級成本比較高的問題。
[0005]一方面,提供一種軟體升級的方法,其特徵在於,所述方法包括:
[0006]伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載;
[0007]客戶端從伺服器下載所述軟體增量包;
[0008]客戶端根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;
[0009]客戶端運行所述合成升級包,以對客戶端軟體進行升級。
[0010]另一方面,提供一種軟體升級的系統,包括伺服器和客戶端,所述客戶端已安裝了所述伺服器上的舊版軟體包,所述伺服器包括:
[0011]增量包生成單元,用於根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載。
[0012]所述客戶端包括:
[0013]增量包下載單元,用於從伺服器下載所述軟體增量包;
[0014]升級包合成單元,用於根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;
[0015]升級單元,用於運行所述合成升級包,以對客戶端軟體進行升級。
[0016]在本發明實施例,伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載;客戶端從伺服器下載所述軟體增量包;根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;運行所述合成升級包,以對客戶端軟體進行升級,本發明,實現了減小升級文件的大小,節約了升級下載的網絡流量,提高用戶下載成功率,降低了用戶升級的成本。【專利附圖】
【附圖說明】
[0017]圖1是本發明實施例一提供的軟體升級的方法的實現流程圖;
[0018]圖2是本發明實施例二提供的軟體升級的系統的具體結構框圖。
【具體實施方式】
[0019]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0020]在本發明實施例中,伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載,客戶端從伺服器下載所述軟體增量包;根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;運行所述合成升級包,以對客戶端軟體進行升級。
[0021]以下結合具體實施例對本發明的實現進行詳細描述:
[0022]實施例一
[0023]圖1示出了本發明實施例一提供的軟體升級的方法的實現流程,詳述如下:
[0024]在步驟SlOl中,伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載。
[0025]在本實施例中,所述舊版軟體包是某個遊戲或應用已經發布的舊版本的完整安裝包,所述軟體升級包是該應用的新版本的完整安裝包,所述軟體增量包是使用文件差異比較工具比對已經發布的舊版軟體包和軟體升級包的差異生成的文件。伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載,具體步驟包括:
[0026]步驟11,伺服器使用文件差異比較工具,對比所述舊版軟體包和所述軟體升級包的二進位代碼,獲取所述舊版軟體包相對於所述軟體升級包的更新內容;
[0027]優選的,所述文件差異比較工具包括但不限於:bsdiff和KDiff3。
[0028]步驟12,伺服器將所述更新內容生成軟體增量包以供客戶端下載。
[0029]在本實施例中,由於文件差異比較工具是對比所述舊版軟體包和所述軟體升級包兩個版本的二進位文件,獲取兩者的差異,生成軟體增量包的,因此,本方法適用於各種軟體,適用範圍廣。伺服器共享所述軟體增量包,以便於客戶端通過網絡下載軟體增量包。同時為了滿足不同版本客戶端軟體的升級,伺服器端需要製作不同舊版軟體包相對於其他版本的軟體升級包的多個軟體增量包,當客戶端需要升級時,客戶端只需要下載當前舊版軟體包與其他版本的軟體升級包的軟體增量包,就可以升級到任意版本,因此,對客戶端的軟體升級不受限制於某一版本。由於軟體增量包只包括舊版軟體包和軟體升級包的新增或者更新的內容,因此,軟體增量包相對軟體升級包的大小來說,比較小。通常情況下,軟體增量包比軟體升級包小30%飛0%,所以客戶端能夠更快速的下載到軟體增量包,節省用戶流量,提高用戶下載成功率,降低升級成本。
[0030]在步驟S102中,客戶端從伺服器下載所述軟體增量包。
[0031]在本實施例中,客戶端通過internet從伺服器下載本客戶端的舊版軟體包與軟體升級包的所述軟體增量包。[0032]在步驟S103中,客戶端根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包。
[0033]在本實施例中,客戶端根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包,具體包括:
[0034]客戶端使用包合成工具,分析所述軟體增量包和客戶端存儲的舊版軟體包的二進位代碼,將所述軟體增量包和客戶端存儲的舊版軟體合併,生成所述合成升級包。
[0035]優選的,所述包合成工具包括但不限於:bspatch和KDiff3,客戶端使用與文件差異比較工具兼容的包合成工具,合併軟體增量包和舊版軟體包,生成軟體升級包以供客戶端下載。
[0036]在步驟S104中,客戶端運行所述合成升級包,以對客戶端軟體進行升級。
[0037]在本實施例中,客戶端運行所述合成升級包,所述軟體升級包的相應文件覆蓋舊版軟體包的相應文件,以對客戶端軟體進行升級。
[0038]為了更清楚的描述上述軟體升級流程,以鬥地主遊戲的升級為例來介紹軟體升級的流程,移動終端已安裝了舊版軟體包鬥地主V1.0,當鬥地主的軟體升級包鬥地主V2.0開發完成時,上傳鬥地主V2.0版本到伺服器上,伺服器根據鬥地主V1.0和鬥地主V2.0,使用bsdiff,獲取軟體增量包,並共享所述軟體增量包,以使客戶端可以下載到軟體增量包。客戶端從伺服器上下載軟體增量包,客戶端使用包合成工具bspatch把軟體增量包和客戶端已有的軟體升級包鬥地主V1.0合併,生成軟體升級包鬥地主V2.0,安裝鬥地主V2.0後,客戶端的鬥地主升級到2.0版本。如果鬥地主有多個版本,從鬥地主V1.0到最新鬥地主V5.0,伺服器只要製作不同版本的鬥地主軟體之間軟體增量包,則可以滿足不同版本客戶端的向任一更高版本升級的需要。
[0039]本實施例,可以達到客戶端的應用或者遊戲升級時,只需要下載包括更新內容的軟體增量包,相對於完整軟體升級包下載量更小,節約了升級下載的網絡流量,提高用戶下載成功率,降低了用戶升級的成本。
[0040]實施例二
[0041]圖2示出了本發明實施例二提供的軟體升級的系統的具體結構框圖,為了便於說明,僅示出了與本發明實施例相關的部分。在本實施例中,該軟體升級的系統包括:伺服器I和客戶端2,所述客戶端2已安裝了所述伺服器上的舊版軟體包。
[0042]其中,所述伺服器I包括:
[0043]增量包生成單元11,用於根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載;
[0044]進一步的,所述增量包生成單元11具體用於使用文件差異比較工具,對比所述舊版軟體包和所述軟體升級包的二進位代碼,獲取所述舊版軟體包相對於所述軟體升級包的更新內容;將所述更新內容生成軟體增量包以供客戶端下載;
[0045]所述客戶端2包括:
[0046]增量包下載單元21,用於從伺服器下載所述軟體增量包;
[0047]升級包合成單元22,用於根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包;
[0048]升級單元23,用於運行所述合成升級包,以對客戶端軟體進行升級;[0049]進一步的,所述升級包合成單元22具體用於使用包合成工具,分析所述軟體增量包和客戶端存儲的舊版軟體包的二進位代碼,將所述軟體增量包和客戶端存儲的舊版軟體合併,生成所述合成升級包。
[0050]本發明實施例提供的軟體升級的系統可以應用在前述對應的方法實施例一中,詳情參見上述實施例一的描述,在此不再贅述。
[0051]值得注意的是,上述系統實施例中,所包括的各個單元只是按照功能邏輯進行劃分的,但並不局限於上述的劃分,只要能夠實現相應的功能即可;另外,各功能單元的具體名稱也只是為了便於相互區分,並不用於限制本發明的保護範圍。
[0052]另外,本領域普通技術人員可以理解實現上述各實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬體來完成,相應的程序可以存儲於一計算機可讀取存儲介質中,所述的存儲介質,如R0M/RAM、磁碟或光碟等。
[0053]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種軟體升級的方法,其特徵在於,所述方法包括: 伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載; 客戶端從伺服器下載所述軟體增量包; 客戶端根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包; 客戶端運行所述合成升級包,以對客戶端軟體進行升級。
2.如權利要求1所述的方法,其特徵在於,所述伺服器根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載,具體為: 伺服器使用文件差異比較工具,對比所述舊版軟體包和所述軟體升級包的二進位代碼,獲取所述舊版軟體包相對於所述軟體升級包的更新內容; 伺服器將所述更新內容生成軟體增量包以供客戶端下載。
3.如權利要求1或2所述的方法,其特徵在於,所述客戶端根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包,具體為: 客戶端使用包合成工具,分析所述軟體增量包和客戶端存儲的舊版軟體包的二進位代碼,將所述軟體增量包和客戶端存儲的舊版軟體合併,生成所述合成升級包。
4.一種軟體升級的系統,包括伺服器和客戶端,所述客戶端已安裝了所述伺服器上的舊版軟體包,其特徵在於,所述伺服器包括: 增量包生成單元,用於根據舊版軟體包和軟體升級包,使用文件差異比較工具生成軟體增量包以供客戶端下載。 所述客戶端包括: 增量包下載單元,用於從伺服器下載所述軟體增量包; 升級包合成單元,用於根據所述軟體增量包和客戶端存儲的舊版軟體包採用包合成工具生成所述合成升級包; 升級單元,用於運行所述合成升級包,以對客戶端軟體進行升級。
5.如權利要求6所述的系統,其特徵在於,所述增量包生成單元具體用於使用文件差異比較工具,對比所述舊版軟體包和所述軟體升級包的二進位代碼,獲取所述舊版軟體包相對於所述軟體升級包的更新內容;將所述更新內容生成軟體增量包以供客戶端下載。
6.如權利要求4或5所述的系統,其特徵在於,所述升級包合成單元具體用於使用包合成工具,分析所述軟體增量包和客戶端存儲的舊版軟體包的二進位代碼,將所述軟體增量包和客戶端存儲的舊版軟體合併,生成所述合成升級包。
【文檔編號】H04L29/08GK103853574SQ201210518108
【公開日】2014年6月11日 申請日期:2012年12月6日 優先權日:2012年12月6日
【發明者】鄭偉, 羅春華, 翁粵東, 賀志強, 許冠嚴, 郭成 申請人:騰訊科技(深圳)有限公司