【开源】SmartAppUpdates

SmartAppUpdates

  •  https://github.com/cundong/SmartAppUpdates

    介绍:

    一个用于Android应用程序增量更新的开源库,包括客户端、服务端两部分代码。增量更新的原理非常简单,就是将手机上已安装apk与服务器端最新apk进行二进制对比,并得到差分包,用户更新程序时,只需要下载差分包,并在本地使用差分包与已安装apk,合成新版apk。

    运行效果:

  • 使用说明:

    介绍

    你所看到的,是一个用于Android应用程序增量更新的开源库。

    包括客户端、服务端两部分代码。

    原理

    自从 Android 4.1 开始,Google引入了应用程序的增量更新。

    增量更新的原理非常简单,就是将手机上已安装apk与服务器端最新apk进行二进制对比,并得到差分包,用户更新程序时,只需要下载差分包,并在本地使用差分包与已安装apk,合成新版apk。

    例如,当前手机中已安装微博V1,大小为12.8MB,现在微博发布了最新版V2,大小为15.4MB,我们对两个版本的apk文件查分比对之后,发现差异只有3M,那么用户就只需要要下载一个3M的差分包,使用旧版apk与这个差分包,合成得到一个新版本apk,提醒用户安装即可,不需要整包下载15.4M的微博V2版apk。

    apk文件的差分、合成,可以通过开源的二进制比较工具bsdiff来实现(Link:http://www.daemonology.net/bsdiff/)

    因为bsdiff依赖bzip2,所以我们还需要用到bzip2(Link:http://www.bzip.org/downloads.html

    bsdiff中,bsdiff.c用于生成查分包,bspatch.c用于合成文件。

    接下来,我们分开说,需要做3件事。

    • 在服务器端,生成这两个版本微博的差分包;

    • 在手机客户端,使用已安装的旧版apk与这个差分包,合成为一个新版微博apk;

    • 校验新合成的微博客户端文件是否完整,签名时候和已安装客户端一致,如一致,提示用户安装;

posted on 2015-03-25 18:13  wasdchenhao  阅读(199)  评论(0)    收藏  举报

导航