Новый подход названный File–by–File patching, позволяет снижать размер загружаемого обновления до 90%, а в среднем он уменьшится на 65%.
В июле компания Google представила алгоритм Bsdiff, снижающий размер загружаемого обновления до 50%.
Этот дельта–алгоритм определяет различия между установленными и обновляемыми компонентами и обновляет только изменившиеся компоненты внутри APK.
Теперь же компания сделала ещё один шаг в строну уменьшения размера. Новый подход названный File–by–File patching, позволяет снижать размер загружаемого обновления до 90%, а в среднем он уменьшится на 65%.
Новый метод основан на определении изменений в несжатых данных. Для создания патча вначале производится декомпрессия старого и нового файлов, после чего вычисляется разница между ними посредством того же алгоритма Bsdiff. После чего применяется патч. Распаковывается старый файл, применяются изменения и затем пакуются в новый файл. После этого проверяется, что APK файл на устройстве байт в байт соответствует таковому в Play Store (что важно для цифровой подписи).
Данный метод крайне эффективно снижает размер передаваемых данных, однако он требует большой вычислительной мощности. В Google отмечают, что современные устройства, выпущенные после 2015 года, справятся с перепаковкой со скоростью около секунды на мегабайт, в то время как на старших устройствах этот процесс будет протекать намного дольше.