Observou esse comportamento muito estranho com o aplicativo Android. Cenário aproximado:
- Versão A instalada no dispositivo
- Aplicativo funciona bem
- Versão B instalada no dispositivo (B> A)
- Aplicativo funciona bem
- O dispositivo é desligado devido ao consumo de bateria
- Dispositivo ligado
- A versão A do aplicativo é executada no dispositivo novamente
Informação adicional:
- O aplicativo não é distribuído pelo Google Play, mas instalado no local via conexão USB (NOTA: o aplicativo é executado em produção; não é instalado pelo AndroidStudio).
- Quiosque
- Android 5.1 (API 22)
Acho que tenho duas perguntas:
- Por que o dispositivo armazenou em cache a versão mais antiga do APK (e onde o armazenou em cache)?
- Sob quais circunstâncias os aplicativos podem reverter para versões anteriores assim?
Editar (mais informações):
- Parece que depois que o APK é revertido, o aplicativo perde algumas permissões (talvez até todas). Funcionalidade que funcionou antes da reversão para de funcionar devido ao lançamento de SecurityException das APIs do Android. Isso acontece mesmo que essa versão do Android ainda não tenha permissões de tempo de execução!
- Depois de navegar sistema de arquivos do tablet, eu de fato ver APKs vários de aplicativos residentes em caminhos semelhantes:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk, etc.
Minha hipótese atual é que o consumo de bateria faz com que o tablet "redefina" seu estado (por exemplo, o relógio também é redefinido) e, quando é ligado novamente, confunde os APKs do aplicativo e carrega o errado.
No entanto, não tenho idéia por que isso seria feito ou como impedir esse comportamento.