Observé ce comportement très étrange avec l'application Android. Scénario approximatif:
- Version A installée sur l'appareil
- L'application fonctionne bien
- Version B installée sur l'appareil (B> A)
- L'application fonctionne bien
- L'appareil s'arrête en raison de la décharge de la batterie
- Appareil allumé
- La version A de l'application s'exécute à nouveau sur l'appareil
Information additionnelle:
- L'application n'est pas distribuée via Google Play, mais installée sur site via une connexion USB (REMARQUE: l'application s'exécute en production; elle n'est pas installée via AndroidStudio).
- Kiosque
- Android 5.1 (API 22)
Je suppose que j'ai deux questions:
- Pourquoi l'appareil a mis en cache l'ancienne version de l'APK (et où l'a-t-il mis en cache)?
- Dans quelles circonstances les applications peuvent-elles revenir à des versions précédentes comme ça?
Modifier (plus d'informations):
- Il semble qu'après la restauration de l'APK, l'application perd certaines autorisations (peut-être même toutes). Fonctionnalité qui fonctionnait avant que la restauration cesse de fonctionner en raison de la suppression de SecurityException à partir des API d'Android. Cela se produit même si cette version d'Android n'a pas encore d'autorisations d'exécution!
- Après avoir parcouru le système de fichiers de la tablette, je vois bien les APK de plusieurs applications résidant dans des chemins similaires:
/data/app/com.myapp-2/base.apk
,/data/app/com.myapp-3/base.apk
, etc.
Mon hypothèse actuelle est que la décharge de la batterie amène la tablette à "réinitialiser" son état (par exemple, l'horloge est également réinitialisée), et lorsqu'elle est à nouveau alimentée, elle confond entre les fichiers APK de l'application et charge le mauvais.
Cependant, je n'ai aucune idée pourquoi ferait-il cela, ou comment empêcher ce comportement.