App deinstallieren ohne Daten zu löschen

Ich baue eine App, die Updates von einem Server erhält. Zu Beginn der App findet also ein Download statt. Dieses Ding wird jedoch etwas nervig, da ich immer, wenn ich einen neuen Build testen möchte, Folgendes verwenden würde:

adb -d uninstall com.mycompany.myapp

Dieser Befehl entfernt die App sowie ihre gespeicherten Daten/Cache. Jetzt müsste ich jedes Mal, wenn ich dies tue, den Prozess des Herunterladens der Updates erneut durchlaufen, und es kostet Zeit (viel davon).

Gibt es einen adbBefehl, der die App deinstalliert, ohne ihre Daten/Cache zu entfernen? Eclipse ADT kann dies tun, aber ich möchte Eclipse nicht jedes Mal starten, wenn ich baue.

BEARBEITEN : Ich habe versucht, es zu verwenden, adb uninstall -k com.mycompany.myappaber es antwortet immer so:

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'

Wenn ich es versuche adb shell pm uninstall -k com.mycompany.myapp, sagt es nur Failed.

Warum können Sie Ihre überarbeitete App nicht einfach als Update bereitstellen, das über die neue App installiert wird?
Wie mache ich das genau?
@LanceGray – aktualisieren Sie den Versionscode in Ihrer AndroidManifest.xml

Antworten (1)

Wenn Sie adbohne Argumente laufen, gibt Ihnen der Hilfetext die Antwort auf diese Frage.

adb uninstall -k com.mycompany.myapp

entfernt die App, lässt aber die Daten- und Cache-Verzeichnisse. Ähnlich,

adb install -r myapp.apk

installiert eine vorhandene App mit einer neuen APK-Datei neu, wobei ihre Daten intakt bleiben.

Als Nebenbemerkung weiß ich nicht, ob Sie davon betroffen sind, aber vergessen Sie nicht, dass die Entwicklerbedingungen von Google Play Apps verbieten, sich selbst (Aktualisierung der APK-Datei) über einen Nicht-Google-Play-Kanal zu aktualisieren. Damit soll verhindert werden, dass Entwickler die Google Play-Bedingungen umgehen, indem sie eine „Stub“-App erstellen, die sich nach der Installation selbst durch eine App ersetzt, die die Google Play-Bedingungen nicht erfüllt. Das Aktualisieren von Datendateien und dergleichen ist vollkommen in Ordnung.

Danke. Immer wenn ich es versuche adb uninstall -k com.mycompany.myapp, erhalte ich eine Fehlermeldung, die besagt, dass es nicht verwendet werden soll, und wenn ich es wirklich verwenden möchte, sollte ich das adb shell pmGegenstück verwenden, das bei mir nicht funktioniert. Die App, die ich baue, ist nicht für Google Play, also denke ich, dass es in Ordnung ist? Kannst du mir einen Link geben, damit ich mir das genauer anschauen kann?
Die -rOption funktioniert perfekt für mich, wenn ich die apk einer von mir installierten App aktualisieren musste (wohlgemerkt mit derselben Signatur), ohne alle meine Daten zu verlieren.