文档章节

apk增量升级

席道坤
 席道坤
发布于 2016/12/27 15:22
字数 241
阅读 9
收藏 0

一、增量升级过程

1、 服务器下发patch和新包MD5到应用。

2.    提取手机中已安装的应用

3.    在已安装应用的基础上合并patch包,生成新的安装apk包。

4.    MD5校验,判断安装包是否合法有效

 

二、生成patch包(我是在linux下生成的,也可用我下面demo中的工具生成)

1.准备两个old.apk和一个new.apk。

2.安装bsdiff(apt-get  install  bsdiff)。

3.执行命令:bsdiff  old.apk  new.apk  create.patch。

 

三、客户端源码,详见

https://github.com/xidaokun/patchUpgrade

 

四、实际应用

      上面的例子只是给出了核心代码和方法,在实际项目中,patch是放在服务器端的,且每次升级的时候都需要app客户端告诉服务器自己的版本号,服务器根据客户端的版本号来下发patch包,所以服务端要对patch做好历史记录的维护。

 

© 著作权归作者所有

席道坤
粉丝 14
博文 231
码字总数 186443
作品 0
徐汇
程序员
私信 提问
Android Apk差分与合成更新

Android增量更新的原理是使用比较2个apk,然后通过差异与手机apk程序合成一个新的apk。 我们知道,获取手机端app中的app可以通过如下方法,类似常用的插件化读取第三方app资源的方式。 方法:...

IamOkay
2016/06/20
185
0
Android 增量更新实例(Smart App Updates)

目录[-] 官方说明 实现原理 实现 (1)生成差异包 (2)使用旧apk+差异包,在客户端合成新apk 注意事项 demo 自从 Android 4.1 开始,Google引入了应用程序的增量更新。 官方说明 Smart app ...

嘻哈开发者
2013/12/23
0
0
开源 Android App 增量更新库 版本升级

开源 Android App 增量更新库 版本升级 经过几天的重构,我将之前写的一个Android 应用增量更新的示例程序重构为了一个开源库,现在已经push 到 GitHub 上,欢迎大家Watch、Star、Fork。 包含...

Cundong
2014/09/02
0
2
爱奇艺开源轻量级插件化方案 Neptune

爱奇艺近日开源了其轻量级插件化方案 Neptune,项目地址:https://github.com/iqiyi/Neptune 插件化框架可以在主程序不重新安装的情况下,针对单个业务模块进行动态加载达到模块更新的目的,...

h4cd
2018/09/29
3.2K
4
Linux文件夹对比并提取的差分文件技巧-rsync的妙用

需求 最近团队正在开发一个版本对比工具,要求是把A1文件夹与A2对比,将A2中的增量部分,输出到update文件夹中,生成增量升级包/差分包。 方案研究 实现该功能的第一反应是,分别遍历2个文件...

程序员孟帅
2015/12/26
831
4

没有更多内容

加载失败,请刷新页面

加载更多

系列一、入门教程web端实现地图功能

废话不多说,社会我多多 实现步骤如下 第一步、在高德api注册账户 搜索高德api点击进入官网,自己注册一个账号,你懂得怎么注册撒 点击进入下图画框位置,来到官网api入门教程 第二步、按照以...

我叫小糖主
14分钟前
3
0
springboot统一校验validator实现

第一步: pom.xml需引入spring-boot-start-web依赖,其中包含validator框架包 <!--Spring Boot Web依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifact......

zzx10
15分钟前
0
0
vue组件系列-预览、放大、缩小、旋转

这个用的是别人的,如果有问题,估计改起来会很纠结。 安装 npm install v-viewer --save 卸载 npm uninstall v-viewer 注册 在main.js中 // The Vue build version to load with the `impor...

轻轻的走过
17分钟前
0
0
Taro Input输入内容无法绑定state问题

在onInput事件中,返回内容,返回内容即是输入框内容 例如只能输入一个小数点: <Input type='digit' placeholder='带小数点的数字键盘' value={this.state.advance} onInput={ e => this.ch......

步步登高
18分钟前
0
0
Windows10远程连接CentOS7(搭建Xrdp服务器)

Windows10远程连接CentOS7(搭建Xrdp服务器) 听语音 浏览:0 | 更新:2018-02-11 12:56 1 2 3 4 5 6 7 分步阅读 通过VNC或Xdmcp的方式远程连接linux图形桌面,虽然都很方便,但有个缺点就是...

linjin200
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部