회사 내 과제로 앱 하나를 만들어 서버에 올려놓았다가 몇 가지 업데이트 후 테스트를 하는 중 문제가 발생했다.
앱을 새로 설치했는데 최초 실행 체크용으로 넣어둔 sharedPreference값이 default값이 아닌 전에 설정되었던 값이 나오는 현상이었다.
안드로이드 스튜디오상에서 adb로 밀어 넣었을 때는 문제없었으나 사이닝 한 경우 문제가 발생했다.
이 문제의 원인은 android:allowBackup="true" 였다.
developer에서의 설명은 다음과 같다.
[android:allowBackup애플리케이션이 백업 및 복원 인프라에 참여하도록 허용할지 여부입니다. 이 속성을 false로 설정하면 모든 애플리케이션 데이터가 adb를 통해 저장되는 전체 시스템 백업에 의해서도 애플리케이션의 백업 또는 복원이 수행되지 않습니다. 이 속성의 기본값은 true입니다.]
이에 대해 좀 더 검색한 결과를 통해 나와 비슷한 경험을 한 블로그를 발견했다. 내용은 아래와 같다.
안드로이드 6.0부터는
AndroidManifest.xml 파일에서
application 요소의 android:allowBackup 속성을
명시하지 않으면 자동으로 true로 설정됩니다.
이로 인해 사용자도 모르게 데이터가
구글 클라우드에 자동으로 백업됩니다.
앱 삭제 후 재설치하면,
자료가 자동으로 복원됩니다.
출처 : https://m.blog.naver.com/netrance/221224761858
해당 옵션을 false로 변경함으로써 문제는 해결되었으나 원스토어에 이미 true로 올라간 상태였기 때문이었는지 업데이트 후 간혹 특정 기기에서는 알 수 없는 에러가 발생하였고 기존 앱을 삭제하고 새 버전을 설치함으로 문제가 해결되었다.(필자의 경우 G7 Android OS 10에서 발생)
해당 설정은 Android 6부터 적용이라고 되어 있으나 모든 단말에서 현상이 일어나지 않은 것으로 보아 단말에 따라 혹은 OS에 따라 backup 하고 적용하는 범위가 다른 것이 아닐까 생각된다. (아닐 수 있다 결과에 따른 추측일뿐)
아무튼 해당 설정은 false로 항상 바꾸는것이 좋겠다.
statusbar 색상 변경방법 (0) | 2020.07.28 |
---|---|
간단 DrawerLayout 사용법 (0) | 2020.07.28 |
안드로이드 스튜디오 업데이트 후 screenOrientation="protrait"부분의 빨간줄이 신경쓰인다면? (0) | 2020.07.28 |
확대 축소가 되는 ImageView와 Android 9에서의 오류 수정 (0) | 2020.07.24 |
adb.exe의 위치 (0) | 2020.07.23 |