Google уменьшит размер загрузок на 90%

В июле компания Google представила алгоритм Bsdiff, снижающий размер загружаемого обновления до 50%. 
Этот дельта–алгоритм определяет различия между установленными и обновляемыми компонентами и обновляет только изменившиеся компоненты внутри APK.

Теперь же компания сделала ещё один шаг в строну уменьшения размера. Новый подход названный File–by–File patching, позволяет снижать размер загружаемого обновления до 90%, а в среднем он уменьшится на 65%.

Новый метод основан на определении изменений в несжатых данных. Для создания патча вначале производится декомпрессия старого и нового файлов, после чего вычисляется разница между ними посредством того же алгоритма Bsdiff. После чего применяется патч. Распаковывается старый файл, применяются изменения и затем пакуются в новый файл. После этого проверяется, что APK файл на устройстве байт в байт соответствует таковому в Play Store (что важно для цифровой подписи).

Данный метод крайне эффективно снижает размер передаваемых данных, однако он требует большой вычислительной мощности. В Google отмечают, что современные устройства, выпущенные после 2015 года, справятся с перепаковкой со скоростью около секунды на мегабайт, в то время как на старших устройствах этот процесс будет протекать намного дольше.