Android uygulamalarının veri depolayabileceği tüm olası dizinleri listeleyebilir, her bir dizinde ne tür verilerin depolandığını açıklayabilir misiniz?
Android uygulamalarının veri depolayabileceği tüm olası dizinleri listeleyebilir, her bir dizinde ne tür verilerin depolandığını açıklayabilir misiniz?
Yanıtlar:
Tüm uygulamaların (root veya değil) varsayılan bir veri dizini vardır /data/data/<package_name>
. Varsayılan olarak, uygulamalar veritabanları, ayarlar ve diğer tüm veriler buraya gider. Bir uygulama büyük miktarda veri depolanmasını bekliyorsa veya başka nedenlerden dolayı "dahili depolamaya iyi davranmak" istiyorsa, SDCard'da ( Android/data/<package_name>
) ilgili bir dizin var .
Bunun dışında, tüm uygulamalar kısıtlama olmadığından SDCard'ın herhangi bir yerinde veri depolayabilir - ve çoğu uygulama bunu yapar. Dizin adlarını serbestçe kullanabilirler (ve yine de yaparlar), karttaki tüm bu "önemsiz" lerin ne için tasarlandığına ve bunun ne için silinebileceğine karar vermeyi zorlaştıran şey budur.
Tom'un belirttiği gibi , kök uygulamalar verilerini cihazınızın hemen her yerinde depolayabilseler de, genellikle diğer uygulamalarla aynı kuralları izlerler.
Cevabımda Android dizini hiyerarşisinin genel bir açıklamasını burada bulabilirsiniz . Özel sorunuz için, /data/data/<package_name>
(ve ilgili SD bölümü) ile ilgili daha fazla ayrıntı ekleyebilirim :
databases/
: işte uygulamanın veritabanlarına gidinlib/
: uygulama için kütüphaneler ve yardımcılarfiles/
: diğer ilgili dosyalarshared_prefs/
: tercihler ve ayarlarcache/
: iyi, önbellekleriBu yerde birkaç tane daha dizin olabilir, ya da daha az - hepsi uygulamaya bağlıdır. Kendi "home dizini" nde (ve temel olarak ne söylenirse, Linux dilinde konuşulur) istedikleri dosyaları yerleştirebilirler. Genellikle, bu dosyalara ve dizinlere yalnızca uygulamanın kendisi (ve elbette root) erişebilir - SDCard'da depolananlar dışında, tüm uygulamalar tarafından erişilebilir.
/data/data/<name>/files/
açıklandığı gibi dosyaları oluşturulur nereye developer.android.com/guide/topics/data/... gider? Yani bunlar açıldı FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
mı?
/storage/emulated/0/WhatsApp/
(subdirs .Shared
, .trash
, Backups
, Databases
, Media
tüm medya dahil). Buna ek olarak bilmiyorum \data\data...
, şimdi bu dizine erişemiyorum. Belki bu sürümler arasında değişti.
/
) SD kartta bulunmuyor. SD Kart aşağıda /sdcard
(dahili kart, işaret eder /storage/emulated/<user>
) veya harici kartınızın karşılık gelen yolu anlamına gelir . Ve hayır, bazı uygulamaların kullanabileceği olası tüm yerleri açıklayamam, üzgünüm; AFAIK /data/misc
Android sisteminin kendisi tarafından yönetiliyor, bu nedenle "sadece uygulamalar" en iyi orada okuma erişimine sahip olmalı. Hiç karşılaşmadım data/user_de
(göreceli bir yol olduğu için zaten nereyi kastettiğinizi bilmiyorum).
İstediğiniz sorunuzun cevabı çok büyük. Bununla birlikte, size temelleri kapsayan temel bir cevap verebilirim.
İki tür uygulama vardır:
Kök ve kök dışı .
Kök uygulamalar temel olarak dosyaları istedikleri yerde depolayabilir / değiştirebilir.
Kök olmayan uygulamalar sadece burada dosyaları depolayabilir / değiştirebilir: /sdcard/
ve sonrasında gelen her klasör.
Çoğunlukla, yüklü uygulamalar kendilerini /sdcard/Android/data
veya konumunda saklar /sdcard/Android/obb
.
Bazı uygulamalar kaydetme oyunlarını / yapılandırma veri dosyalarını /sdcard/APPNAME/
veya yalnızca Kök uygulamalarını /sdcard/
kullanabilmek için depolarlar, Android cihazınızı köklendirmeniz ve süper kullanıcı uygulamalarından birinden izin almanız gerekir.