Обновлять android-приложения на телефоне через Google Play стало проще

Экономия трафика достигает 65%.

Пользователи ОС Android загружают десятки миллиардов приложений и игр, обновлений на телефон через Google Play. Мы также видим, что разработчики часто обновляют свои приложения для того, чтобы предоставить пользователям больше функций, повысить безопасность и улучшить пользовательский опыт в целом. Для загрузки обновлений потребляется много данных, и мы знаем, что пользователи заботятся о том, сколько данных их устройства используют при загрузке (особенно если речь заходит о мобильном трафике). В 2016 году разработчики из Google объявили о начале использования алгоритма bsdiff. Используя bsdiff, удалось уменьшить размер обновления приложения в среднем на 47% по сравнению с полновесными APK-установщиками.

Сегодня разработчики ОС Android представили новую методику обновлений на Андроид, которая идет еще дальше - система обновлений File-by-File (файл за файлов). Обновления android-приложений, использующие данную систему патчинга, в среднем, потребляют на 65% меньше трафика, чем полное приложение, а в некоторых случаях более чем на 90% экономят потребление данных при обновлении.

Разница, по сравнению с нашим предыдущим подходом сжатия файлов обновлений на телефон, достигает 6 петабайт пользовательских данных в день!

При скачивании новой версии обновления для Андроид, Google Play отправляет на мобильное устройство патч, который описывает различия между старыми и новыми версиями приложения.

Представьте, что вы – автор книги, которая будет опубликована, и вы хотите изменить одно предложение. Гораздо проще попросить редактора внести соответствующие правки, а не отправлять совершенно новую книгу. Таким же образом, обновления на Андроид намного меньше и гораздо быстрее скачиваются, чем загрузка APK-установщика приложения.

Методы патчинга файлов (метод “Файл за файлом”) для обновлений на Андроид

Мобильные приложения Android упакованы в APK-контейнеры, представляющие собой ZIP-архивы со специальными конвенциями. Большая часть содержимого в файлах ZIP (и файлах APK) сжаты с помощью технологии под названием Deflate. Дефлейт действительно хорошо сжимает данные, но у данного метода упаковки приложений есть недостаток: отследить изменения в исходном (несжатом) содержании apk-файла очень трудно. Даже незначительное изменение первоначального содержимого (например, изменение одного слова в книге) может совершенно изменить архив. Описывать различия между исходным содержанием легко, но описывать различия между сжатым контентом настолько сложно, что это приводит к неэффективности патчей.

Метод обновления “Файл за файлом”, следовательно, основан на обнаружении изменений в несжатых данных. Для создания патча распаковываются как старые, так и новые файлы перед вычислением дельты (используется сравнение bsdiff). Применяется патч, затем распаковывается старый файл, применяется дельта несжатого контента, а затем упаковывается новый файл.

Тем не менее, есть один нюанс: дополнительная мощность процессора на мобильном устройстве очень желательна. На современных android-устройствах (например, выпущенных после 2015 года) рекомпрессия может занять чуть больше секунды за мегабайт, а на старых или менее мощных устройствах – чуть больше. В среднем, если размер патча уменьшается в два раза, то время, потраченное на применение патча, соответственно, удвоится.

Эти изменения в системе обновлений приложений призваны обеспечить Android-сообщество с миллиардом пользователей использовать минимум данных, насколько это возможно применительно к регулярным обновлениям приложений. Самый главный плюс данного метода экономии – разработчикам не нужно ничего делать, все уже работает их без вмешательства.

Скачать Google Play бесплатно

Украинское изготовление пластиковых окон у Новикон