[Android] Browse the SharedPreferences data
in Devstory on Android, Sharedpreference, Browse, Security, Secure
Android 개발시에, 외부에 노출되어도 되는 값들은 SharedPreference에 저장을 하게 됩니다. 그렇다면, 이 SharedPreference는 어떻게 관리되며 어디에 저장이 될까요? 아래와 같이 Preference에 쓰고/읽는 데이터들은 모두 특정 파일 에 기록되게 됩니다.
이 글에서는 이렇게 저장되는 “데이터”를 실제로 browsing하는 법을 소개합니다. (Android Studio 이용)
SharedPreferences 에 데이터 읽고 쓰기
우선 SharedPreferences 파일을 살펴보기 전에 데이터를 저장하고 로드하여 해당 파일 생성을 하는 법을 알아봅시다. 다음 예시와 같이 context 객체를 이용하여 SharedPreferences 객체를 생성할 수 있고, 해당 객체를 이용하여 데이터를 읽고 쓸 수 있습니다.
val prefName = "com.toast.gamebase" // 파일명이 됩니다.
2
// SharedPreferences object 생성
val pref: SharedPreferences = context.getSharedPreferences(prefName, Context.Mode_PRIVATE)
// 데이터 쓰기를 위한 SharedPreference Editor object 생성
val key = "MyName"
val value = "PankiPark"
val editor: SharedPreferences.Editor = pref.edit()
editor.let {
it.putString(key, value)
it.apply()
}
// SharedPreferences object를 이용한 데이터 읽기
val defaultValue = "404 Not found"
val name = pref.getString(key, defaultValue) // PankiPark
예를 들어 위와 같이 데이터를 저장하였다면, 해당 preference file name은 prefName 변수값을 따라, com.toast.gamebase
이 됩니다.
Browse the SharedPreferences file
안드로이드 스튜디오에서 Cmd+Shift+A
단축키를 누릅니다. 그 후, 다음과 같은 창이 뜨면, Device File Explorer를 입력하여 해당 View를 실행합니다. ( View > Tool Windows > Device File Explorer 로도 실행가능합니다.)
Device File Explorer를 실행하면 다음과 같이 adb에 연동되어있는 기기의 내용을 볼 수 있습니다.
아래의 경로로 들어가서 직접 SharedPreferences 파일을 확인해봅시다. /data/data/{package_name}/shared_prefs/{file_name}.xml
위의 예시에 해당하는 파일을 찾으면, 다음과 같은 정보들을 확인 할 수 있습니다.
Refererences
- https://developer.android.com/studio/debug/device-file-explorer?hl=ko