android增量更新简单实现(自用)

1.增量更新:通过差分工具生成两个不同版本的包的差分包,当需要时可以通过老包和差分包生成新的包

    全量更新:直接给一个完整的安装包,当差分包很大或者版本太多时,采用全量更新


 2.差分包生成:BsDiff库:自己下载源码编译生成window版本exe工具,或者通过cgyWin64直接在安装时搜索BsDiff进行安装

                          生成差分包:bsdiff old.apk new.apk diff.patc

                          旧包和差分包合成新包:bspatch old.apk new.apk diff.patch

          BsDiff算法(差量更新算法)思想:

                利用old文件中内容,尽可能少加入新内容来构建新包。思路是对两个包做子字符串匹配或用hash技术提取公共部分,将新包的剩余的部            分打包成patch包,生成新包时用copying和insertion合成。

3.根据差分包生成新包: 1.用BsDiff的BsPatch 2.用ApkPatchLibrary

  4.ApkPatchLibrary合成新包:(github地址:https://github.com/cundong/SmartAppUpdates)

                              1.配制ndk环境变量,把源码下载,c文件mk文件还有native方法的配置都有现成,进入ApkPatchLibrary\jni中,cmd->ndk-build,                                       编译生成libApkPatchLibrary.so导入到android工程中(不会编译so文件的百度)

                              2.在java文件夹下面创建名为com.cundong.utils的包,创建PatchUtils工具类,定义patch native方法

                              3.加载so库

                                  static {

                                          System.loadLibrary("ApkPatchLibrary");

                                  }

                              4.服务器获取新老版本的md5,校验老版本的md5,获取应用程序自身apk路径      


                              5.根据路径跟patch的路径,调用PatchUtils.patch()native方法生成新包

                              6.校验新包md5


    *                        



                      7.安装新包


你可能感兴趣的:(android增量更新简单实现(自用))