Antwort

Alle Apps (root oder nicht) haben ein Standarddatenverzeichnis: /data/data/<package_name>. Standardmäßig werden hier die Apps-Datenbanken, Einstellungen und alle anderen Daten angezeigt. Wenn eine App erwartet, dass große Datenmengen gespeichert werden, oder aus anderen Gründen „nett zum internen Speicher sein“ möchte, befindet sich auf der SDCard ein entsprechendes Verzeichnis (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. Sie können Verzeichnisnamen frei verwenden (und das tun sie auch wieder), was häufig der Fall ist macht es schwierig zu entscheiden, wofür all dieser „Müll“ auf der Karte bestimmt ist und wofür er gelöscht werden kann.

Wie Tom zeigte out können Root-Apps ihre Daten fast überall auf Ihrem Gerät speichern. Sie folgen normalerweise denselben Regeln wie andere Apps.

Eine allgemeine Erklärung der Android-Verzeichnishierarchie finden Sie unter meine Antwort hier . Für Ihre spezielle Frage möchte ich einige weitere Details zum /data/data/<package_name> (und dem entsprechenden SD-Teil) hinzufügen:

  • databases/: Hier gehen Sie zu den Datenbanken der App
  • lib/: Bibliotheken und Helfer für die App
  • files/: andere verwandte Dateien
  • shared_prefs/: Einstellungen und Einstellungen
  • cache/: Nun, Caches

Möglicherweise befinden sich an dieser Stelle mehrere oder weniger Verzeichnisse – alles hängt von der App ab. In ihrem eigenen „Home-Verzeichnis“ (und genau das ist es, was Linux bedeutet) können sie Dateien dort ablegen, wo sie wollen. Normalerweise sind diese Dateien und Verzeichnisse nur für die App selbst zugänglich (und natürlich für root). – Andere als die auf der SDCard gespeicherten, auf die alle Apps zugreifen können.

Kommentare

Antwort

Beim Speichern in Android 4.4 wurden einige wichtige Änderungen vorgenommen (siehe Androids Storage Journey ). Das Folgende gilt also im Allgemeinen für Android 4.4+ und insbesondere für 6+.

Dies geht aus meiner detaillierten Antwort auf Wie wird Speicherplatz auf Android-Geräten verwendet? . Apps „-Dateien werden (vom System und der App selbst) unter verschiedenen Kategorien im internen und externen Speicher gespeichert.

DIRECTORY DESCRIPTION / API ===================================================================================== APP CODE ======== /data/app/<pkg>* (user apps installation directory) /data/app/<pkg>*/base.apk (original `.apk` file) /data/app/<pkg>*/lib/<arch>/*.so (shared libraries) /data/app/<pkg>*/oat/<arch>/base.[art|odex|vdex] (compiled executable code) /data/dalvik-cache/<arch>/*.[art|dex|oat|vdex] (compiled executable code, only for system apps) /data/misc/profiles/cur/<user_id>/<pkg>/primary.prof (ART profile) /data/misc/profiles/ref/<pkg>/primary.prof (ART profile) INTERNAL STORAGE ================ /data/user[_de]/<user_id>/<pkg> getDataDir /data/user[_de]/<user_id>/<pkg>/files getFilesDir /data/user[_de]/<user_id>/<pkg>/[code_]cache getCacheDir or getCodeCacheDir /data/user[_de]/<user_id>/<pkg>/databases getDatabasePath /data/user[_de]/<user_id>/<pkg>/no_backup getNoBackupFilesDir /data/user[_de]/<user_id>/<pkg>/shared_prefs getSharedPreferences EXTERNAL STORAGE ================ /storage/emulated/obb/<pkg>/*.obb (shared by multi-users, exposed in following view) /storage/emulated/<user_id>/Android/obb/<pkg>/*.<pkg>.obb getObbDirs /storage/emulated/<user_id>/Android/media/<pkg> getExternalMediaDirs /storage/emulated/<user_id>/Android/data/<pkg>/ /storage/emulated/<user_id>/Android/data/<pkg>/files getExternalFilesDirs /storage/emulated/<user_id>/Android/data/<pkg>/[code_]cache getExternalCacheDirs 
  • Alle oben genannten Pfade im internen und externen Speicher (primär und sekundär) sind private Verzeichnisse der App, auf die die jeweilige App zugreifen kann, ohne eine Erlaubnis anzufordern. Apps können auch andere Verzeichnisse (nicht explizit über APIs verfügbar) in ihrem privaten Speicher erstellen. Alle diese zu einer App gehörenden Verzeichnisse werden gelöscht, wenn die App deinstalliert wird.

  • Zusätzlich können Apps ihre Daten an einer beliebigen Stelle im primären externen Speicher ablegen (einschließlich einiger Standardverzeichnisse und andere Apps“ private Verzeichnisse), wenn die Berechtigung WRITE_EXTERNAL_STORAGE erteilt wurde (getExternalStorageDirectory gibt /storage/emulated/<user_id>). Für sekundären externen Speicher und Wechselspeicher wird SAF verwendet. Weitere Informationen finden Sie unter Speichern von Dateien auf einer externen SD-Karte? .

    In Android 10 ist das Schreiben direkt in den primären externen gemeinsam genutzten Speicher jedoch veraltet (getExternalStorageDirectory und getExternalStoragePublicDirectory nicht mehr verfügbar). Apps müssen einen der in Android integrierten Inhaltsanbieter verwenden. entweder MediaStore (für Mediendateien) oder SAF (für jeden anderen Dateityp).

  • /data Pfade werden möglicherweise durch /mnt/expand/[UUID] ersetzt, wenn Adoptable Storage verwendet wird. /storage/emulated wird durch /storage/[UUID] ersetzt, wenn sekundärer externer Speicher (wie SD-Karte) verwendet wird.

  • Für mehrere Benutzer / Profile ist <user_id> unterschiedlich, der Gerätebesitzer ist immer 0 . /data/user/0 ist aus historischen Gründen ein Symlink zu /data/data. Sekundärer externer Speicher steht nur dem Gerätebesitzer zur Verfügung.

  • Das OBB-Verzeichnis wird aus Platzgründen von Benutzern / Profilen (bis zu Android 9) gemeinsam genutzt. FUSE / sdcardfs macht /storage/emulated/obb immer als /storage/emulated/<user_id>/Android/obb.

  • /data/user_de ist der geräteverschlüsselte Speicher auf FBE-Geräten, mit dem bestimmte Apps beim Booten ausgeführt werden können, ohne nach Benutzeranmeldeinformationen zu fragen.

  • /data/misc/profiles werden von ART für die profilgesteuerte Kompilierung von App-Code verwendet.

  • Die Beschreibung jedes Verzeichnisses ist aus den Namen etwas ersichtlich. Details finden Sie in der API-Dokumentation .

  • Caches werden vom Betriebssystem gelöscht, wenn der Speicherplatz knapp wird, sodass Apps das zugewiesene Kontingent überschreiten.

  • Apps „private files Verzeichnisse im externen Speicher werden nicht automatisch von MediaScanner gescannt, media Verzeichnisse jedoch.

  • Caches und no_backup -Verzeichnisse werden nicht in der Cloud gesichert. Siehe offizielle Dokumentation .

Antwort

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 speichern / ändern, wo immer sie möchten.

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

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.