Dove vengono archiviate le preferenze condivise?


147

Dove in un progetto Eclipse si potrebbe incontrare un file delle preferenze condiviso?


Sono consapevole del fatto che le preferenze condivise.xml sono archiviate nei dati, ma dove sono archiviate prima di essere installate; in formato .smali?
sharath3589,

Risposte:


241

Le preferenze condivise sono archiviate in un file xml nella cartella dei dati dell'app, ad es

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

o le preferenze predefinite su:

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

Le preferenze condivise aggiunte durante il runtime non vengono archiviate nel progetto Eclipse.

Nota: l'accesso /data/data/<package_name>richiede i privilegi di superutente


3
Il file delle preferenze di default condiviso sarebbe in realtà: /data/data/<package>/shared_prefs/<package>_preferences.xml.
Inazaruk,

@inazaruk È davvero il nome del pacchetto completo, anche se vedo usi misti di /<package>_preferences.xmle /<package>.xmlsui dispositivi. Forse dipende dal livello API dell'app?
Aleadam,

1
Nota che stavo prendendo in considerazione le preferenze condivise predefinite . Sembra che il nome del file sia sempre stato lo stesso per loro. Vedi commit iniziale per PreferenceManager.java, getDefaultSharedPreferencesfunzione qui: android.git.kernel.org/?p=platform/frameworks/… . E non è stato modificato anche nell'ultima versione di PrefencesManager.jave: android.git.kernel.org/?p=platform/frameworks/…
inazaruk,

Un modo per ottenere il percorso dal sistema e non codificarlo? ContextImpl.java lo implementa nella funzione getPreferencesDir privata, sarebbe utile ottenerlo in qualche modo durante l'esecuzione.
Puntatore Null

È possibile utilizzare new FIle (context.getFilesDir (). GetParent (), "shared_prefs"). Funziona su Nexus 5, non sono sicuro di altri produttori.
gswierczynski,

9

Le preferenze possono essere impostate nel codice o possono essere trovate in res / xml / preferenze.xml. Puoi leggere ulteriori informazioni sulle preferenze sul sito Web di Android SDK.


4
Devi crearlo - finché hai creato un progetto Android, puoi quindi fare clic con il tasto destro del mouse sulla directory "res" e aggiungere una nuova cartella chiamata "xml". Altre cartelle "speciali" sono anim, drawable, layout, menu, raw e valori.
JasCav,

6

Solo per farti risparmiare un po 'di tempo ...

Sul mio Galaxy S v.2.3.3 le preferenze condivise non sono memorizzate in:/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

ma ora si trovano in: /dbdata/databases/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

Credo che abbiano cambiato questo in 2.3


1
È lo stesso in 2.2? Non riesco a trovare / file di dati in qualsiasi parte del mio progetto né in eclissi né nella posizione del progetto.
Pramod,

@pramod non in eclipse: questo è il percorso sulla struttura dei file del dispositivo reale.
Richard Le Mesurier,

@Pramod lo vede in vista Esplora file e lì dentro/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml
Akhil Jain,

2
/dbdata/non esiste sul mio dispositivo JB
rekire il

6

Ho appena cercato di ottenere il percorso delle preferenze condivise di seguito in questo modo. Questo è lavoro per me.

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

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

5

I dati vengono archiviati sul dispositivo, nell'area dati privata dell'applicazione. Non è in un progetto Eclipse.


3

Le preferenze condivise sono le coppie chiave / valore che possiamo memorizzare. Sono tipi interni di archiviazione, il che significa che non è necessario creare un database esterno per archiviarlo. Per vederlo, vai a, 1) Vai a Visualizza nella barra dei menu. Seleziona lo strumento Windows. 2) Fare clic su Esplora file dispositivo. 3) Device File Explorer si apre sul lato destro. 4) Trova la cartella dei dati e fai clic su di essa. 5) Nella cartella dati, è possibile selezionare un'altra cartella dati. 6) Prova a cercare il nome del tuo pacchetto in questa cartella di dati. Esempio: com.example.com 7) Quindi fare clic su shared_prefs e aprire il file .xml.

Spero che questo ti aiuti!


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.