Android 增量更新教程

作者: 丶Lost_Deer | 来源:发表于2016-11-28 14:47 被阅读442次

一.什么是增量更新?

增量更新的关键在于如何理解增量一词。来想想平时我们的开发过程,往往都是今天在昨天的基础上修改一些代码,app的更新也是类似的:往往都是在旧版本的app上进行修改。这样看来,增量更新就是原有app的基础上只更新发生变化的地方,其余保持原样。

与原来每次更新都要下载完整apk包的做法相比,这样做的好处显而易见:每次变化的地方总是比较少,因此更新包的体积就会小很多。

二.增量更新的原理

增量更新的原理非常简单,简单的说就是通过某种算法找出新版本和旧版本不一样的地方(这个过程也叫做差分),然后将不一样的地方抽取出来形成所谓的更新补丁(patch),也称之为差分包。客户端在检测到更新的时候,只需要下载差分包到本地,然后将差分包合并至本地的安装包,形成新版本的安装包,文件校验通过后再执行安装即可。本地的安装包通过提取当前已安装应用的apk得到。

三.新建应用,写native方法

1.写一个native方法

2.生成对应的.h文件

1, 从Android Studio的Terminal里进入到, /src/main/java 目录下,一定要刀这个文件夹下来执行命令操作。

2, 执行javah XXX.XX.XXX 即可,   XXX.XX.XXX是要生成.h文件的完整路径名,包名+文件名

3, 然后就会在当前目录下生成相应的.h文件。

3.我们需要将bspatch.c以及bzip的相关代码拷贝到jni目录下(bzip只保留.h头文件和.c文件)。并将bspatch.c中的main()方法名修改为executePatch(),并且修改其中bzip的引入头为#include "bzip2/bzlib.h".目录结构如下:

4.创建C文件并编辑(记得配置NDK环境)

5.修改build.gradle配置

6.生成os文件

输出目录:

去对应的项目空间中搜索“ndk”,并跟进到lib目录下,找到需要的文件复制出来

四.生成拆分包

1.开源库bsdiff:http://www.pokorra.de/coding/bsdiff.html

在应用中打包出一个旧的应用,在旧的应用中做一些修改,如:assets文件夹加些大的资源文件,让新版app大一些

把patch文件考到手机中(真是情况是从服务器下载下来),加入对应权限

github源码地址:https://github.com/LostDeer/HotUp

相关文章

  • ReactNative热更新&拆包

    目录 1)全量热更新-Android 2)拆包增量更新-Android 3)图片增量更新-Android 4)全量...

  • android 增量更新

    android增量更新 android 4.1开始 google引入了应用程序的增量更新。增量更新的原理实际上是使...

  • Android 增量更新教程

    一.什么是增量更新? 增量更新的关键在于如何理解增量一词。来想想平时我们的开发过程,往往都是今天在昨天的基础上修改...

  • 一、NDK:增量更新

    增量更新在Android开发中是一种很常见的技术。 增量更新的原理 增量更新的原理非常简单,就是将本地apk与服务...

  • Android 增量更新bsdiff和bspatch

    Android 增量更新 最近的项目需求,最近对这个增量更新有了一些认识,另外把增量更新的一下资料整理给大家分析一...

  • Android增量更新

    blog.csdn.net/dd864140130/article/details/52928419

  • android增量更新

    1、生成差异包 打开cmd,进入到bsdiff4.3-win32工具所在位置 拆分差异包命令如下: bsdiff旧...

  • Android增量更新

    最近就是在练习ndk开发,刚好遇到android增量更新的话题,主要是工具的运用,略带使用第三方so库的流程~~~...

  • Android 增量更新

    首先增量更新应该了解个概念:增量更新:在版本较近的apk升级的时候,根据两个apk之间的差异(生成差异包),合成新...

  • Android 增量更新

    Android 增量更新 首先通过bsdiff 生成patch包 bspatch生成新的APK: 无论是windo...

网友评论

    本文标题:Android 增量更新教程

    本文链接:https://www.haomeiwen.com/subject/mgdopttx.html