Ho osservato questo comportamento molto strano con l'applicazione Android. Scenario approssimativo:
- Versione A installata sul dispositivo
- L'applicazione funziona bene
- Versione B installata sul dispositivo (B> A)
- L'applicazione funziona bene
- Il dispositivo si spegne a causa del consumo della batteria
- Dispositivo acceso
- La versione A dell'applicazione viene eseguita nuovamente sul dispositivo
Informazioni addizionali:
- L'applicazione non è distribuita tramite Google Play, ma installata on-premise tramite connessione USB (NOTA: l'applicazione viene eseguita in produzione; non è installata tramite AndroidStudio).
- Chiosco
- Android 5.1 (API 22)
Immagino di avere due domande:
- Perché il dispositivo ha memorizzato nella cache la versione precedente dell'APK (e dove l'ha memorizzata nella cache)?
- In quali circostanze le applicazioni possono tornare alle versioni precedenti del genere?
Modifica (ulteriori informazioni):
- Sembra che dopo il rollback dell'APK, l'applicazione perda alcune autorizzazioni (forse anche tutte). Funzionalità che ha funzionato prima del rollback smette di funzionare a causa del lancio di SecurityException dalle API di Android. Questo succede anche se questa versione di Android non ha ancora i permessi di runtime!
- Dopo la navigazione del file system del tablet, che in effetti vedo APK diversi di app che risiedono in percorsi simili:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk, etc.
La mia attuale ipotesi è che il consumo della batteria induca il tablet a "ripristinare" il suo stato (ad esempio, anche l'orologio viene ripristinato) e quando viene alimentato di nuovo confonde tra gli APK dell'app e carica quello sbagliato.
Tuttavia, non ho idea del perché dovrebbe farlo o come prevenire questo comportamento.