背景
增量升级的原理
增量升级的操作
OTA系统差分包的制作,使用命令:
- ./build/tools/releasetools/ota_from_target_files
-n -i <</span>旧包> <</span>新包> <</span>差分包名>
./build/tools/releasetools/ota_from_target_files -n -i <旧包> <新包> <差分包名>
- diff_program
= DIFF_PROGRAM_BY_EXT.get(ext, "bsdiff")
diff_program = DIFF_PROGRAM_BY_EXT.get(ext, "bsdiff")
相关的代码
地址 或者在android的代码目录下 \external\bsdiff
- 命令:bsdiff
oldfile newfile patchfile - 例如:
bsdiff xx_v1.0.apk xx_v2.0.apk xx.patch
命令:bsdiff oldfile newfile patchfile 例如: bsdiff xx_v1.0.apk xx_v2.0.apk xx.patch
- bspatch的命令格式为:
- bspatch
oldfile newfile patchfile
bspatch的命令格式为: bspatch oldfile newfile patchfile
不足
小实验
- ├──
bsdiff-4.3 //bsdiff的源码路径,官网获取 - │
├── bsdiff.1 - │
├── bsdiff.c - │
├── bspatch.1 - │
├── bspatch.c - │
└── Makefile - ├──
bsdiff-4.3.tar.gz - ├──
bsdiff4.3-win32 //windows PC端的测试工具 - │
├── Binary diff.txt - │
├── bsdiff.exe - │
├── bspatch.exe - │
└── LICENSE - ├──
bspatch //手机端的测试工具 - ├──
iReader1.6.2.0(v35).apk // 旧版本的apk - └──
iReader1.8.0.1(v40).apk //新版本的apk
├── bsdiff-4.3 //bsdiff的源码路径,官网获取 │ ├── bsdiff.1 │ ├── bsdiff.c │ ├── bspatch.1 │ ├── bspatch.c │ └── Makefile ├── bsdiff-4.3.tar.gz ├── bsdiff4.3-win32 //windows PC端的测试工具 │ ├── Binary diff.txt │ ├── bsdiff.exe │ ├── bspatch.exe │ └── LICENSE ├── bspatch //手机端的测试工具 ├── iReader1.6.2.0(v35).apk // 旧版本的apk └── iReader1.8.0.1(v40).apk //新版本的apk
- bsdiff.exe
../iReader1.6.2.0(v35).apk ../iReader1.8.0.1(v40).apk ../ireader.patch
bsdiff.exe ../iReader1.6.2.0(v35).apk ../iReader1.8.0.1(v40).apk ../ireader.patch
- bspatch.exe
../iReader1.6.2.0(v35).apk ../new.apk ../ireader.patch
bspatch.exe ../iReader1.6.2.0(v35).apk ../new.apk ../ireader.patch

扩展阅读
Full update
bsdiff update
704,512
Courgette update
78,848
大牛们可以去研究下。
最近有些小忙,稍后有时间会对增量升级进行封装下,将合成的代码弄成一个lib库,供java调用。有兴趣的童鞋可以自己操作一下~~~