Android增量更新

随着应用软件安装包越来越大,全量更新耗费的流量越来越多,增量更新可以很大程度上减少应用更新带来的流量消耗。

和游戏的检查更新,下载补丁包一致。

这里需要了解差分和 合并。

简单点:差分   对比新旧两个安装包,生成差异文件----> patch  也就是补丁~

这里使用bsdiff  进行增量更新;

bsdiff 差分的原理

Binary diff 是依赖 bzip 压缩库的开源库,其实是一种文件比较的一种算法实现,是一个二进制比较工具. 这里有两个文件:老版本的 app:old_app.apk 新版本的 app:new_app.apk. 首先是 Binarys diff:

1.首先将老文件 old_app 转为二进制文件.

2.在新文件 new_app 中找到和老文件相同的二进制数据.

3.在新文件生成的二进制数据中,分离 new_app 中老文件数据和新的二进制数据 patch.

 然后是客户端进行的合成操作。需要用到JNI  使用bspatch 的C文件进行合成操作。用patch 补丁与本地老的apk 包进行合并。生成新的apk 包。

github地址:

https://github.com/qiyc1224/IncreUpdate-Android

怎样生成patch 包。

bsdiff.exe  文件  同级目录下

用cmd  命令      bsdiff     old.apkname   new.apkname   补丁名字。工具类下载地址:

链接:https://pan.baidu.com/s/1lww-4JGSK8ZPMAqX6GQ8OQ

提取码:awyg

你可能感兴趣的:(Android增量更新)