资源包格式

qp文件的前半部分会给出当前qp的格式。如下图所示,给出了qp资源包前半部分格式

img

其中:

  • url:代表单个文件的url
  • md5:标记出单个文件的md5值
  • sl:则标出了url所代表的文件在当前qp包中的偏移量

资源包升级

资源包升级可以使用如下方式:

  • 全量更新:适用于大版本升级,如果资源改动比较大的时候,建议使用此类方法
  • 差量更新:适用于小版本更新

本文重点介绍差量更新,相对于资源全量升级,具有升级包体积小,升级速度快的特点。

bsdiff 和 bspatch

我们通过bsdiff和bspatch算法,实现了qp资源包的差量更新。

升级机制可以描述如下:

  • 在服务器上生成一个patch
  • 下载patch到手机中
  • 通过bspatch和本地的包进行合并
  • 更新本地资源,删除旧的资源

App store应用更新说明

应用资源更新肯定是违反apple政策的,但目前看起来它也不管。你在官网案例那里下载Appstore版本的那些app,大多启动后都会提示更新,反正也都没下架。如果你不是很大的公司,apple不会理睬你。如果你是大公司,建议不要做整体更新,每次更新几个页面,也不要提示更新后需要重启,这样会安全点。