这是androids应用增量升级测试下(xià)载,随着现在手机硬件不断的(de)提升(shēng),分辨(biàn)率(lǜ)提高手机的安装包(bāo)也是越来越大了(le)。当年NOKIA,MOTO时(shí)代(dài),一个手机APP如果有1MB那(nà)都是算大的(de),2MB已经不得了(le)了。虽然网络、存储都已经大大提升,但是流量还不至于廉价到APP改了一个标题要去下载(zǎi)一个几兆的程序(xù)安装包。今(jīn)天就(jiù)介绍安卓增量下载(zǎi)的实现。有耐心的先看原(yuán)理,后面实践(jiàn)!
androids应用增量(liàng)升级(jí)测试yanghui1986527#gmail.com QQ 群: 529327615原文地址:https://snowdream.github.io/blog/2016/08/23/androids-incremental-update-solutions/ 名词解释(shì)全量升级每(měi)次(cì)下载完整的(de)新安(ān)装包,进行覆盖(gài)安装。
-安全性:所有(yǒu)下(xià)载(zǎi)的数(shù)据(jù)进(jìn)行数字签(qiān)名,由我们防(fáng)止manomissions的(de)。
-恢复压(yā)缩安装:它可以自动(dòng)重新(xīn)启动(dòng)恢复安装的的ROM压缩和其他额外的包(内核,调制解调器),擦拭的Dalvik缓存和重新启动(需要root)。
-日志:如果你有(yǒu)一个每晚构建,当有可用的更新,CyanDelta会告诉你的列表之间的ROM版本,您必须安装和新的变化。
-更新通知(zhī):当一(yī)个ROM更新,CyanDelta将通知您。
-高效率(lǜ)三角洲:使用RFC3284 VCDIFF的算法和一些神(shén)奇的产(chǎn)生(shēng)非常小的(de)增量。
-支(zhī)持(chí)基(jī)于TWRP和CWM-复苏,但不是封闭源代码的ClockworkMod(这个(gè)名字(zì)是基于CWM-类似,但(dàn)它是(shì)一个不同的(de)事情!),因(yīn)为它是(shì)锁着(zhe)的,其作者只适用于ROM经理。如果你有(yǒu)一个(gè)不支(zhī)持的恢复,你就可以手(shǒu)动安装所产生的(de)CyanDelta的拉链。
-支持所(suǒ)有官方(fāng)CyanogenMod的(de)ROM和(hé)设(shè)备中。
今天我们就来(lái)实现类似的(de)应用的增量(liàng)升级。其实增(zēng)量(liàng)升级的原理很简单(dān),即首先将应用的旧版(bǎn)本(běn)Apk与新版本(běn)Apk做(zuò)差分,得到更新的部分的补丁(dīng),例如旧(jiù)版本的(de)APK有5M,新版的有8M,更新的部分则可(kě)能只有3M左右(这里(lǐ)需要说明的是(shì),得到(dào)的差分包大小并不是(shì)简单的相减,因为其实需要(yào)包含一些上下文相(xiàng)关的东西),使用(yòng)差(chà)分(fèn)升级的好处显而易见(jiàn),那么你不需要下载(zǎi)完整的8M文件,只需要下载更新(xīn)部分(fèn)就可以,而更新部分(fèn)可能(néng)只有3、4M,可以很(hěn)大程度上(shàng)减少流量的损失(shī)。
在(zài)用户下(xià)载了差分包之(zhī)后,需要在手机端(duān)将(jiāng)他们组合起来。可(kě)以参考(kǎo)的做法是(shì)先将手机端的旧版本软件(jiàn)(多(duō)半在(zài)/data/下),复制到SD卡或者cache中,将它(tā)们和之前的差分patch进行组合,得(dé)到一个新版本的(de)apk应(yīng)用,如果不出意外的话,这(zhè)个生成的apk和你(nǐ)之前(qián)做差分的apk是一致(zhì)的。
