Старое приложение удаляется при обновлении?

11

Я хочу знать, когда обновление доступно для приложения, очевидно, новый apk там. Так что, старый apk удален, а новый apk установлен?

Анкит
источник

Ответы:

16

Не совсем, нет. Когда вы удаляете пакет, он также удаляет другие данные, связанные с этим пакетом: например, личные данные приложения, его данные на SD-карте, настройки по умолчанию для этого приложения. Он также сообщает любым другим заинтересованным приложениям, что вы удалили приложение, через намеренную трансляцию . Другие приложения, получающие эту трансляцию, могут предпринять дальнейшие действия, основанные на этом: например, программа запуска (приложение для домашнего экрана) удалит ярлыки на рабочем столе и виджеты из этого приложения, поскольку они больше не будут работать.

Когда пакет обновляется (то есть заменяется новым файлом APK с тем же именем пакета и кодом более поздней версии), старая версия останавливается, так что из приложения больше ничего не работает. Старый файл APK удаляется, а новый заменяет его, но другие действия по удалению не выполняются: данные частного приложения и настройки по умолчанию сохраняются, а рассылка удаления не отправляется. Вместо этого передается другое намерение сообщить всем заинтересованным приложениям, что пакет обновлен.

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

В Google Play ситуация может быть несколько иной, если разработчик включил дельта-обновления (так называемые Smart updates от Google).

В дельта-обновлении только изменения между двумя версиями загружаются и применяются к существующему APK. Например, если у вас есть приложение размером 15 МБ, и разработчик решает изменить фоновое изображение, вам не нужно снова загружать все приложение, вы можете просто загрузить дельту (разницу), которая включает в себя новый образ. Затем старый APK дублируется, новый контент внедряется в копию старого APK, и в случае успеха старый APK удаляется. Конечный результат - обновленный APK.

Дэн Халм
источник
Это четкий ответ! Подскажите, пожалуйста, как удалить старые данные приложения при установке нового обновления?
lifeLongLearner
@lifeLongLearner Просто используйте кнопку «очистить данные» в настройках, так же, как в любое другое время.
Дэн Халм