普通更新与增量更新的区别:
普通更新:客户端在冷启动的时候会将一个版本号和渠道号发送到服务器,如果是最新的,则服务器返回false,如果不是则返回false
增量更新:发送版本号到服务器,服务器收到版本号如果不是最新,则服务会根据版本号找到旧的apk地址跟新apk的地址进行合并,生成一个差分包(apk.aptch),生成完成之后再进行下载,下载完之后,客户端本地进行合并生成新的apk包
当前程序的apk被删除:系统在安装apk的时候,会将apk先拷贝到/data/app目录下(没有删除旧的程序就安装新的程序,会在data/app下的名字后面加数字,root后可删除)
区别:newApkSize-oldApkSize > 差分包的大小,可以节约服务器成本
差分原理(哈夫曼算法):将newapk和oldapk的进制编码进行比较,如果相同则只保留索引到apk.aptch,不同则保存压缩的内容和索引,如图:
插件化,热更新,差分