Bagaimana cara melihat file preferensi bersama menggunakan Android Studio?

102

Saya menggunakan preferensi bersama untuk menyimpan nilai tertentu untuk aplikasi saya. Saya ingin melihat file tempat info sebenarnya disimpan di ponsel saya. Saya menemukan banyak cara untuk melakukan ini di Eclipse, tetapi saya sedang melakukan debug di Android Studio. Ponsel saya di-root. Saya membaca bahwa memiliki akses root penting untuk membaca jenis file ini. Jika tidak ada cara, maka saya akan mencari cara mengakses info melalui program saya lalu menampilkannya ke log cat. Mudah-mudahan, bagaimanapun, saya bisa melihat file di telepon secara langsung karena jauh lebih sederhana. Terima kasih.

JayUser
sumber
Instal ES File Explorer dan aktifkan penelusuran root. Anda akan dapat membukanya langsung di telepon.
CurlyPaul
3
coba gunakan adb pull untuk mengambil file ke desktop. adb pull /data/data/<packagename>/shared_prefs/prefs.xml
Lal
2
ATAU buka file explorer dan di pohon file, temukan folder data aplikasi Anda di bawah /data/data/com.paket-anda/shared_prefs. File preferensi akan ada di sana, sebagai XML. Salin dari perangkat dan nikmati. Di sudut kanan atas tampilan File Explorer, ada dua tombol ikon - satu dengan disk dan satu lagi dengan ponsel. Tombol-tombol ini memungkinkan Anda untuk menyalin file dari dan ke ponsel / emulator.
Lal
1
Untuk beberapa alasan, file prefs xml saya disebut <PACKAGENAME> _preferences.xml
JPM

Jawaban:

96

Dari Android Studio, mulai Android Device Monitor, buka File Explorer, dan telusuri "/ data / data / <name of your package> / shared_prefs /". Anda akan menemukan XML di sana ... dan Anda juga dapat menyalinnya untuk diperiksa.

Jika Anda memiliki perangkat yang tidak di-rooting, Anda tidak dapat melakukannya langsung dari Android Studio. Namun, Anda dapat mengakses file tersebut adb shellselama aplikasi Anda adalah versi debug.

adb shell
run-as your.app.id
chmod 777 shared_prefs/your.app.id_preferences.xml
exit # return to default user
cp /data/data/your.app.id/shared_prefs/your.app.id_preferences.xml /sdcard

Setelah itu Anda dapat menarik file dari direktori / sdcard dengan adb.

George Dima
sumber
Saya tidak dapat mengakses folder ini dari Device Monitor. Apakah Root diperlukan?
Marian Klühspies
2
Metode kedua berfungsi untuk perangkat yang tidak di-rooting. Setelah Anda menyalin file ke kartu sd, Anda dapat keluar dari adb dan menjalankan adb pull "/ sdcard / your_preferences_file" dan Anda akan mendapatkan file xml di direktori Anda saat ini yang dapat Anda periksa.
Bebop_
4
Anda sebenarnya dapat mengambil info ini dari emulator tanpa root, jika Anda dapat melakukan debug dengan cara itu. Jika Anda menggunakan perangkat fisik, Anda memerlukan root.
Booger
3
Cari file explorer perangkat di pojok kanan bawah AndroidStudio. Ini akan memberi Anda akses mudah ke sistem file perangkat
Maksim Turaev
2
Dengan menggunakan Device File Explorer, saya dapat mengakses preferensi bersama tanpa akses root
Devansh Maurya
78

Device File Explorer yang merupakan bagian dari Android Studio 3.x sangat bagus untuk menjelajahi file preferensi, item cache, atau database Anda.

  1. Preferensi Bersama / data / data // direktori shared_prefs

masukkan deskripsi gambar di sini

Ini terlihat seperti ini

masukkan deskripsi gambar di sini

Untuk membuka The Device File Explorer:

Klik View> Tool Windows> Device File Explorer atau klik tombol Device File Explorer di bilah jendela alat.

masukkan deskripsi gambar di sini

phnmnn
sumber
13
Buka Device File Explorer (Kanan Bawah layar).
Apit John Ismail
47

Stetho

Anda dapat menggunakan http://facebook.github.io/stetho/ untuk mengakses preferensi bersama saat aplikasi Anda dalam mode debug. Tanpa akar

fitur:

  1. melihat dan mengedit preferensi bersama
  2. lihat dan edit sqLite db
  3. lihat tampilan heirarki
  4. pantau permintaan jaringan http
  5. lihat aliran dari layar perangkat
  6. dan banyak lagi ....

masukkan deskripsi gambar di sini

Pengaturan dasar:

  1. di build.gradle add compile 'com.facebook.stetho:stetho:1.5.0'
  2. di add onCreate () aplikasi Stetho.initializeWithDefaults(this);
  3. di Chrome pada PC Anda, buka chrome: // inspect /

PEMBARUAN: Flipper

Flipper adalah alternatif baru dari facebook. Ini memiliki lebih banyak fitur tetapi untuk saat ini penulisan hanya tersedia untuk Mac, sedikit lebih sulit untuk dikonfigurasi dan tidak memiliki debugging basis data, sementara brining inspektur tata letak yang ditingkatkan secara ekstensif

Anda juga dapat menggunakan saran @Jeffrey:

  • Buka Device File Explorer (Kanan Bawah layar)
  • Buka data / data / com.yourAppName / shared_prefs
Maksim Turaev
sumber
Bisakah ini bekerja pada emulator? Sepertinya saya tidak bisa membuatnya berhasil
EduardoMaia
@Eduardoia Seharusnya. Saya menggunakannya dengan emulator setiap hari. Anda dapat membuat pertanyaan dengan tangkapan layar, jadi saya akan mencoba membantu Anda.
Maksim Turaev
@EduardoMaia Anda dapat mencoba melakukan hal berikut: 1. Clone facebook stetho repository. 2. Impor project ini ke Android Studio TERBARU (File-> Import -> "pilih settings.gradle") 3. setuju untuk memperbarui plugin gradle. 4. Mulai Android Emulator (dalam kasus saya API 24) 5. Luncurkan stetho-sample (pilih dari menu konfigurasi run di sebelah panah hijau 6. Pada PC Anda, buka browser Chrome terbaru 7. buka chrome: // inspect address 8. pilih emulator Anda dalam daftar 9. Di jendela yang terbuka buka tab Sumber Daya 10. Temukan preferensi bersama Anda di bawah menu Penyimpanan Lokal di sisi kiri 11. Dalam aplikasi, mainkan dengan bendera boolean
Maksim Turaev
Saya memperbaiki masalah saya kemarin tanpa perlu melihat preferensi bersama. Tetapi saya akan mencoba langkah demi langkah ini di lain waktu. Terima kasih.
EduardoMaia
14

Anda cukup membuat Aktivitas khusus untuk tujuan debugging:

@SuppressWarnings("unchecked")
public void loadPreferences() {
// create a textview with id (tv_pref) in Layout.
TextView prefTextView;
prefTextView = (TextView) findViewById(R.id.tv_pref);
    Map<String, ?> prefs = PreferenceManager.getDefaultSharedPreferences(
            context).getAll();
    for (String key : prefs.keySet()) {
        Object pref = prefs.get(key);
        String printVal = "";
        if (pref instanceof Boolean) {
            printVal =  key + " : " + (Boolean) pref;
        }
        if (pref instanceof Float) {
            printVal =  key + " : " + (Float) pref;
        }
        if (pref instanceof Integer) {
            printVal =  key + " : " + (Integer) pref;
        }
        if (pref instanceof Long) {
            printVal =  key + " : " + (Long) pref;
        }
        if (pref instanceof String) {
            printVal =  key + " : " + (String) pref;
        }
        if (pref instanceof Set<?>) {
            printVal =  key + " : " + (Set<String>) pref;
        }
        // Every new preference goes to a new line
        prefTextView.append(printVal + "\n\n");     
    }
}
// call loadPreferences() in the onCreate of your Activity.
cYrixmorten
sumber
Ini sangat berguna, tetapi tidak sesuai dengan kebutuhan saya. Saya menambahkan pengeditan yang memungkinkan beberapa file preferensi bersama
Christopher Rucinski
Terima kasih, saya hanya kesulitan mencari cara untuk menerima hasil edit
cYrixmorten
Itu dibantah oleh orang lain. Mereka bilang itu harus jawaban sendiri, jadi saya taruh sebagai jawaban baru. Saya awalnya hanya mengedit jawaban Anda karena saya hanya dapat melakukan apa yang saya lakukan ketika saya melihat jawaban Anda.
Christopher Rucinski
Baiklah :-) ya terpikir oleh saya setelah itu harus ditinjau oleh orang lain
cYrixmorten
13

Android Studio -> Device File Explorer (pojok kanan bawah) -> data -> data -> {package.id} -> shared-prefs

Catatan: Anda perlu menghubungkan perangkat seluler ke android studio dan aplikasi yang dipilih harus dalam mode debug

Niranjan
sumber
10

Ini adalah posting lama, tapi saya pikir saya harus memberikan jawaban grafis di sini karena pertanyaannya adalah tentang melihat SharedPreferences.xmlmenggunakan Android Studio. Jadi begini.

Pergi ke Tools -> Android Device Monitor. Buka monitor perangkat dengan mengkliknya.

masukkan deskripsi gambar di sini

Kemudian Anda perlu memilih tab File Explorer di monitor perangkat. Temukan folder data dan cari folder data lain di dalamnya. Ini akan berisi folder yang memiliki nama paket aplikasi Anda dan akan ada yang diinginkan SharedPreferences.xml.

masukkan deskripsi gambar di sini

Pilih SharedPreferences.xmlfile dan kemudian tarik dan simpan file di komputer Anda menggunakan tombol bertanda di sudut kanan atas gambar di atas.

Saya telah menggunakan emulator perangkat.

Reaz Murshed
sumber
1
Berkat posting Anda, saya belajar tentang developer.android.com/studio/debug/device-file-explorer yang merupakan cara baru untuk melakukan hal yang sama seperti yang Anda jelaskan di sini.
malarres
Senang mengetahui bahwa saya dapat membantu! Sama sama
Reaz Murshed
4

Satu atau Beberapa File Preferensi Bersama

Jika Anda memiliki banyak Shared Preferencefile, berikut adalah cara yang baik untuk menampilkan semuanya, tetapi Anda juga dapat memasukkan 1 nama file juga.

  • loadSharedPrefs("pref_name");

  • loadSharedPrefs("shared_pref1", "shared_pref2", "shared_pref3");

Pilih salah satu dari berikut ini untuk menyesuaikan dengan kebutuhan Anda ...

Nilai Tipe Tunggal

public void loadSharedPrefs(String ... prefs) {

    // Logging messages left in to view Shared Preferences. I filter out all logs except for ERROR; hence why I am printing error messages.

    Log.i("Loading Shared Prefs", "-----------------------------------");
    Log.i("----------------", "---------------------------------------");

    for (String pref_name: prefs) {

        SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
        for (String key : preference.getAll().keySet()) {

            Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
                  preference.getString(key, "error!"));

        }

        Log.i("----------------", "---------------------------------------");

    }

    Log.i("Finished Shared Prefs", "----------------------------------");

}

Nilai Beberapa Jenis

public void loadSharedPrefs(String ... prefs) {

    // Define default return values. These should not display, but are needed
    final String STRING_ERROR = "error!";
    final Integer INT_ERROR = -1;
    // ...
    final Set<String> SET_ERROR = new HashSet<>(1);

    // Add an item to the set
    SET_ERROR.add("Set Error!");

    // Loop through the Shared Prefs
    Log.i("Loading Shared Prefs", "-----------------------------------");
    Log.i("------------------", "-------------------------------------");

    for (String pref_name: prefs) {

        SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
        Map<String, ?> prefMap = preference.getAll();

        Object prefObj;
        Object prefValue = null;

        for (String key : prefMap.keySet()) {

            prefObj = prefMap.get(key);

            if (prefObj instanceof String) prefValue = preference.getString(key, STRING_ERROR);
            if (prefObj instanceof Integer) prefValue = preference.getInt(key, INT_ERROR);
            // ...
            if (prefObj instanceof Set) prefValue = preference.getStringSet(key, SET_ERROR);

            Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
                  String.valueOf(prefValue));

        }

        Log.i("------------------", "-------------------------------------");

    }

    Log.i("Loaded Shared Prefs", "------------------------------------");

}

}

Keluaran Logcat

Shared PreferenceNilai saya semuanya String, tetapi ini adalah output menggunakan salah satu dari 2 metode di atas ...

I/Loading Shared Prefs -----------------------------------
I/------------------﹕ -------------------------------------
I/Shared Preference : FAVORITE - 135397 Jurassic World
I/Shared Preference : FAVORITE - 87101 Terminator Genisys
I/Shared Preference : FAVORITE - 177677 Mission: Impossible  Rogue Nation
I/------------------﹕ -------------------------------------
I/Shared Preference : WATCHED - 177677 Mission: Impossible  Rogue Nation
I/Shared Preference : WATCHED - 157336 Interstellar
I/Shared Preference : WATCHED - 135397 Jurassic World
I/Shared Preference : WATCHED - 87101 Terminator Genisys
I/------------------﹕ -------------------------------------
I/Shared Preference : WILL_WATCH - 211672 Minions
I/Shared Preference : WILL_WATCH - 102899 Ant-Man
I/------------------﹕ -------------------------------------
I/Loaded Shared Prefs ------------------------------------
Christopher Rucinski
sumber
4

Cara sederhana lainnya adalah menggunakan aplikasi root explorer di ponsel Anda.

Lalu pergi ke /data/data/package name/shared preferences folder/name of your preferences.xml, Anda dapat menggunakan ES File explorer , dan pergi ke rootperangkat Anda, bukan sd card.

pengguna5291072
sumber
1
Ini tidak memberikan jawaban atas pertanyaan. Untuk mengkritik atau meminta klarifikasi dari seorang penulis, tinggalkan komentar di bawah kiriman mereka - Anda selalu dapat mengomentari kiriman Anda sendiri, dan setelah Anda memiliki reputasi yang memadai, Anda akan dapat mengomentari kiriman apa pun . - Dari Ulasan
Luca Detomi
@LucaDetomi Anda tahu apa yang saya keluar dari sini
user5291072
Jawaban Anda ditandai sebagai terlalu pendek. Jawaban harus berisi detail yang memungkinkan pengguna untuk memahami "mengapa" itu bisa menjadi jawaban yang bagus dan mungkin yang terbaik. Saya menyarankan Anda untuk menambahkan lebih banyak detail yang membantu untuk memahami prinsip-prinsip dan mungkin untuk menyesuaikannya dengan masalah serupa lainnya
Luca Detomi
4

Untuk membuka bersama preferencedi studio android

Buka file penjelajah perangkat dari sisi kanan- data> data>> shared_prefs

temukan gambar terlampir untuk penjelasan lebih lanjut

Shwetank
sumber
3

Di Android Studio 3 :

  • Buka Device File Explorer (Kanan Bawah layar).
  • Buka data / data / com.yourAppName / shared_prefs.

atau gunakan Database Android Debug

Jeffrey
sumber
2

Jalankan aplikasi di Emulator setelah Anda memasukkan beberapa data, tutup saja aplikasi tersebut.

Sekarang buka DDMS atau Android Monitor dan pilih emulator Anda, di sisi kanan Anda dapat melihat File Explorer, cari folder Data di dalamnya dan cari paket aplikasi Anda yang telah Anda buat, di mana Anda dapat menemukan file preferensi bersama terbuka itu, Anda dapat melihat file XML, klik dan klik tarik file dari tombol perangkat di sudut kanan atas.

File XML akan disimpan di lokasi yang Anda inginkan, kemudian Anda dapat membukanya menggunakan editor seperti notepad ++ dan dapat melihat data yang telah Anda masukkan.

Naren
sumber
Di Android Studio 3.0 , saya menemukannya di Device File Explorer > data> data> (nama paket)> shared_prefs> (nama paket) _preferences.xml
Josselin
2

Di Device File Explorer ikuti jalur di bawah ini: -

/data/data/com.**package_name**.test/shared_prefs/com.**package_name**.test_preferences.xml
neelkanth_vyas
sumber
1

Saya selalu menemukan perintah ini berguna di konsol:

  1. Temukan nama file yang benar

    adb shell

    ls /data/data/com.your.package/shared_prefs

  2. Dapatkan file ke direktori lokal

    adb pull /data/data/com.your.package/shared_prefs/the_file_you_want $local_dir

  3. Periksa di $local_dir.

Mawar
sumber
1

Jika Anda menggunakan emulator, Anda dapat melihat sharedPrefs.xmlfile di terminal dengan perintah ini:

  • adb root
  • cat /data/data/<project name>/shared_prefs/<xml file>

setelah itu Anda dapat menggunakan adb unrootjika Anda tidak ingin perangkat virtual tetap di-root.

Rodrirokr
sumber