Обновления смарт-приложений в Google Play Store: как это работает?
В магазине Google Play (начиная с августа 2012 года) появилась новая функция под названием Smart App Updates, которая позволяет загружать только необходимую "дельту" при обновлении приложения.
Я не нашел документации для разработчиков относительно этой функции, поэтому я не знаю, как оптимизировать мое приложение, чтобы удостовериться, что это выгодно для этого великолепного механизма.
Итак, кто-нибудь знает:
- Каковы технические последствия (если они есть), которые были бы хорошими для разработчиков?
(Я полагаю, что новый, полноразмерный APK построен на пользовательском устройстве, или, возможно, неизменные данные хранятся где-то еще?)
- Является ли повторное использование неизмененных данных из предыдущих версий ограниченным определенным ресурсом? (например, файлы в папке
asset
)
Ответы
Ответ 1
Шаг за шагом:
- GDIFF, алгоритм дельта-кодирования, используется для вычисления разницы между
старой версии приложения и новой. Это делается на сервере
боковая сторона. Эта вычисленная разница обычно называется
файл исправления.
- Файл патча передается на устройство.
- Приложение Google Play Store использует файл исправления и старое приложение для создания новой версии приложения.
- Новая версия установлена на устройстве.
В настоящее время размер патча составляет 25% от размера новой версии приложения (в среднем). Таким образом, вы получаете в среднем 75% трафика. Компромисс заключается в том, что вам нужно сделать больше вычислений на конечном устройстве для развертывания полученного патча в зависимости от метода дельта-кодирования. GDIFF чрезвычайно прост и имеет минимальные накладные расходы. Разница вычисляется между пакетами APK (используется вся информация в APK). Как уже упоминалось, разработчикам не нужно ничего делать, чтобы извлечь выгоду из этой новой функции.
Ответ 2
Причина, по которой документация не существует, потому что все 100% выполняется на стороне сервера с помощью google без какого-либо внешнего взаимодействия. Разработчики не должны беспокоиться об этой функциональности. Просто разработайте свое приложение, которое обычно будет.
Чтобы быть справедливым, я не верю, что они хотят, чтобы кто-нибудь знал, как это работает, потому что я предполагаю, что это часть их интеллектуальной собственности.