Удалить приложение без удаления данных

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

adb -d uninstall com.mycompany.myapp

Эта команда удаляет приложение, а также сохраненные данные/кэш. Теперь, всякий раз, когда я это делаю, мне приходится снова проходить процесс загрузки обновлений, и это требует времени (много времени).

Есть ли adbкоманда, которая удалит приложение без удаления его данных/кеша? Eclipse ADT может это сделать, но я не хочу запускать Eclipse каждый раз при сборке.

РЕДАКТИРОВАТЬ : я пытался использовать adb uninstall -k com.mycompany.myapp, но он всегда отвечает следующим образом:

The -k option uninstalls the application while retaining the data/cache.
At the moment, there is no way to remove the remaining data.
You will have to reinstall the application with the same signature, and fully uninstall it.
If you truly wish to continue, execute 'adb shell pm uninstall -k com.mycompany.myapp'

Если я попробую adb shell pm uninstall -k com.mycompany.myapp, это просто говорит Failed.

Почему вы не можете просто предоставить исправленное приложение как обновление, которое устанавливается поверх нового приложения?
Как мне это сделать?
@LanceGray — обновите код версии в вашем AndroidManifest.xml

Ответы (1)

Если вы запустите adbбез аргументов, текст справки даст вам ответ на этот вопрос.

adb uninstall -k com.mycompany.myapp

удаляет приложение, но оставляет каталоги данных и кеша. Сходным образом,

adb install -r myapp.apk

переустанавливает существующее приложение с новым файлом APK, сохраняя его данные нетронутыми.

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

Спасибо. Всякий раз, когда я пытаюсь adb uninstall -k com.mycompany.myapp, я получаю сообщение об ошибке, в котором говорится, что его нельзя использовать, и если я действительно хочу его использовать, я должен использовать adb shell pmаналог, который не работает на мне. Приложение, которое я создаю, не для Google Play, так что, думаю, оно нормальное? Можете ли вы дать ссылку, чтобы я мог изучить ее подробнее?
Этот -rвариант отлично работает для меня, когда мне нужно обновить apk приложения, которое я установил (с той же подписью, заметьте), без потери всех моих данных.