Заметил это очень странное поведение с приложением Android. Примерный сценарий:
- Версия A установлена на устройстве
- Приложение работает нормально
- Версия B установлена на устройстве (B> A)
- Приложение работает нормально
- Устройство выключается из-за разряда батареи
- Устройство включено
- Версия A приложения снова запускается на устройстве
Дополнительная информация:
- Приложение не распространяется через Google Play, но устанавливается локально через USB-соединение (ПРИМЕЧАНИЕ: приложение работает в рабочем режиме; оно не устанавливается через AndroidStudio).
- киоск
- Android 5.1 (API 22)
Я думаю, у меня есть два вопроса:
- Почему устройство кэшировало старую версию APK (и где оно кешировало ее)?
- При каких обстоятельствах приложения могут откатиться к предыдущим версиям?
Изменить (дополнительная информация):
- Похоже, после отката APK приложение теряет некоторые разрешения (может быть, даже все). Функциональность, которая работала до прекращения отката из-за исключения SecurityException из API-интерфейсов Android. Это происходит, даже если эта версия Android еще не имеет прав доступа!
- После просмотра файловой системы планшета, я действительно вижу APK - приложений несколько проживающего в сходных путях:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apkи т.д.
Моя текущая гипотеза заключается в том, что разряд батареи приводит к тому, что планшет «сбрасывает» свое состояние (например, часы также сбрасываются), а при повторном включении он путает APK-файлы приложения и загружает неправильный.
Тем не менее, я понятия не имею, почему он это делает, или как предотвратить такое поведение.