我知道这个问题有点愚蠢,但我无法找到我的偏好设置屏幕的设置存储位置。
我正在使用共享首选项,此文件位于/data/data/my.package.name/shared_prefs/common.xml
。但是,当我更改某些内容时,会存储更改。我甚至实现了可以存储其信息的自定义控件。但是我无法弄清楚设置的存储位置。 /data/data/my.package.name/
只是一个不包含任何相关信息的xml文件。我还检查了多用户设备的虚拟目录,但没有运气。
这是我的xml:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/my.package.name"
android:persistent="true" >
<PreferenceCategory android:title="@string/settings_basics_group" >
<EditTextPreference
android:key="nickname"
android:persistent="true"
android:positiveButtonText="@string/setting_change_name"
android:title="@string/settings_username" />
<my.package.name.controls.EmailPreference
android:key="mail"
android:title="@string/settings_email"
custom:domains="@array/known_email_domains" />
<Preference
android:summary="Mars"
android:title="@string/settings_current_location" />
<my.package.name.controls.DatePreference
android:key="birthday"
android:title="@string/settings_birthday" />
</PreferenceCategory>
</PreferenceScreen>
如果有人能够解释我存储这些设置的位置,我会非常高兴。
答案 0 :(得分:2)
应用偏好设置存储在您可以使用PreferenceManager.getDefaultSharedPreferences()
检索的默认共享偏好设置中。
XML文件本身位于/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml
答案 1 :(得分:1)
对于较早的Android版本,包括Jelly Bean(API 16)及更早版本,Dalmas的答案是正确的。所以请随时回答这个问题。
从Jelly Bean MR1开始(API 17),由于多用户支持,有关于路径的新规则:
我发现设置文件位于/data/user/##/my.package.name/shared_prefs/my.package.name_preferences.xml
,其中##
是我的数字用户ID。
要解决该路径,您需要ApplicationContext
,您需要反映mLoadedAPK
和mDataDir
。现在我很高兴我可以从调试器中获取路径。对于想要准备使用代码段的每个人,对不起,您必须自己动手。