android 补丁包增量更新

●功能版本:增量更新是Google 4.1增加的新功能
●功能背景:

现在的安卓Apk越来越大,而在此之前如果用户发现有新版本的话,需要重新把对应程序的新版本下载下来,有时候并不是重大更新,仅仅只是优化了一下,用户就需要重新下载apk,不仅浪费流量而且浪费时间(等同于浪费生命啊,亲!!!),有这样的问题,便会出现更优的功能迭代即增量更新或增量升级,或者叫差异化更新,目前很多应用商店已经对接了此功能:比如谷歌官方,小米等等。。。

●实现原理:

客户端与服务端对比,并生成版本之间的差异包,用户不用下载整个apk文件,只用下载差异包就可以了,比如用户微博2.0升级到微博3.0,本来微博3.0版本应该是10M,服务器通过生成差异包4M,用户直接下载4M文件并在本地进行合并生成微博3.0版本,安装,对于网络环境较差的用户绝对提高用户体验,节省流量和时间

(服务端+客户端)实现思路:

1.客户端带着VerisionCode发送请求给服务端

2.服务端判断VersionCode是否是最新版本,如果不是检测是否有此版本和最新版本的差异包,如果没有则在后台生成(旧VersionCode-新VersionCode).patch文件

3.客户端收到返回数据,判断是否最新,如果不是弹出升级的Dilog对话框

4.点击立即升级,再次发送请求

5.服务端返回给客户端对应版本差异包的Url地址

6.客户端拿到URL地址下载到SD卡中,并从客户端data/app 目录下拷贝本程序的apk安装包,

7.客户端通过调用JNI编译的.so动态链接库中的方法合并旧版本和差异包,生成新版本,调用Intent方法安装最新的apk包

用到的知识点:

1.JNI相关(重点)

2.Http协议相关(次重点)

3.工厂设计模式_调用接口实现类(次重点)

●实现

假设,你的apk已经发布了3个版,1.0,2.0,3.0,这时候你要在后台发布4.0,在你上传时,就应该生成

1.0——>4.0的差异包;

2.0——>4.0的差异包;

3.0——>4.0的差异包;

选择使用这个开源二进制比较工具来实现:

http://www.daemonology.n

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值