Di mana aplikasi Android menyimpan data?


98

Bisakah Anda membuat daftar semua direktori yang mungkin di mana aplikasi Android dapat menyimpan data, memberikan deskripsi jenis data apa yang disimpan di setiap direktori?



Jawaban:


92

Semua aplikasi (root atau tidak) memiliki direktori data default, yaitu /data/data/<package_name>. Secara default, database aplikasi, pengaturan, dan semua data lainnya masuk ke sini. Jika aplikasi mengharapkan data dalam jumlah besar untuk disimpan, atau karena alasan lain ingin "bersikap baik pada penyimpanan internal", ada direktori yang sesuai pada SDCard ( Android/data/<package_name>).

Terlepas dari itu, semua aplikasi dapat menyimpan data di mana saja di SDCard, karena tidak ada batasan - dan banyak aplikasi melakukannya. Mereka dapat menggunakan nama direktori secara bebas (dan sekali lagi mereka lakukan), yang sering menyulitkan untuk memutuskan untuk apa semua "sampah" pada kartu itu ditujukan, dan untuk apa dapat dihapus.

Meskipun, seperti yang ditunjukkan Tom , aplikasi root dapat menyimpan data mereka hampir di mana saja di perangkat Anda, mereka biasanya mengikuti aturan yang sama dengan aplikasi lain.

Anda dapat menemukan penjelasan umum tentang hierarki direktori Android di jawaban saya di sini . Untuk pertanyaan spesifik Anda, saya dapat menambahkan lebih banyak detail pada /data/data/<package_name>(dan bagian-SD yang sesuai):

  • databases/: inilah database aplikasi
  • lib/: perpustakaan dan pembantu untuk aplikasi
  • files/: file terkait lainnya
  • shared_prefs/: preferensi dan pengaturan
  • cache/: baik, cache

Mungkin ada beberapa direktori di tempat ini, atau lebih sedikit - semuanya tergantung pada aplikasi. Dalam "direktori home" -nya sendiri (dan itulah dasarnya, berbicara dengan Linux), mereka dapat menempatkan file di tempat yang mereka inginkan. Biasanya, file dan direktori ini hanya dapat diakses oleh aplikasi itu sendiri (dan root, tentu saja) - selain yang disimpan di SDCard, yang dapat diakses oleh semua aplikasi.


1
Apakah /data/data/<name>/files/tempat file yang dibuat seperti yang dijelaskan di developer.android.com/guide/topics/data/… akan menuju? Apakah itu dibuka dengan FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Tidak seorang pun

Secara umum, ini sudah merupakan jawaban yang bagus, tetapi bagaimana dengan menambahkan referensi ke developer.android.com/guide/topics/data/… tentang direktori mana yang berhubungan dengan deskripsi abstrak / path-agnostik di sana?
Tidak seorang pun

@Tidak ada 2) karena halaman itu sangat berorientasi pada pengembang, sementara situs ini berorientasi pada pengguna akhir? Sama dengan 1) Saya bukan pengembang, dan itu meminta detail pengembangan. Maaf.
Izzy

1
Saya tidak memiliki kartu SD, dan saya Android 6 dan Android 7, Whatsapp disimpan banyak data di /storage/emulated/0/WhatsApp/(subdirs .Shared, .trash, Backups, Databases, Media), termasuk semua media. Saya tidak tahu apakah ini tambahan \data\data..., saya tidak dapat mengakses direktori ini sekarang. Mungkin ini berubah di antara versi.
sancho.s

1
@Shayan direktori root ( /) tidak terletak pada kartu SD. Kartu SD berarti di bawah ini /sdcard(kartu internal, menunjuk ke /storage/emulated/<user>) atau jalur yang sesuai dari kartu eksternal Anda. Dan tidak, saya tidak bisa menjelaskan semua lokasi yang mungkin beberapa aplikasi mungkin gunakan, maaf; AFAIK /data/miscdikelola oleh sistem Android itu sendiri, jadi "aplikasi biasa" seharusnya memiliki akses baca di sana. Tidak pernah ditemukan data/user_de(karena ini adalah jalur relatif, saya tidak tahu maksud Anda).
Izzy

9

Jawaban atas pertanyaan yang Anda ajukan terlalu besar. Namun, saya bisa memberikan jawaban dasar yang mencakup dasar-dasarnya.

Ada dua jenis aplikasi:
Root dan non-root .

Aplikasi root pada dasarnya dapat menyimpan / memodifikasi file di mana pun mereka inginkan. Aplikasi

non-root hanya dapat menyimpan / memodifikasi file di sini: /sdcard/dan setiap folder yang muncul setelahnya.
Sebagian besar, aplikasi yang diinstal menyimpan sendiri di /sdcard/Android/dataatau /sdcard/Android/obb.
Beberapa aplikasi menyimpan permainan / file data konfigurasi mereka pada /sdcard/APPNAME/, atau hanya pada /sdcard/

Untuk dapat menggunakan aplikasi root , Anda harus telah melakukan rooting pada perangkat Android Anda dan telah memberikan izin dari salah satu aplikasi superuser.

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.