168 votes

Où sont stockées les préférences partagées ?

Où dans un projet Eclipse pourrait-on trouver un fichier de préférences partagées ?

0 votes

Je suis conscient que shared preference.xml est stocké dans les données, mais où est-il stocké avant d'être installé ; en format .smali?

267voto

Aleadam Points 25433

Les SharedPreferences sont stockés dans un fichier xml dans le dossier des données de l'application, c'est-à-dire,

/data/data/NOM_DE_VOTRE_PACKAGE/shared_prefs/NOM_DE_VOS_PREFS.xml

ou les préférences par défaut à :

/data/data/NOM_DE_VOTRE_PACKAGE/shared_prefs/NOM_DE_VOTRE_PACKAGE_preferences.xml

Les SharedPreferences ajoutés pendant l'exécution ne sont pas stockés dans le projet Eclipse.

Note : Accéder à /data/data/ nécessite des privilèges superutilisateur

3 votes

Le fichier de préférences partagées par défaut serait en réalité : /data/data//shared_prefs/_preferences.xml.

0 votes

@inazaruk Il s'agit en effet du nom complet du package, bien que je voie des utilisations mixtes de /_preferences.xml et /.xml sur les appareils. Peut-être que cela dépend du niveau API de l'application?

1 votes

Notez que je parlais des préférences partagées par défaut. Il semblerait que le nom de fichier était toujours le même pour elles. Consultez le commit initial pour la fonction PreferenceManager.java, getDefaultSharedPreferences ici : android.git.kernel.org/?p=platform/frameworks/…. Et il n'a pas été modifié dans la dernière version de PrefencesManager.jave non plus : android.git.kernel.org/?p=platform/frameworks/…

9voto

JasCav Points 18931

Les préférences peuvent être définies dans le code ou être trouvées dans res/xml/preferences.xml. Vous pouvez en savoir plus sur les préférences sur le site Web de Android SDK.

4 votes

Vous devez le créer - dès que vous avez créé un projet Android, vous pouvez ensuite cliquer avec le bouton droit sur le répertoire "res" et ajouter un nouveau dossier appelé 'xml'. D'autres dossiers "spéciaux" sont anim, drawable, layout, menu, raw et values.

7voto

Ramesh Points 3483

J'ai juste essayé d'obtenir le chemin des préférences partagées ci-dessous comme ceci. Cela fonctionne pour moi.

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

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

6voto

android-overflow Points 255

Juste pour vous faire gagner du temps...

Sur mon Galaxy S v.2.3.3 les préférences partagées ne sont pas stockées dans : /data/data/NOM_DE_VOTRE_PACKAGE/shared_prefs/NOM_DE_VOS_PREFS.xml

mais sont maintenant situées dans : /dbdata/bases de données/NOM_DE_VOTRE_PACKAGE/shared_prefs/NOM_DE_VOS_PREFS.xml

Je pense qu'ils ont changé cela en 2.3

1 votes

Est-ce la même chose en 2.2? Je ne trouve aucun fichier /data nulle part dans mon projet, que ce soit dans Eclipse ou dans l'emplacement du projet.

0 votes

@pramod pas dans eclipse - c'est le chemin dans la structure de fichiers réelle de l'appareil.

0 votes

@Pramod, consultez-le dans l'explorateur de fichiers et là dans /data/data/VOTRE_NOM_DU_PACKAGE/shared_prefs/NOM_DE_VOS_PREFS.xm‌l

5voto

hackbod Points 55292

Les données sont stockées sur l'appareil, dans la zone de données privée de votre application. Ce n'est pas dans un projet Eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X