从Android4.1开始,Google引入了应用程序的增量更新功能。在更新App的时候,只需要更新与上个版本的差别,降低用户流量。
一、原理
就是将手机上已安装apk与服务器端最新的apk进行二进制对比,并得到差分包,用户更新程序时,只需要下载差分包,并在本地使用差分包与已安装的apk,合成新版apk。
APK文件的差分、合成,可以通过开源的二进制比较工具
bsdiff 来实现(
http://www.daemonology.net/bsdiff/)因为bsdiff依赖bzip2,所以我们还需要用到bzip2(
http://www.bzip.org/downloads.html) bsdiff中,bsdiff.c用于生成差分包,bspatch.c用于合成文件。
二、操作步骤:
1)在服务器端。生成这两个版本的差分包;
2)在手机客户端,使用已安装的旧版apk与这个差分包,合成为一个新版apk;
3)校验新合成的微博客户端文件是否完成,签名时候和已安装客户端一致,如果一致,提示用户安装;