Observé este comportamiento muy extraño con la aplicación de Android. Escenario aproximado:
- Versión A instalada en el dispositivo
- La aplicación funciona bien
- Versión B instalada en el dispositivo (B> A)
- La aplicación funciona bien
- El dispositivo se apaga debido al agotamiento de la batería
- Dispositivo encendido
- La versión A de la aplicación se ejecuta nuevamente en el dispositivo
Información adicional:
- La aplicación no se distribuye a través de Google Play, sino que se instala en las instalaciones a través de una conexión USB (NOTA: la aplicación se ejecuta en producción; no se instala a través de AndroidStudio).
- Quiosco
- Android 5.1 (API 22)
Creo que tengo dos preguntas:
- ¿Por qué el dispositivo almacenó en caché la versión anterior del APK (y dónde lo almacenó)?
- ¿En qué circunstancias pueden las aplicaciones volver a versiones anteriores como esa?
Editar (más información):
- Parece que después de que el APK se revierte, la aplicación pierde algunos permisos (tal vez incluso todos). Funcionalidad que funcionaba antes de que la reversión dejara de funcionar debido a que se lanzaba SecurityException desde las API de Android. Esto sucede a pesar de que esta versión de Android todavía no tiene permisos de tiempo de ejecución.
- Después de navegar por el sistema de archivos de la tableta, de hecho me veo APK varias de aplicaciones que residen en virtud de caminos similares:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk, etc.
Mi hipótesis actual es que el agotamiento de la batería hace que la tableta "restablezca" su estado (por ejemplo, el reloj también se restablece), y cuando se vuelve a encender se confunde entre los APK de la aplicación y carga el incorrecto.
Sin embargo, no tengo idea de por qué haría eso o cómo prevenir este comportamiento.