xml地图|网站地图|网站标签 [设为首页] [加入收藏]

皇家国际娱乐平台Linux分卷压缩与解压缩,增量更

来源:http://www.ccidsi.com 作者:集成介绍 人气:129 发布时间:2019-05-19
摘要:动用sz命令下载文件时,超过四G下载不了,怎样下载呢? Linux分卷压缩与解压缩 一、普通更新和增量更新 先是了然一下使用 平凡更新 的逻辑(这里指不经过接纳商场立异): 新本子

动用sz命令下载文件时,超过四G下载不了,怎样下载呢?

Linux分卷压缩与解压缩

一、普通更新和增量更新

先是了然一下使用平凡更新的逻辑(这里指不经过接纳商场立异):
新本子发布后将APK文件上盛传服务器。然后由客户端下载新的APK文件并安装。

只是一旦APK过大,普通更新的弊病就涌出了。
比如:贰个嬉戏的APK,老版本有480M。新本子加多了多个模块APK扩充到500M。依照平日更新的逻辑,用户需求下载500M的APK,很醒目相比较费流量!那么些并不是只针对用户,对服务器也是这么,服务器也亟需节约带宽。

一旦有一种机制:只须求下载新版APK与老版APK多出的两样的一部分,然后再由客户端将老版的APK和下载的一对联合成新版APK,再拓展设置更新。

举例那么些事例,用户只需求下载20M左右的更新包就会进行翻新操作,就会特别喜欢的缓和流量的这一个难点了。

上述的那几个例子正是增量更新的基本逻辑,用图形来表示:

皇家国际娱乐平台 1

增量更新

基于增量更新的逻辑,能够知道增量更新主要的多少个知识点。

  • 服务器依照新旧APK生成的增量包。(本文入眼)
  • 皇家国际娱乐平台,客户端下载差分包(本文不做牵线)。
  • 客户端按还是APK和下载的差分包生成新的APK。(本文入眼,别的部必要要一丝丝NDK的基础)
  • 客户端安装新的APK。

本文介绍的艺术是先对该公文进行拆分,拆分成四个低于肆G的文本,然后分别下载,下载到本地后再拓展联合或直接解压,具体操作如下:

1.rar
 rar a -m5 -v12m myarchive myfiles # 最大范围为 1二M

二、增量更新的依据

增量更新供给差分APK和统1APK,这里并没有供给应用的开采者去写算法,直接可用三方提供的工具。

官方地址:
http://www.daemonology.net/bsdiff/

只是windows无法下载,恐怕被墙的原原本本的经过。小编从第一方弄到的工具:

链接:拆分合并工具百度云地址

皇家国际娱乐平台 2

资源

此处聚焦了windows平台和linux平台使用的差分工具,以及客户端须求运用的会面工具。

一.分拆为三个公文的吩咐:

cat workspace_20150624230059.tar.gz | split -b 2G - workspace_20150624230059.tar.gz.

指令解释:

workspace_二零一四0624230059.tar.gz 是待下载的2一G文书

拆分成二G的小文件

workspace_二〇一四062423005九.tar.gz. 是拆分后文件的前缀,暗中认可分拆后文件名字为workspace_20150624230059.tar.gz.ab,ab,ac....类推

rar e myarchive.part1.rar #解压

3、差分APK

差分APK的操作有多样,小编那边介绍windows平台和Linux平台二种。

贰.下载多个小文件

sz workspace_20150624230059.tar.gz.a*

分卷压缩

三.一、Windows下的差分

将下载的工具中windows平台下的文书bsdiff4.三-win3二-src.zip解压。

皇家国际娱乐平台 3

bsdiff for windows

下一场再release文件夹下能够看出多个.exe文件。供给利用windows差分文件须求用到。bsdiff.exe.

皇家国际娱乐平台 4

bsdiff

接下去将旧版的APK和新版的APK复制到这么些文件夹下,施行以下命令:

bsdiff.exe  旧APK地址  新APK地址 增量包地址

皇家国际娱乐平台 5

执行拆分命令

接下来增量包就生成了:

皇家国际娱乐平台 6

变化增量包

上述办法应该是非常简单了。

当然解压bsdiff4.叁-win3贰-src.zip之后会意识那是源码:

皇家国际娱乐平台 7

windows平台的源码

皇家国际娱乐平台 8

差分的效劳

由此这么些图可以看到,增量包要比新本子的安装包要小繁多的。假若新版apk越来越大,效果更明显。

三.统一下载的文件或直接解压

集结命令:

cat workspace_20150624230059.tar.gz.a* > workspace_20150624230059.all.tar.gz

合并后,再解压就能够

一贯解压多个公文命令:

cat workspace_20150624230059.tar.gz.a*|tar xzv

Ubuntu下并未有私下认可安装rar,能够透过 sudo apt-get install rar,sudo apt-get install unrar 来安装rar.

3.贰、Linux下的差分

一经未有windows系统,linux系统同样是提供支撑的。作者这边是装了2个Ubuntu的虚拟机。由于linux不太领会,小编这边只展示linux差分的核心部分。

首先步将bsdiff-四.三.tar.gz和bzip二-一.0.陆.tar.gz解压。将bsdiff-4.3.tar.gz中的bsdiff.c和bzip2-一.0.陆.tar.gz中负有的.c和.h文件全体复制到3个目录中。(笔者那边是用windows解压的,所以放的是windows的截图)

皇家国际娱乐平台 9

bsdiff.c

皇家国际娱乐平台 10

bzip2的所有.h和.c

在Linux中新建3个文本夹存放这个文件:

皇家国际娱乐平台 11

在Linux的文件

然后须要用linux的编写翻译命令gcc将那些文件编写翻译成Linux中可进行的文件。(gcc是怎么命令本人就不介绍了)。接下来会踩几个坑。
接下去奉行:

 gcc -g -o axe_bsdiff  blocksort.c decompress.c bsdiff.c  randtable.c  bzip2.c huffman.c compress.c bzlib.c crctable.c 

里面的axe_bsdiff是linux端可运转文件的公文名,可修改。施行这段命令就可以蒙受以下难点:

皇家国际娱乐平台 12

第一个坑

直接用vim进入bsdiff.c,找include bzlib.h的地方:

皇家国际娱乐平台 13

vim bsdiff.c

难点一目了然了,唯有引用系统提供的头文件才具用"< >",这就把那边改成
include "bzlib.h"
下一场保留!
那般也消除了地点为何须求那样多文件的问号了:bsdiff.c调用了bzlib下的c文件。
减轻这一个主题材料那就继续实行gcc命令。

皇家国际娱乐平台 14

其次个坑

上述就是第3个坑了,main方法被一再概念。那几个标题也很清楚,每种程序唯有二个main方法。那就把任哪儿方定义的main去掉就行了。那边须求保留bsdiff.c 中的main方法。

皇家国际娱乐平台 15

将没有供给的main方法修改成别的方法

本人这里用windows端的notepad 修改的。名字是无论改的,,只要符合标准就行了。
客户端合并也亟需这个改换后的源文件,已上传git。最终有链接

修改实现之后,继续实施gcc编写翻译命令。
接下来就打响了,生成了axe_bsdiff的可实施文件!

皇家国际娱乐平台 16

gcc成功

接下去的步骤就和windows端差分增量包操作大约了。实践一下限令:

./axe_bsdiff 旧APK路径 新APK路径 增量包路径

本身那边将新旧APK都赋值到了那一个文件夹,然后执行命令:

皇家国际娱乐平台 17

实践差分命令

中标转移增量包:

皇家国际娱乐平台 18

工作有成调换增量包

整体来讲Linux差分增量包要比windows差分增量包麻烦些。还恐怕会凌驾权限不够的标题,这一年须要chmod命令等等。

tar分卷压缩与解压缩

设置过后,使用以下命令举办分卷压缩:

4、客户端的合并操作

这里照旧须要动用bsdiff-四.叁.tar.gz和bzip2-壹.0.陆.tar.gz的解压文件。这里要求采纳bsdiff-肆.三中的bspatch.c还有bzip2-壹.0.陆怀有的.c和.h。下面讲到的Linux中差分增量包的公文,这里的能够平昔利用。

本文由68399皇家赌场发布于集成介绍,转载请注明出处:皇家国际娱乐平台Linux分卷压缩与解压缩,增量更

关键词: 68399皇家赌场 Android知识 NDK开发

上一篇:vue从入门到进阶

下一篇:没有了

最火资讯