Android 애플리케이션에서이 매우 이상한 동작을 관찰했습니다. 대략적인 시나리오 :
- 장치에 설치된 버전 A
- 응용 프로그램 괜찮아요
- 장치에 설치된 버전 B (B> A)
- 응용 프로그램 괜찮아요
- 배터리 방전으로 인해 장치가 종료 됨
- 장치가 켜졌습니다
- 응용 프로그램의 버전 A가 장치에서 다시 실행됩니다.
추가 정보:
- 애플리케이션은 Google Play를 통해 배포되지 않지만 USB 연결을 통해 온 프레미스에 설치됩니다 (참고 : 애플리케이션은 프로덕션에서 실행되며 AndroidStudio를 통해 설치되지 않음).
- 정자
- 안드로이드 5.1 (API 22)
두 가지 질문이 있습니다.
- 기기가 이전 버전의 APK를 캐시 한 이유는 무엇이며 어디에 캐시 했습니까?
- 어떤 상황에서 애플리케이션이 이전 버전으로 롤백 할 수 있습니까?
편집 (자세한 정보) :
- APK가 롤백 된 후 애플리케이션이 일부 권한을 잃어버린 것 같습니다 (아마도 모두). Android API에서 SecurityException이 발생하여 롤백 이전에 작동 한 기능입니다. 이 버전의 Android에 아직 런타임 권한이없는 경우에도 발생합니다!
- : 태블릿의 파일 시스템을 검색 후, 나는 참으로 여러 응용 프로그램의 APK가 비슷한 경로 아래에 존재하는 참조
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk등
나의 현재 가설은 배터리 소모로 인해 태블릿이 상태를 "재설정"하게하고 (예 : 시계도 재설정 됨) 다시 전원을 켜면 앱의 APK간에 혼동되어 잘못된 것을로드한다는 가설입니다.
그러나 나는 왜 그렇게 할 것인지, 또는이 행동을 막는 방법에 대한 단서가 없습니다.