Beobachtet dieses sehr seltsame Verhalten mit Android-Anwendung. Ungefähres Szenario:
- Version A auf dem Gerät installiert
- Anwendung funktioniert in Ordnung
- Auf dem Gerät installierte Version B (B> A)
- Anwendung funktioniert in Ordnung
- Gerät schaltet sich aufgrund von Batterieentladung aus
- Gerät eingeschaltet
- Version A der Anwendung wird erneut auf dem Gerät ausgeführt
Zusätzliche Information:
- Die Anwendung wird nicht über Google Play vertrieben, sondern lokal über eine USB-Verbindung installiert (HINWEIS: Die Anwendung wird in der Produktion ausgeführt; sie wird nicht über AndroidStudio installiert).
- Kiosk
- Android 5.1 (API 22)
Ich habe wohl zwei Fragen:
- Warum hat das Gerät die ältere Version des APK zwischengespeichert (und wo hat es sie zwischengespeichert)?
- Unter welchen Umständen können Anwendungen auf solche früheren Versionen zurückgesetzt werden?
Bearbeiten (weitere Informationen):
- Es sieht so aus, als ob die Anwendung nach dem Zurücksetzen der APK einige Berechtigungen verliert (möglicherweise sogar alle). Funktionen, die vor dem Rollback funktionierten, funktionieren nicht mehr, da SecurityException von den Android-APIs ausgelöst wurde. Dies geschieht, obwohl diese Version von Android noch keine Laufzeitberechtigungen hat!
- Nach dem Surfen Dateisystem des Tablets, sehe ich in der Tat mehrere App APKs unter ähnlichen Pfaden mit Wohnsitz:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apkusw.
Meine aktuelle Hypothese lautet, dass der Akku dazu führt, dass das Tablet seinen Status "zurücksetzt" (z. B. wird auch die Uhr zurückgesetzt). Wenn es wieder eingeschaltet wird, verwechselt es zwischen den APKs der App und lädt das falsche.
Ich habe jedoch keine Ahnung, warum das so ist oder wie man dieses Verhalten verhindert.