今天看了鴻洋大神增量更新博客,覺得這項技術是我今後開發中必定會用到的,決定花上午時間好好研究,終於實現了自己的一個demo,很是有成就感。於是記錄下來備用。
首先給出大神博客地址
http://blog.csdn.net/lmj623565791/article/details/52761658;
根據博客的知識,對增量更新算是有一個完整的瞭解,但是實現起來還是有些困難,因爲我的環境爲windows,所以百度尋找其他資源。
我在這個地址找到了windows的bsdiff和bspathc
下載後解壓文件如圖
自己打包舊apk跟新apk
使用cmd命令生成增量包
bsdiff [舊apk名] [新apk名] [patch名]
bsdiff old.apk new.apk old-to-new.patch
執行後生成增量包 old-to-new.patch
使用cmd命令把舊apk 與增量包合成新apk
bspatch old.apk new2.apk old-to-new.patch
執行後生成新的安裝包 new2.apk
下面則是代碼合成內容
下載編譯好的so文件導入自己的項目中
使用ndk
調用jni方法(我這裏保持包名一致 jni小白…)
參照鴻祥大神的demo編寫java代碼
https://github.com/hongyangAndroid/BsDiff_And_Patch
編寫完成後,打包apk作爲舊版本,然後改動代碼打包新版本,利用工具生成增量包,把增量包複製到手機(自己設置存儲路徑),安裝舊版本apk,點擊按鈕合成新apk並安裝,增量更新成功。
當然,這只是本地測試,真正項目需要把各個版本與最新版本的增量包放在服務器中,根據版本不同進行對應下載,然後進行合成更新版本。