Обновления смарт-приложений в Google Play Store: как это работает? - программирование
Подтвердить что ты не робот

Обновления смарт-приложений в Google Play Store: как это работает?

В магазине Google Play (начиная с августа 2012 года) появилась новая функция под названием Smart App Updates, которая позволяет загружать только необходимую "дельту" при обновлении приложения.

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

Итак, кто-нибудь знает:

  • Каковы технические последствия (если они есть), которые были бы хорошими для разработчиков? (Я полагаю, что новый, полноразмерный APK построен на пользовательском устройстве, или, возможно, неизменные данные хранятся где-то еще?)
  • Является ли повторное использование неизмененных данных из предыдущих версий ограниченным определенным ресурсом? (например, файлы в папке asset)
4b9b3361

Ответ 1

Шаг за шагом:

  • GDIFF, алгоритм дельта-кодирования, используется для вычисления разницы между старой версии приложения и новой. Это делается на сервере боковая сторона. Эта вычисленная разница обычно называется файл исправления.
  • Файл патча передается на устройство.
  • Приложение Google Play Store использует файл исправления и старое приложение для создания новой версии приложения.
  • Новая версия установлена ​​на устройстве.

В настоящее время размер патча составляет 25% от размера новой версии приложения (в среднем). Таким образом, вы получаете в среднем 75% трафика. Компромисс заключается в том, что вам нужно сделать больше вычислений на конечном устройстве для развертывания полученного патча в зависимости от метода дельта-кодирования. GDIFF чрезвычайно прост и имеет минимальные накладные расходы. Разница вычисляется между пакетами APK (используется вся информация в APK). Как уже упоминалось, разработчикам не нужно ничего делать, чтобы извлечь выгоду из этой новой функции.

Ответ 2

Причина, по которой документация не существует, потому что все 100% выполняется на стороне сервера с помощью google без какого-либо внешнего взаимодействия. Разработчики не должны беспокоиться об этой функциональности. Просто разработайте свое приложение, которое обычно будет.

Чтобы быть справедливым, я не верю, что они хотят, чтобы кто-нибудь знал, как это работает, потому что я предполагаю, что это часть их интеллектуальной собственности.