第十五节(增量更新前言)

一个知识点:
gradle指定开发平台,在defaultConfig目录里面
    ndk {
            abiFilters "armeabi","x86"
        }

比如说,现在引入了一个三方的so库,这个库里面只提供了armeabi和x86平台的,其他的没有提供,那么就需要加上这个限制,否则默认全平台编译会报错。

记录个错误:

用AS直接连接到手机上能运行,安装apk就运行报错?
解决办法,禁用掉androidstudio的InstantRun

增量更新

Binary diff/patch utility
官网地址:http://www.daemonology.net/bsdiff/


bsdiff and bspatch use bzip2; by default they assume it is in /usr/bin.

bzip2的官网地址:http://www.bzip.org/

image.png

点击这儿下载windows下的源码进行解压:

image.png

在Release文件夹下面有已经编译好的可执行(exe)文件,先来演示下差分与合并。

image.png

下面的操作使用的是window平台命令行

image.png

先生成两个apk包(androidstudio生成),一个新包(appnew.apk)、一个旧包(appold.apk)

image.png

1.控制台输入bsdiff命令进行拆分
格式:

bsdiff.exe 旧包路径   新包路径   差分包路径

执行完毕会生成diff.patch差分文件
2.控制台输入bspatch命令进行合并

格式:

bspatch.exe 旧包路径   新包路径(指的是利用旧包和差分包生成的新包)   差分包路径

执行完毕生成新包patch.apk
3.验证原来的新包appnew.apk和合并生成的新包patch.apk的MD5值

image.png

这两个包md5值完全相同,说明原来的新包和合并后的新包是两个完全相同的文件
4.安装appold.apk和patch.apk

image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容