這是android應用增量升級測試下載,隨著現(xiàn)在手機硬件不斷的提升,分辨率提高手機的安裝包也是越來越大了。當年NOKIA,MOTO時代,一個手機APP如果有1MB那都是算大的,2MB已經(jīng)不得了了。雖然網(wǎng)絡、存儲都已經(jīng)大大提升,但是流量還不至于廉價到APP改了一個標題要去下載一個幾兆的程序安裝包。今天就介紹安卓增量下載的實現(xiàn)。有耐心的先看原理,后面實踐!
android應用增量升級測試yanghui1986527#gmail.com QQ 群: 529327615原文地址:https://snowdream.github.io/blog/2016/08/23/android-incremental-update-solutions/ 名詞解釋全量升級每次下載完整的新安裝包,進行覆蓋安裝。
-安全性:所有下載的數(shù)據(jù)進行數(shù)字簽名,由我們防止manomissions的。
-恢復壓縮安裝:它可以自動重新啟動恢復安裝的的ROM壓縮和其他額外的包(內(nèi)核,調(diào)制解調(diào)器),擦拭的Dalvik緩存和重新啟動(需要root)。
-日志:如果你有一個每晚構建,當有可用的更新,CyanDelta會告訴你的列表之間的ROM版本,您必須安裝和新的變化。
-更新通知:當一個ROM更新,CyanDelta將通知您。
-高效率三角洲:使用RFC3284 VCDIFF的算法和一些神奇的產(chǎn)生非常小的增量。
-支持基于TWRP和CWM-復蘇,但不是封閉源代碼的ClockworkMod(這個名字是基于CWM-類似,但它是一個不同的事情。,因為它是鎖著的,其作者只適用于ROM經(jīng)理。如果你有一個不支持的恢復,你就可以手動安裝所產(chǎn)生的CyanDelta的拉鏈。
-支持所有官方CyanogenMod的ROM和設備中。
今天我們就來實現(xiàn)類似的應用的增量升級。其實增量升級的原理很簡單,即首先將應用的舊版本Apk與新版本Apk做差分,得到更新的部分的補丁,例如舊版本的APK有5M,新版的有8M,更新的部分則可能只有3M左右(這里需要說明的是,得到的差分包大小并不是簡單的相減,因為其實需要包含一些上下文相關的東西),使用差分升級的好處顯而易見,那么你不需要下載完整的8M文件,只需要下載更新部分就可以,而更新部分可能只有3、4M,可以很大程度上減少流量的損失。
在用戶下載了差分包之后,需要在手機端將他們組合起來?梢詤⒖嫉淖龇ㄊ窍葘⑹謾C端的舊版本軟件(多半在/data/下),復制到SD卡或者cache中,將它們和之前的差分patch進行組合,得到一個新版本的apk應用,如果不出意外的話,這個生成的apk和你之前做差分的apk是一致的。