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

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

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

Google Play Store

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

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