Daten- und Dateispeicher – Übersicht

Android verwendet ein Dateisystem, das datenträgerbasierten Dateisystemen in anderen Plattformen. Das System bietet mehrere Optionen zum Speichern Ihrer App-Daten:

  • App-spezifischer Speicher:Speichern Sie Dateien, die nur für die Nutzung durch Ihre App bestimmt sind. entweder in speziellen Verzeichnissen innerhalb eines internen Speicher-Volumes oder dedizierten Verzeichnissen innerhalb des externen Speichers. Verwenden Sie die Verzeichnisse innerhalb von internen Speicher, um vertrauliche Daten zu speichern, auf die andere Apps keinen Zugriff haben sollen.
  • Gemeinsam genutzter Speicher:Damit können Sie Dateien speichern, die Ihre App für andere Nutzer freigeben soll. Apps, einschließlich Medien, Dokumenten und anderen Dateien.
  • Einstellungen:Speichern Sie private, primitive Daten in Schlüssel/Wert-Paaren.
  • Datenbanken:Speichern Sie strukturierte Daten mithilfe der Funktion „Room“ in einer privaten Datenbank. Persistenzbibliothek.

Die Eigenschaften dieser Optionen sind in der folgenden Tabelle zusammengefasst:

Art der Inhalte Zugriffsmethode Berechtigungen erforderlich Können andere Apps darauf zugreifen? Werden Dateien bei der Deinstallation der App entfernt?
App-spezifisch Dateien Dateien, die nur für die Verwendung in deiner App bestimmt sind Aus dem internen Speicher, getFilesDir() oder getCacheDir()

Auf einem externen Speichergerät getExternalFilesDir() oder getExternalCacheDir()
Nie für internen Speicher benötigt

Nicht für externen Speicher benötigt Speicherplatz, wenn deine App auf Geräten mit Android 4.4 (API-Level 19) verwendet wird oder höher
Nein Ja
Medien Gemeinsam nutzbare Mediendateien (Bilder, Audiodateien, Videos) MediaStore-API READ_EXTERNAL_STORAGE beim Zugriff auf die Dateien auf Android 11 (API-Level 30) oder höher

READ_EXTERNAL_STORAGE oder WRITE_EXTERNAL_STORAGE beim Zugriff auf andere Apps Dateien unter Android 10 (API-Level 29)

Unter Android 9 (API-Level 28) sind für alle Dateien Berechtigungen erforderlich oder niedriger
Ja, aber die andere App benötigt die READ_EXTERNAL_STORAGE Berechtigung Nein
Dokumente und andere Dateien Andere Arten von Inhalten, die geteilt werden können, einschließlich heruntergeladener Dateien Storage Access Framework Keine Ja, über die Systemdateiauswahl Nein
App-Kampagnen Einstellungen Schlüssel/Wert-Paare Jetpack Bibliothek der Einstellungen Keine Nein Ja
Datenbank Strukturierte Daten Chatroom-Persistenzbibliothek Keine Nein Ja

Die Lösung, für die Sie sich entscheiden, hängt von Ihren spezifischen Anforderungen ab:

Wie viel Speicherplatz benötigen Ihre Daten?
Im internen Speicher ist der Speicherplatz für appspezifische Daten begrenzt. Andere Arten von wenn Sie eine große Datenmenge sparen müssen.
Wie zuverlässig muss der Datenzugriff sein?
Wenn für die grundlegenden Funktionen deiner App bestimmte Daten erforderlich sind, z. B. wenn deine App die Daten im internen Speicherverzeichnis oder in einer Datenbank ablegen. Nicht immer kann auf App-spezifische Dateien im externen Speicher zugegriffen werden da Nutzer auf einigen Geräten ein physisches Gerät entfernen können, externen Speicher.
Welche Art von Daten müssen gespeichert werden?
Wenn Sie Daten haben, die nur für Ihre App relevant sind, verwenden Sie App-spezifische Speicherplatz. Verwenden Sie für gemeinsam nutzbare Medieninhalte den freigegebenen Speicher, damit andere Apps auf die Inhalte zugreifen können. Verwenden Sie für strukturierte Daten beide Einstellungen (für Schlüssel/Wert-Paare Daten) oder eine Datenbank (für Daten mit mehr als 2 Spalten).
Sollten die Daten für Ihre App privat sein?
Beim Speichern sensibler Daten, also Daten, die von keinem anderen App: internen Speicher, Einstellungen oder eine Datenbank verwenden. Der interne Speicher hat da die Daten für Nutzende nicht sichtbar sind.

Kategorien von Speicherstandorten

Android bietet zwei Arten von physischen Speicherorten: interner Speicher und externen Speichers. Auf den meisten Geräten ist der interne Speicher kleiner als der externe Speicher. Speicherplatz. Der interne Speicher ist jedoch immer auf allen Geräten verfügbar, um die Daten, von denen Ihre App abhängt, zuverlässiger zu speichern.

Wechseldatenträger, z. B. eine SD-Karte, werden im Dateisystem externen Speicher. Android stellt diese Geräte über einen Pfad wie /sdcard

<ph type="x-smartling-placeholder">

Die Apps selbst werden standardmäßig im internen Speicher gespeichert. Wenn Ihre APK-Größe sehr groß ist. Sie können jedoch im Manifest Ihrer App eine Präferenz angeben. -Datei, um Ihre App stattdessen im externen Speicher zu installieren:

<manifest ...
  android:installLocation="preferExternal">
  ...
</manifest>

Berechtigungen und Zugriff auf externen Speicher

In Android sind die folgenden speicherbezogenen Berechtigungen definiert: READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, und MANAGE_EXTERNAL_STORAGE

In früheren Android-Versionen mussten Apps die READ_EXTERNAL_STORAGE-Berechtigung, um auf beliebige Dateien außerhalb der app-spezifischen im externen Speicher. Außerdem müssen Apps, in denen die Schreibberechtigung WRITE_EXTERNAL_STORAGE erklärt werden muss, eine beliebige Datei außerhalb des anwendungsspezifischen Verzeichnisses.

Neuere Android-Versionen verlassen sich eher auf den Zweck einer Datei als auf ihren Speicherort zum Bestimmen der Fähigkeit einer Anwendung, auf eine bestimmte Datei zuzugreifen und in diese zu schreiben. In Wenn Ihre App auf Android 11 (API-Level 30) oder höher ausgerichtet ist, Die Berechtigung „WRITE_EXTERNAL_STORAGE“ hat keine Auswirkungen auf deine App Zugriff auf den Speicher. Zweckbasiertes Speichermodell verbessert den Datenschutz da Apps nur Zugriff auf die Bereiche des Dateisystems des Geräts erhalten, die sie tatsächlich nutzen.

Android 11 führt die Berechtigung MANAGE_EXTERNAL_STORAGE ein, Schreibzugriff auf Dateien außerhalb des anwendungsspezifischen Verzeichnisses und von MediaStore. Bis Weitere Informationen zu dieser Berechtigung und dazu, warum die meisten Apps sie nicht deklarieren müssen Anwendungsfälle erfüllen, finden Sie im Leitfaden zur Verwaltung aller Dateien auf einem Speichergerät an.

Begrenzter Speicher

Um Nutzern mehr Kontrolle über ihre Dateien zu geben und Dateien übersichtlicher zu gestalten, werden Apps, die Ziel-Android 10 (API-Level 29) und höher erhalten eingeschränkten Zugriff auf externe begrenztem Speicher verwendet. Diese Apps haben nur Zugriff auf die App-spezifisches Verzeichnis auf externen Speichermedien sowie bestimmte Medientypen die die App erstellt hat.

Begrenzten Speicher verwenden, es sei denn, Ihre Anwendung benötigt Zugriff auf eine Datei, die außerhalb von gespeichert ist eines anwendungsspezifischen Verzeichnisses und außerhalb eines Verzeichnisses, das die MediaStore APIs haben Zugriff. Wenn Sie App-spezifische Dateien in einem externen Speicher speichern, können Sie die Nutzung des begrenzten Speichers erleichtern, indem Sie diese Dateien in einem app-spezifisches Verzeichnis auf externen Speicherplatz. So kann Ihre App behält Zugriff auf diese Dateien, wenn der beschränkte Speicher aktiviert ist.

Informationen zur Vorbereitung Ihrer Anwendung auf den begrenzten Speicher finden Sie unter Speicheranwendungsfälle und Best Practices Leitfaden für Best Practices. Wenn Ihre App zu einem anderen Zweck die nicht durch den begrenzten Speicher abgedeckt ist, reichen Sie ein Element ein anfragen. Sie können vorübergehend die Verwendung von Speicherplatz.

Dateien auf einem Gerät ansehen

Um die auf einem Gerät gespeicherten Dateien anzusehen, verwende die Device File (Gerätedatei) von Android Studio Explorer:

Weitere Informationen

Weitere Informationen zur Datenspeicherung finden Sie in den folgenden Ressourcen.

Videos