내 Shared Preferences 파일은 어디에

Shared Preferences가 파일로 데이터를 저장하는 것이고, Android에서 이것을 쉽게 도와주는 것이라는 것은 모두 알 것이다.  그럼 어딘가에 저장되어 있다는 것인데, 이파일이 꼭꼭 숨겨져 있지 않고 찾기 쉬운 곳에 있다.

혹시 다른 app 간 통신에 Shared Preferences를 이용하고 있다면, 그 파일이 실제로 저장되었는지도 확인할 필요가 있다. 파일의 위치는 AndroidManifest.xml에 적힌 package 이름에 영향을 받는다.

/data/data/[YOUR_PACKAGE_NAME]/shared_prefs/[YOUR_PACKAGE_NAME]_preferences.xml

Default가 아닌 Preferences들도 같은 폴더에 저장되어 있다. 이에 대한 스택오버플로우에 올라온 좋은 답은 여기에!

하지만, Android에서는 World Readable로 선언된 Preferences 사용을 권장하지 않는다. 이유는, 어떤 app이나 접근할 수 있고 위에 말한 것처럼 파일의 위치도 노출되어 있기 때문이다. Preferences를 통해 데이터를 공유하는 경우에는, 모든 app에서 읽어가도 무방한 것만 공유하자.

아니라면, Intent, AIDL등의 방법을 사용하는 것이 옳다.

참고로 꼭 써야한다면? Lint를 이용한 검증 때, 잡히지 않도록 @SuppressLint(“WorldReadableFiles”) 를 method나 class에 붙여주면 warning을 보지 않을 수 있다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.