Android      Android使用bsdiff增量更新   
文章目录  [隐藏]

bsdiff的网址 http://www.daemonology.net/bsdiff/
在MacOS上可以使用命令 brew install bsdiff 直接安装,其它平台从上面网址下载后自行编译。或者直接搜索下载可用程序。

一.开发第一版apk

第一版app就须要有增量更新的功能。
这里使用一个github上的开源项目 https://github.com/ha-excited/BigNews

1.项目的build.gradle

2.app模块的build.gradle

3.增量更新代码

二.开发第二版apk

当然第二版是保留差分升级功能的。

三.生成差分包

使用bsdiff指令生成升级包apk。如:
bsdiff A1.apk B2.apk diff.apk
即比对第一版a1和新版b2两个apk,生成差分升级包diff.apk。

四.测试

启动第一版apk,执行update方法,首先拿到差分包pathApkPath,比对当前版本的apk,生成newapk,启动安装。

五.弊端

摘自 https://www.cnblogs.com/zijianlu/p/4829953.html

1)增量升级是以两个应用版本之间的差异来生成补丁的,你无法保证用户每次的及时升级到最新,所以你必须对你所发布的每一个版本都和最新的版本作差分,以便使所有版本的用户都可以差分升级,这样操作相对于原来的整包升级较为繁琐,不过可以通过自动化的脚本批量生成。

2)增量升级成功的前提是,用户手机端必须有能够让你拷贝出来且与你服务器用于差分的版本一致的apk,这样就存在,例如,系统内置的apk无法获取到,无法进行增量升级;对于某些与你差分版本一致,但是内容有过修改的(比如破解版apk),这样也是无法进行增量升级的,为了防止合成补丁错误,最好在补丁合成前对旧版本的apk进行sha1sum校验,保证基础包的一致性。

六.其它

https://blog.csdn.net/shangyexin/article/details/82885583


end

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设