Di mana preferensi bersama disimpan?


147

Di mana dalam proyek Eclipse mungkin orang menemukan file preferensi bersama?


Saya menyadari bahwa preferensi bersama.xml disimpan dalam data, tetapi di mana itu disimpan sebelum diinstal; dalam format .smali?
sharath3589

Jawaban:


241

SharedPreferences disimpan dalam file xml di folder data aplikasi, yaitu

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

atau preferensi default di:

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

SharedPreferences yang ditambahkan selama runtime tidak disimpan dalam proyek Eclipse.

Catatan: Mengakses /data/data/<package_name>membutuhkan hak pengguna super


3
Default bersama berkas preferensi benar-benar akan: /data/data/<package>/shared_prefs/<package>_preferences.xml.
inazaruk

@inazaruk Ini memang nama paket lengkap, meskipun saya melihat beragam penggunaan /<package>_preferences.xmldan /<package>.xmlpada perangkat. Mungkin itu tergantung pada tingkat API aplikasi?
Aleadam

1
Perhatikan bahwa saya mengambil tentang preferensi bersama Default . Sepertinya nama file selalu sama untuk mereka. Lihat komit awal untuk PreferenceManager.java, getDefaultSharedPreferencesberfungsi di sini: android.git.kernel.org/?p=platform/frameworks/… . Dan itu tidak berubah dalam versi terbaru PrefencesManager.javejuga: android.git.kernel.org/?p=platform/frameworks/…
inazaruk

Adakah cara untuk mendapatkan path dari sistem, dan bukan dengan hard-code? ContextImpl.java mengimplementasikannya dalam fungsi getPreferencesDir pribadi, akan berguna untuk mendapatkan ini saat runtime entah bagaimana.
Pointer Null

Anda dapat menggunakan FIle baru (context.getFilesDir (). GetParent (), "shared_prefs"). Ini berfungsi pada Nexus 5, tidak yakin tentang produsen lain.
gswierczynski

9

Preferensi dapat diatur dalam kode atau dapat ditemukan di res / xml / preferensi.xml. Anda dapat membaca lebih lanjut tentang preferensi di situs web Android SDK.


4
Anda harus membuatnya - selama Anda telah membuat proyek Android, Anda kemudian dapat mengklik kanan pada direktori "res" dan menambahkan folder baru yang disebut 'xml'. Folder "spesial" lainnya adalah anim, drawable, layout, menu, raw, dan values.
JasCav

6

Hanya untuk menghemat waktu Anda ...

Di Galaxy S v.2.3.3 Preferensi Bersama saya tidak disimpan di:/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

tetapi sekarang berada di: /dbdata/databases/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

Saya percaya mereka mengubah ini di 2.3


1
Apakah sama dengan 2.2? Saya tidak dapat menemukan / file data di mana pun di proyek saya baik di gerhana atau lokasi proyek.
Pramod

@ramod tidak dalam gerhana - ini adalah path pada struktur file perangkat yang sebenarnya.
Richard Le Mesurier

@Ramod melihatnya dalam tampilan file explorer dan di sana/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml
Akhil Jain

2
/dbdata/tidak ada pada perangkat JB saya
rekire

6

Saya hanya mencoba untuk mendapatkan jalur preferensi bersama di bawah seperti ini. Ini berfungsi untuk saya.

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

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

5

Data disimpan di perangkat, di area data pribadi aplikasi Anda. Itu tidak ada dalam proyek Eclipse.


3

Preferensi Bersama adalah pasangan kunci / nilai yang dapat kita simpan. Mereka adalah jenis penyimpanan internal yang berarti kita tidak perlu membuat database eksternal untuk menyimpannya. Untuk melihatnya, 1) Pergi ke Lihat di bilah menu. Pilih Alat Windows. 2) Klik pada Device File Explorer. 3) Device File Explorer terbuka di sebelah kanan. 4) Temukan folder data dan klik. 5) Dalam folder data, Anda dapat memilih folder data lain. 6) Cobalah untuk mencari nama paket Anda di folder data ini. Contoh: com.example.com 7) Kemudian Klik pada shared_prefs dan buka file .xml.

Semoga ini membantu!


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.