 增量文件的提取和合并android 提供了我們制作增量更新的工具 " bsdiff"這個是一個開源的二進制查分工具,相關的代碼地址 或者在android的代碼目錄下 /external/bsdiff使用 bsdiff工具生成 patch文件下載 bsdff包 解壓打開cmd 使用 命令 bsdiff old.apk news.apk test.patch 如圖生成差分包 test.patch ,把這個差分包上傳到服務器,提供用戶下載,不同的版本,生成不同的差分包。   用戶在下載了 xx.patch補丁包后,需要用到補丁所對應的apk,即原來系統(tǒng)安裝的舊版本apk和補丁合成的bspatch工具。系統(tǒng)舊版本的apk可以通過copy系統(tǒng)data/app目錄下的apk文件獲取,而補丁合成的bspatch可以通過將bspatch源碼稍作修改,封裝成一個so庫,供手機端調用。使用cmd命令來合并一個新的apk bspatch 1.apk new2.apk test.patch 如圖 生成 new2.apk
增量文件的提取和合并android 提供了我們制作增量更新的工具 " bsdiff"這個是一個開源的二進制查分工具,相關的代碼地址 或者在android的代碼目錄下 /external/bsdiff使用 bsdiff工具生成 patch文件下載 bsdff包 解壓打開cmd 使用 命令 bsdiff old.apk news.apk test.patch 如圖生成差分包 test.patch ,把這個差分包上傳到服務器,提供用戶下載,不同的版本,生成不同的差分包。   用戶在下載了 xx.patch補丁包后,需要用到補丁所對應的apk,即原來系統(tǒng)安裝的舊版本apk和補丁合成的bspatch工具。系統(tǒng)舊版本的apk可以通過copy系統(tǒng)data/app目錄下的apk文件獲取,而補丁合成的bspatch可以通過將bspatch源碼稍作修改,封裝成一個so庫,供手機端調用。使用cmd命令來合并一個新的apk bspatch 1.apk new2.apk test.patch 如圖 生成 new2.apk 檢驗合成的news.apk 和2.apk是否一樣,使用命令查詢2個文件的md5值是否一樣certutil -hashfile 2.apk MD5>certutil -hashfile news2.apk MD5不足     增量升級并非完美無缺的升級方式,至少存在以下兩點不足:    1.增量升級是以兩個應用版本之間的差異來生成補丁的,你無法保證用戶每次的及時升級到最新,所以你必須對你所發(fā)布的每一個版本都和最新的版本作差分,以便使所有版本的用戶都可以差分升級,這樣操作相對于原來的整包升級較為繁瑣,不過可以通過自動化的腳本批量生成。    2.增量升級成功的前提是,用戶手機端必須有能夠讓你拷貝出來且與你服務器用于差分的版本一致的apk,這樣就存在,例如,系統(tǒng)內置的apk無法獲取到,無法進行增量升級;對于某些與你差分版本一致,但是內容有過修改的(比如破解版apk),這樣也是無法進行增量升級的,為了防止合成補丁錯誤,最好在補丁合成前對舊版本的apk進行sha1sum校驗,保證基礎包的一致性。參考 文章 地址 http://blog.csdn.net/hmg25/article/details/8100896
檢驗合成的news.apk 和2.apk是否一樣,使用命令查詢2個文件的md5值是否一樣certutil -hashfile 2.apk MD5>certutil -hashfile news2.apk MD5不足     增量升級并非完美無缺的升級方式,至少存在以下兩點不足:    1.增量升級是以兩個應用版本之間的差異來生成補丁的,你無法保證用戶每次的及時升級到最新,所以你必須對你所發(fā)布的每一個版本都和最新的版本作差分,以便使所有版本的用戶都可以差分升級,這樣操作相對于原來的整包升級較為繁瑣,不過可以通過自動化的腳本批量生成。    2.增量升級成功的前提是,用戶手機端必須有能夠讓你拷貝出來且與你服務器用于差分的版本一致的apk,這樣就存在,例如,系統(tǒng)內置的apk無法獲取到,無法進行增量升級;對于某些與你差分版本一致,但是內容有過修改的(比如破解版apk),這樣也是無法進行增量升級的,為了防止合成補丁錯誤,最好在補丁合成前對舊版本的apk進行sha1sum校驗,保證基礎包的一致性。參考 文章 地址 http://blog.csdn.net/hmg25/article/details/8100896新聞熱點
疑難解答
圖片精選