實現原理
實現弄清楚原理之後,我們就需要解決兩個問題:
1.如何比對兩個版本的apk生成差異包;
2.如何使用舊的apk+差異包,生成乙個新apk;
(1)生成差異包
這一步需要在伺服器端來實現,一般來說,apk有新版本之後,需要往後臺管理端上傳新apk,上傳時就應該生成每乙個舊版與最新版本的差異包。
假設,你的apk已經發布了3個版,1.0,2.0,3.0,這時候你要在後台發布4.0,在你上傳時,就應該生成
1.0——>4.0的差異包;
2.0——>4.0的差異包;
3.0——>4.0的差異包;
選擇使用這個開源二進位制比較工具來實現:
其中bsdiff.c是二進位制檔案比對的**;bspatch.c是二進位制檔案合成的**;
我們將使用這個bsdiff來生成兩個apk的patch包,並且使用bspatch.c來合成舊apk與patch包;
使用bsdiff、bspatch時,還需用到bzip2:
我們需要用到bzip2-1.0.6.tar.gz中以下13個檔案(這裡面可能有的是不需要的,我都拷貝過來了):
blocksort.c
02
bzip2.c
03
bzip2recover.c
04
bzlib_private.h
05
bzlib.c
06
bzlib.h
07
compress.c
08
crctable.c
09
decompress.c
10
dlltest.c
11
huffman.c
12
randtable.c
13
spewg.c
android OTA 公升級包含增量公升級
ota 全稱over the air ota 公升級是android 系統提供的標準軟體公升級方式。它功能強大,提供了完全公升級 增量公升級模式,可以通過 sd 卡公升級,也可以通過 網路公升級。這裡,首先介紹sd卡公升級,網路公升級原理和sd卡大致一樣.下面我們將介紹這一過程.在公升級前,我們要準...
Android app的公升級更新,安裝,啟動
public class updatemanager public string isdownloadapk return versionname public updatemanager context context 檢測軟體更新 public void checkupdate 獲取軟體版本號 ...
QT windows 桌面應用程式增量公升級一種方案
討論公升級方案之前,我們先聊一聊增量公升級怎麼實現,我暫時認為有兩種實現方式 增量包的定義 每次公升級,將所有相對於前乙個版本更改的檔案壓縮成乙個zip包,即為公升級包。比如當前版本 4.0.0.0。我們更改了c 的一些功能,只改變了assist.exe.新版本為 4.0.0.1.那麼v4.0.0....