Windows中使用bsdiff

bsdiff是一个差异包比较工具,可以用来实现Android的增量更新,详情请见这篇文章Android 增量更新完全解析 是增量不是热修复。只是这篇文章的背景是基于mac系统的,关于其第二步——增量文件的生成与合并——自己各种寻求编译方法,始终没能成功编译出bsdiff和bspatch文件。后来自己终于放弃自己编译,直接百度了windows下的bsdiff文件,找了半天终于找到了可以直接运行的bsdiff和bspatch文件,已将其上传至此——bsdiff和bspathc,需要的人可以自行下载。
使用步骤:
1.解压(废话);
2.打开cmd命令行,进入该目录;
3.cmd命令行中生成old.apk和new.apk的增量文件old-to-new.patch,“bsdiff old.apk new.apk old-to-new.patch”;
4.cmd命令行中使用增量文件old-to-new.patch和old.apk合并成新的new2.apk,“bspathc old.apk new2.apk old-to-new.patch”。
此篇文章的主要目的是提供一个windows下bsdiff的下载地址并简单介绍下其使用方式,关于增量更新的原理请看Hongyang大神的博客。。。
至此,结束。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
bsdiff是一种文件差分工具,可以用于生成两个二进制文件之间的差异文件,以及使用差异文件更新原始文件。bsdiff主要用于软件更新,可以大大减小更新包的大小。 在Java,可以使用bsdiff4j库来实现bsdiff功能。bsdiff4j是一个基于JNI的Java库,可以在Windows、Linux和MacOS上运行。它提供了bsdiffbspatch两个类,分别用于生成差异文件和应用差异文件更新源文件。 以下是使用bsdiff4j生成差异文件的示例代码: ```java import java.io.File; import java.io.IOException; import org.xeustechnologies.jtar.TarEntry; import org.xeustechnologies.jtar.TarInputStream; import com.google.common.io.Files; import name.pachler.nio.posix.PosixFilePermission; import name.pachler.nio.posix.PosixFilePermissions; import net.jpountz.lz4.LZ4BlockOutputStream; import org.xerial.snappy.SnappyOutputStream; import com.github.jazzmunkey.bsdiff4j.BSDiff; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestBsdiff { private static final Logger logger = LoggerFactory.getLogger(TestBsdiff.class); public static void main(String[] args) { try { // 获取旧文件和新文件的路径 String oldFilePath = "/path/to/old/file"; String newFilePath = "/path/to/new/file"; // 生成差异文件的路径 String diffFilePath = "/path/to/diff/file"; // 使用bsdiff4j生成差异文件 BSDiff.createPatch(new File(oldFilePath), new File(newFilePath), new File(diffFilePath)); } catch (IOException e) { logger.error("Failed to create patch", e); } } } ``` 需要注意的是,bsdiff4j依赖于一些本地库,需要将这些库添加到Java库路径。具体可以参考bsdiff4j的文档。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值