Wo speichern Android Apps Daten?

97

Können Sie alle möglichen Verzeichnisse auflisten, in denen Android-Apps Daten speichern können, und beschreiben, welche Art von Daten in den einzelnen Verzeichnissen gespeichert sind?

mrpyo
quelle

Antworten:

92

Alle Apps (root oder nicht) haben ein Standarddatenverzeichnis, nämlich /data/data/<package_name>. Standardmäßig werden die Apps-Datenbanken, Einstellungen und alle anderen Daten hier abgelegt. Wenn eine App große Datenmengen erwartet oder aus anderen Gründen "nett zum internen Speicher" sein möchte, befindet sich ein entsprechendes Verzeichnis auf der SDCard ( Android/data/<package_name>).

Abgesehen davon können alle Apps Daten überall auf der SDCard speichern, da es keine Einschränkungen gibt - und viele Apps tun dies auch. Sie können Verzeichnisnamen frei verwenden (und das tun sie auch), was es oft schwierig macht, zu entscheiden, wofür all dieser "Müll" auf der Karte gedacht ist und was von ihm gelöscht werden kann.

Obwohl Root-Apps , wie Tom betonte, ihre Daten fast überall auf Ihrem Gerät speichern können, befolgen sie normalerweise dieselben Regeln wie andere Apps.

Eine allgemeine Erklärung der Android-Verzeichnishierarchie finden Sie in meiner Antwort hier . Für Ihre spezielle Frage füge ich möglicherweise weitere Details zu dem /data/data/<package_name>(und dem entsprechenden SD-Teil) hinzu:

  • databases/: Hier geht's zu den Datenbanken der App
  • lib/: Bibliotheken und Helfer für die App
  • files/: andere verwandte Dateien
  • shared_prefs/: Einstellungen und Einstellungen
  • cache/: na ja, Caches

An diesem Ort befinden sich möglicherweise mehrere oder weniger Verzeichnisse - alles hängt von der App ab. Sie können Dateien in ihrem eigenen "Home-Verzeichnis" (und das ist es im Grunde genommen, was Linux angeht) ablegen, wo sie wollen. Auf diese Dateien und Verzeichnisse kann in der Regel nur von der App selbst (und natürlich von root) zugegriffen werden - mit Ausnahme der auf der SDCard gespeicherten Dateien, auf die alle Apps zugreifen können.

Izzy
quelle
1
Werden /data/data/<name>/files/Dateien erstellt, wie in developer.android.com/guide/topics/data/… beschrieben ? Dh die eröffneten mit FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Niemand
Im Allgemeinen ist dies bereits eine gute Antwort, aber wie wäre es, wenn Sie Verweise auf developer.android.com/guide/topics/data/… hinzufügen, welches Verzeichnis mit welcher abstrakten / pfadunabhängigen Beschreibung dort korreliert?
Niemand
@Nobody 2) weil diese Seite stark entwicklerorientiert ist, während diese Seite endbenutzerorientiert ist? Gleiches gilt für 1) Ich bin kein Entwickler und frage nach Details zur Entwicklung. Es tut uns leid.
Izzy
1
Ich habe nicht eine SD - Karte, und in meinem Android 6 und Android 7, WhatsApp viele Daten in gespeichert /storage/emulated/0/WhatsApp/(subdirs .Shared, .trash, Backups, Databases, Media), einschließlich aller Medien. Ich weiß nicht, ob dies zusätzlich ist \data\data..., ich kann jetzt nicht auf dieses Verzeichnis zugreifen. Vielleicht hat sich das zwischen den Versionen geändert.
sancho.s
1
@Shayan Das Stammverzeichnis ( /) befindet sich nicht auf der SD-Karte. SD-Karte bedeutet unten /sdcard(interne Karte, zeigt auf /storage/emulated/<user>) oder den entsprechenden Pfad Ihrer externen Karte. Und nein, ich kann nicht alle möglichen Orte erklären, die eine App verwenden könnte, sorry; AFAIK /data/miscwird vom Android-System selbst verwaltet, daher sollten "reine Apps" dort bestenfalls Lesezugriff haben. Nie angetroffen data/user_de(da es ein relativer Pfad ist, weiß ich sowieso nicht, wo Sie meinen).
Izzy
9

Die Antwort auf Ihre Frage ist zu groß. Ich kann Ihnen jedoch eine grundlegende Antwort geben, die die Grundlagen abdeckt.

Es gibt zwei Arten von Apps:
Root und Nicht-Root .

Root- Apps können Dateien grundsätzlich überall speichern / ändern.

Nicht-Root- Apps können hier nur Dateien speichern / ändern: /sdcard/und jeden Ordner, der danach kommt.
Meistens speichern sich die installierten Apps bei /sdcard/Android/dataoder /sdcard/Android/obb.
Einige Apps speichern ihre gespeicherten Spiele- / Konfigurationsdatendateien auf /sdcard/APPNAME/oder nur auf. /sdcard/

Um Root- Apps verwenden zu können, müssen Sie Ihr Android-Gerät gerootet und die Erlaubnis einer der Superuser-Apps erteilt haben.

Tom
quelle