공유 환경 설정은 어디에 저장됩니까?


147

Eclipse 프로젝트에서 공유 환경 설정 파일이있는 곳은 어디입니까?


공유 preference.xml이 데이터에 저장되어 있지만 설치하기 전에 어디에 저장되어 있는지 알고 있습니다. .smali 형식으로?
sharath3589

답변:


241

SharedPreferences는 앱 데이터 폴더의 xml 파일에 저장됩니다.

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

또는 다음의 기본 환경 설정 :

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

런타임 중에 추가 된 SharedPreferences는 Eclipse 프로젝트에 저장되지 않습니다.

참고 : 액세스 /data/data/<package_name>하려면 수퍼 유저 권한이 필요합니다


3
기본 공유 환경 설정 파일은 실제로 다음과 같습니다 /data/data/<package>/shared_prefs/<package>_preferences.xml.
inazaruk

@inazaruk 실제로는 전체 패키지 이름이지만 장치 /<package>_preferences.xml와 혼합 된 용도로 사용 /<package>.xml됩니다. 아마도 그것은 앱의 API 레벨에 달려 있습니까?
Aleadam

1
내가 대해 복용 것을 참고 기본 공유 설정. 파일 이름이 항상 같은 것처럼 보입니다. 초기가 커밋을 참조하십시오 PreferenceManager.java, getDefaultSharedPreferences여기 기능 android.git.kernel.org/?p=platform/frameworks/... . 최신 버전 PrefencesManager.jave에서도 변경되지 않았습니다 : android.git.kernel.org/?p=platform/frameworks/…
inazaruk

시스템에서 경로를 가져오고 하드 코딩하지 않는 방법은 무엇입니까? ContextImpl.java는 개인 getPreferencesDir func에서 구현하므로 어떻게 든 런타임에 이것을 얻는 것이 유용합니다.
Pointer Null

새로운 FIle (context.getFilesDir (). getParent (), "shared_prefs")를 사용할 수 있습니다. Nexus 5에서는 작동하지만 다른 제조업체는 확실하지 않습니다.
gswierczynski

9

환경 설정은 코드에서 설정하거나 res / xml / preferences.xml에서 찾을 수 있습니다. Android SDK 웹 사이트에서 환경 설정에 대한 자세한 내용을 읽을 수 있습니다.


4
Android 프로젝트를 작성하는 한 "res"디렉토리를 마우스 오른쪽 단추로 클릭하고 'xml'이라는 새 폴더를 추가 할 수 있습니다. 다른 "특수"폴더는 애니메이션, 드로어 블, 레이아웃, 메뉴, 원시 및 값입니다.
JasCav

6

시간을 절약하기 위해 ...

내 Galaxy S v.2.3.3에서 공유 환경 설정은 다음에 저장되지 않습니다./data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

그러나 현재 위치 : /dbdata/databases/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

나는 그들이 2.3에서 이것을 바꿨다고 믿는다.


1
2.2에서도 동일합니까? 이클립스 또는 프로젝트 위치에서 프로젝트의 어느 곳에서나 / data 파일을 찾을 수 없습니다.
Pramod

이클립스가 아닌 @pramod-실제 장치 파일 구조의 경로입니다.
Richard Le Mesurier

@Pramod 파일 탐색기보기에서 볼 수 있습니다/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml
Akhil Jain

2
/dbdata/내 JB 장치에 존재하지 않습니다
rekire

6

방금 다음과 같이 공유 환경 설정 경로를 얻으려고했습니다.

File f = getDatabasePath("MyPrefsFile.xml");

if (f != null)
    Log.i("TAG", f.getAbsolutePath());

5

데이터는 장치의 응용 프로그램의 개인 데이터 영역에 저장됩니다. Eclipse 프로젝트에 없습니다.


3

공유 환경 설정은 저장할 수있는 키 / 값 쌍입니다. 내부 스토리지 유형이므로 외부 데이터베이스를 작성하지 않아도됩니다. 이를 보려면 1) 메뉴 표시 줄에서보기로 이동하십시오. 도구 창을 선택하십시오. 2) 장치 파일 탐색기를 클릭하십시오. 3) 오른쪽에 장치 파일 탐색기가 열립니다. 4) 데이터 폴더를 찾아 클릭하십시오. 5) 데이터 폴더에서 다른 데이터 폴더를 선택할 수 있습니다. 6)이 데이터 폴더에서 패키지 이름을 검색하십시오. 예 : com.example.com 7) 그런 다음 shared_prefs를 클릭하고 .xml 파일을 엽니 다.

도움이 되었기를 바랍니다!


1

사용 http://facebook.github.io/stetho/의 크롬 도구를 검사와 라이브러리는 앱의 로컬 스토리지에 액세스 할 수 있습니다. 로컬 저장소-> <앱의 패키지 이름>에서 sharedPreference 파일을 찾을 수 있습니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.