Zaobserwowałem to bardzo dziwne zachowanie w aplikacji na Androida. Przybliżony scenariusz:
- Wersja A zainstalowana na urządzeniu
- Aplikacja działa dobrze
- Wersja B zainstalowana na urządzeniu (B> A)
- Aplikacja działa dobrze
- Urządzenie wyłącza się z powodu rozładowania baterii
- Urządzenie włączone
- Wersja A aplikacji działa ponownie na urządzeniu
Dodatkowe informacje:
- Aplikacja nie jest dystrybuowana za pośrednictwem Google Play, ale jest instalowana lokalnie przez połączenie USB (UWAGA: aplikacja działa w trybie produkcyjnym; nie jest instalowana przez AndroidStudio).
- Kiosk
- Android 5.1 (API 22)
Chyba mam dwa pytania:
- Dlaczego urządzenie buforowało starszą wersję pliku APK (i gdzie go buforowało)?
- W jakich okolicznościach aplikacje mogą przywracać poprzednie wersje tego typu?
Edytuj (więcej informacji):
- Wygląda na to, że po wycofaniu APK aplikacja traci niektóre uprawnienia (może nawet wszystkie). Funkcjonalność, która działała, zanim wycofanie przestało działać z powodu wyłączenia SecurityException z interfejsów API Androida. Dzieje się tak, mimo że ta wersja Androida nie ma jeszcze uprawnień do wykonywania.
- Po przeglądania plików tabletu, ja rzeczywiście zobaczyć pliki APK kilku aplikacji zamieszkały pod podobnymi ścieżkami:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk, itd.
Moja obecna hipoteza jest taka, że rozładowanie baterii powoduje, że tablet „resetuje” swój stan (na przykład zegar jest również resetowany), a po ponownym włączeniu myli się między pakietami APK aplikacji i ładuje niewłaściwy.
Nie mam jednak pojęcia, dlaczego miałby to zrobić ani jak temu zapobiec.