作为通用安卓应用,迭代开发是很常见的一种开发模式。谁也不能保证发出去的app永远不会被发现bug,永远不会有新需求,而下载更新成了这一切的前提。
(插个话:我很喜欢google退出的volley用作网络框架,但是volley对文件下载支持不好,也就是无法被用来做下载更新,那这种情况下我是该放弃实用volley改用更全面的网络框架呢,还是在同一个应用中集成两套网络框架,或者是在下载更新这里就直接自己简单利用原生类写几个下载函数就算了,希望能有前辈帮我指导一下)
google在4.x的版本中引入的特性,smart app updates,也就是通常被俗称的增量更新,原理大概就是:实用工具在服务端生成差分包,在客户端下载对应的差分包,然后再合成差分包。
首先生成差分包:
使用HDiff 或者BSDiff工具生成差分包。需要对之前发出过的每个低版本生成相应的差分包,也即发布3.0版本需要正对1.0和2.0版本的用户分别生成查分包。
然后是合成差分包:
客户端下载得到差分包后需要使用HDiffPatch或bspatch来合成apk然后安装即可