站在巨人的肩膀上實現安卓增量更新

今天看了鴻洋大神增量更新博客,覺得這項技術是我今後開發中必定會用到的,決定花上午時間好好研究,終於實現了自己的一個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並安裝,增量更新成功。

當然,這只是本地測試,真正項目需要把各個版本與最新版本的增量包放在服務器中,根據版本不同進行對應下載,然後進行合成更新版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章