회사에서 코틀린으로 프로젝트를 진행중이었는데 분명 앱을 삭제하고 다시 설치를 했지만 shared preference 데이터가 복원되는 증상이 계속해서 발생했다.
Android API 23(또는 Android "6.0" 또는 Android "Marshmellow")이후 BackupManager는 공유 환경 설정을 포함한 앱의 모든 데이터를 클라우드에 저장한다.
이는 안드로이드 6.0부터는 AndroidManifest.xml 파일에서 application 요소의 android:allowBackup 속성을 명시하지 않으면 자동으로 true로 설정하기 때문인데 이로 인해 사용자도 모르게 데이터가 구글 클라우드에 자동으로 백업된다.
결국 재설치를 하면 자료가 자동으로 백업이 되다보니 환경설정 데이터도 복원되는 것이다.
아래처럼 AndroidManifest.xml의 파일에 application요소에 allowBackup, fullBackupContent 요소를 false로 설정하면된다.
// AndroidManifest.xml
<application
...
android:allowBackup="false"
android:fullBackupContent="false"
...
>