Externer Android-Speicher: Was es ist, Arten von Medien und wie man in der Entwicklung arbeitet

Autor: IT Sectr Veröffentlicht: 2026-03-13 Lesezeit: 11 Min.

Externer Speicher auf mobilen Geräten ist ein entfernbarer Datenträger, auf den jede Anwendung mit entsprechenden Berechtigungen zugreifen kann. Laut Android Open Source Project, 2026 hat Google mit Android 10 Scoped Storage eingeführt – ein Modell, das den direkten Zugriff auf das Dateisystem einschränkt und die Verwendung der MediaStore API für die Arbeit mit gemeinsam genutzten Mediendateien erfordert. Dieser Ansatz erhöht die Sicherheit von Benutzerdaten und verhindert Informationslecks zwischen Anwendungen.

Wichtigste Punkte

  • External Storage – entfernbarer Speicher (SD-Karte, USB-OTG), der von verschiedenen Anwendungen gelesen und beschrieben werden kann
  • Scoped Storage unter Android 10+ schränkt den direkten Dateisystemzugriff ein und ersetzt ihn durch die MediaStore API
  • iOS unterstützt keine SD-Karten – der Zugriff auf externe Dateien erfolgt über Document Picker
  • Berechtigungen READ_EXTERNAL_STORAGE und WRITE_EXTERNAL_STORAGE sind für Android 9 und älter erforderlich
  • Die Formatierung einer SD-Karte als interner oder portabler Speicher bestimmt das Zugriffs- und Verschlüsselungsmodell

Was ist externer Speicher auf mobilen Geräten?

Externer Speicher ist ein Speicherbereich, der nicht Teil der geschützten Sandbox der Anwendung ist und für andere Programme zugänglich ist. Unter Android bezieht sich dieser Begriff normalerweise auf die SD-Karte, aber zum externen Speicher gehören auch USB-Laufwerke, die über einen OTG-Adapter angeschlossen sind, und Cloud-Laufwerke, die auf Dateisystemebene integriert sind. Der Hauptunterschied zum internen Speicher ist das Fehlen von Isolation: Jede Anwendung mit entsprechenden Berechtigungen kann Dateien im externen Speicher lesen und ändern.

Unter Android gibt es zwei Hauptmodi für externen Speicher: portabel und adoptierbar. Wenn eine SD-Karte als portabler Speicher formatiert wird, bleibt sie entfernbar und wird mit FAT32 oder exFAT formatiert. Im adoptierbaren Speichermodus wird die Karte mit ext4 formatiert und mit AES-128 verschlüsselt, wonach das System sie als Erweiterung des internen Speichers behandelt. Der adoptierbare Modus ist seit Android 6.0 Marshmallow verfügbar, aber Gerätehersteller deaktivieren diese Funktion häufig in ihrer Firmware. Laut Google Play Console-Statistiken unterstützen nur etwa 12 % der Android-Geräte adoptierbaren Speicher, daher wird nicht empfohlen, sich bei der Erweiterung des internen Speichers ausschließlich auf die SD-Karte zu verlassen.

Auf iOS gibt es keine herkömmlichen SD-Karten. Apple verwendet eine geschlossene Architektur, bei der der gesamte Speicher auf internem Flash-Speicher und iCloud basiert. Externe Laufwerke werden über den Lightning- oder USB-C-Anschluss unterstützt, aber der Zugriff darauf ist auf den Systemdateimanager Files und Anwendungen beschränkt, die in Document Picker integriert sind. Der Benutzer entscheidet, welche Dateien von einer externen Quelle geöffnet werden – die Anwendung kann ein angeschlossenes Laufwerk nicht ohne explizite Zustimmung scannen.

Arten externer Medien und ihre Eigenschaften

Die Wahl des externen Mediums hängt von den Anforderungen an Geschwindigkeit, Kapazität und Portabilität ab. Verschiedene Medientypen haben unterschiedliche Geschwindigkeitseigenschaften, Dateisysteme und Anwendungsfälle in mobilen Anwendungen.

MedientypMax. KapazitätLesegeschwindigkeitDateisystem
SD UHS-I2 TBbis zu 104 MB/sexFAT / FAT32
SD UHS-II2 TBbis zu 312 MB/sexFAT / FAT32
USB 3.0 OTG2 TBbis zu 400 MB/sexFAT / NTFS / FAT32
USB-C SSD4 TBbis zu 1000 MB/sexFAT / APFS / NTFS

SD-Karten und Geschwindigkeitsklassen

SD-Karten werden nach Schreibgeschwindigkeit klassifiziert: Class 10 (10 MB/s), U1 (10 MB/s), U3 (30 MB/s), V30 (30 MB/s) und V90 (90 MB/s). Für die 4K-Videoaufnahme wird eine Karte von mindestens U3 oder V30 benötigt. Für mobile Anwendungen, die mit großen Mediendateien arbeiten (Fotoverarbeitung, Videobearbeitung), wird die Verwendung von Karten der Klasse U3 und höher empfohlen. Die Kartengeschwindigkeit wirkt sich direkt auf die Anwendungsleistung aus: Die Aufnahme von 4K-Video auf einer Class 10-Karte kann aufgrund unzureichender Bandbreite zu Bildausfällen führen. Bei der Auswahl einer SD-Karte für eine Anwendung sollten Sie nicht nur auf die Geschwindigkeitsklasse achten, sondern auch auf die Bewertung der Anwendungsleistungsklasse: A1 und A2 geben die minimale zufällige Lese- und Schreibleistung an, die für Datenbank- und Anwendungscache-Operationen entscheidend ist.

USB-OTG-Laufwerke

USB-OTG (On-The-Go) ermöglicht den Anschluss externer USB-Laufwerke an ein mobiles Gerät über einen Adapter. Android unterstützt OTG seit Version 3.1, aber zum Mounten des Laufwerks ist ein Kernel mit Dateisystemunterstützung erforderlich. FAT32 und exFAT werden standardmäßig unterstützt, NTFS – nur auf Geräten mit benutzerdefiniertem Kernel oder über die Paragon-Bibliothek. Unter iOS wurde die USB-Laufwerkunterstützung in iOS 13 mit der App Files eingeführt. Um mit einem Laufwerk zu arbeiten, muss die Anwendung UIDocumentPickerViewController verwenden, der nur Zugriff auf die vom Benutzer ausgewählten Dateien bietet – iOS gewährt keinen vollständigen Zugriff auf das Dateisystem des Laufwerks.

Cloud-Speicher als Erweiterung

Cloud-Dienste – iCloud, Google Drive, Dropbox – können über Systemanbieter in das Dateisystem des Geräts integriert werden. Unter iOS ist iCloud Drive Teil des Sandbox-Containers der Anwendung, und Dateien werden automatisch zwischen den Geräten des Benutzers synchronisiert. Unter Android bietet Google Drive eine API zum Lesen und Schreiben von Dateien, aber eine direkte Einbindung in das Dateisystem erfolgt nicht. Für mobile Anwendungen, die mit großen Datenmengen arbeiten, kann Cloud-Speicher als Alternative zur SD-Karte dienen, insbesondere auf Geräten ohne Erweiterungssteckplatz.

So arbeiten Sie mit externem Speicher unter Android

Die Arbeit mit externem Speicher unter Android hängt von der Betriebssystemversion und dem Scoped Storage-Modell ab. Der Dateizugriffsprozess unterscheidet sich für Android 9 und älter, Android 10–12 und Android 13+.

Zugriff über die MediaStore API

Ab Android 10 ist die primäre Methode für den Zugriff auf gemeinsam genutzte Mediendateien die MediaStore API. Diese API bietet eine einheitliche Schnittstelle zum Lesen und Schreiben von Bildern, Videos und Audiodateien im gemeinsamen Speicher. Eine Anwendung benötigt keine READ_EXTERNAL_STORAGE-Berechtigung, um auf eigene Dateien zuzugreifen, aber zum Lesen von Dateien anderer Anwendungen ist weiterhin eine explizite Benutzerberechtigung erforderlich. MediaStore indiziert Mediendateien automatisch und stellt einen ContentResolver für Abfragen bereit.

kotlin
val collection = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
} else {
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI
}

val projection = arrayOf(
    MediaStore.Images.Media._ID,
    MediaStore.Images.Media.DISPLAY_NAME
)

val cursor = contentResolver.query(collection, projection, null, null, null)

Nach dem Ausführen der Abfrage erhalten Sie einen Cursor, der die URIs der Dateien enthält. Zum Lesen einer Datei öffnen Sie einen InputStream über contentResolver.openInputStream(uri). Das Schreiben erfolgt ähnlich über contentResolver.openOutputStream(uri). MediaStore behandelt Namenskonflikte automatisch und bietet die Möglichkeit, neue Dateien über contentResolver.insert(uri, values) einzufügen, das den URI der erstellten Datei zurückgibt.

Arbeiten mit beliebigen Dateien über SAF

Storage Access Framework (SAF) ist die empfohlene Methode für den Zugriff auf beliebige Dateien unter Android 10+. SAF bietet einen System-Dateiauswahldialog, über den der Benutzer der Anwendung Zugriff auf eine bestimmte Datei oder ein bestimmtes Verzeichnis gewährt. Die Anwendung erhält einen Zugriffs-URI, der bis zum Neustart des Geräts oder bis zum expliziten Widerruf der Berechtigung in den Einstellungen gültig bleibt. SAF erfordert keine READ_EXTERNAL_STORAGE- oder WRITE_EXTERNAL_STORAGE-Berechtigungen, was die Veröffentlichung im Google Play Store vereinfacht und die Anzahl der Berechtigungsanfragen reduziert.

kotlin
val requestCode = 42
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
intent.addFlags(
    Intent.FLAG_GRANT_READ_URI_PERMISSION
        or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
startActivityForResult(intent, requestCode)

So arbeiten Sie mit externem Speicher unter iOS

Unter iOS basiert die Arbeit mit externen Dateien auf UIDocumentPickerViewController, den der Benutzer öffnet, um bestimmte Dateien oder Verzeichnisse auszuwählen. Die Anwendung hat keinen direkten Zugriff auf das Dateisystem des externen Laufwerks – nur auf die Dateien, die der Benutzer explizit ausgewählt hat. Nach der Dateiauswahl erhält die Anwendung eine temporäre URL im Sandbox-Container und kann über FileManager mit der Datei arbeiten.

Verwendung von UIDocumentPickerViewController

UIDocumentPickerViewController ermöglicht dem Benutzer die Auswahl einer oder mehrerer Dateien aus jeder verfügbaren Quelle: iCloud Drive, einem angeschlossenen USB-Laufwerk oder einem Cloud-Dienst eines Drittanbieters. Nach der Auswahl gibt der Controller ein Array von URLs zurück, die die Anwendung während der Sitzung lesen kann. Um den Zugriff nach dem Schließen der Anwendung aufrechtzuerhalten, müssen Sie startAccessingSecurityScopedResource() aufrufen und ein sicherheitsbezogenes Lesezeichen in UserDefaults speichern.

swift
let picker = UIDocumentPickerViewController(
    forOpeningContentTypes: [.data, .image],
    asCopy: true
)
picker.delegate = self

func documentPicker(
    controller: UIDocumentPickerViewController,
    didPickDocumentsAt urls: [URL]
) {
    guard let url = urls.first else { return }
    let data = try Data(contentsOf: url)
}

Der Parameter asCopy: true bedeutet, dass iOS die Datei in den Sandbox-Container der Anwendung kopiert und die Anwendung eine eigene Kopie unabhängig von der Originaldatei erhält. Wenn asCopy: false angegeben wird, erhält die Anwendung einen Verweis auf die Originaldatei, aber für den Zugriff muss url.startAccessingSecurityScopedResource() aufgerufen werden. Ohne diesen Aufruf führt das Lesen der Datei zu einer Ausnahme. Nach Abschluss der Arbeit mit der Datei rufen Sie immer url.stopAccessingSecurityScopedResource() auf, um die Ressource freizugeben und Deskriptorlecks zu vermeiden.

Einschränkungen und Sicherheit von externem Speicher

Die Sicherheit von externem Speicher ist geringer als die von internem Speicher, da Dateien für andere Anwendungen zugänglich sind. Jede Anwendung mit READ_EXTERNAL_STORAGE-Berechtigung kann alle Dateien auf der SD-Karte lesen, einschließlich derer, die Ihre Anwendung zur vorübergehenden Speicherung vertraulicher Daten erstellt hat. Eine böswillige Anwendung könnte die SD-Karte scannen und Benutzerdaten extrahieren, wenn diese nicht verschlüsselt sind. Daher wird dringend davon abgeraten, Authentifizierungstoken, Passwörter oder persönliche Benutzerdaten im externen Speicher im Klartext zu speichern.

Unter Android 10+ schränkt Scoped Storage die Fähigkeit von Anwendungen, auf das gemeinsame Dateisystem zuzugreifen, erheblich ein. Eine Anwendung kann ohne Berechtigung nur die von ihr selbst erstellten Dateien lesen, und für den Zugriff auf Dateien anderer Anwendungen ist die explizite Zustimmung des Benutzers über den SAF-Dialog erforderlich. Diese Einschränkung gilt jedoch nicht für Anwendungen mit einer Ziel-SDK-Version unter 29 – sie arbeiten weiterhin nach dem alten Modell, was ein Risiko für Benutzer darstellt, die ihre Anwendungen nicht aktualisiert haben. Google Play verlangt seit 2021 targetSdkVersion 29+ für alle neuen und aktualisierten Anwendungen.

Formatierung und Verschlüsselung sind ein weiterer wichtiger Sicherheitsaspekt. Eine als portabler Speicher formatierte SD-Karte wird vom System standardmäßig nicht verschlüsselt. Selbst bei Verwendung von adoptierbarem Speicher wird die Verschlüsselung nur aktiviert, wenn der Gerätehersteller diese Funktion in der Firmware aktiviert hat. Zum Schutz vertraulicher Daten, die auf externem Speicher gespeichert sind, verwenden Sie die Bibliothek EncryptedFile von AndroidX Security, die jede Datei unabhängig von der Systemverschlüsselung einzeln mit AES256-GCM verschlüsselt.

Empfehlungen zur Nutzung von externem Speicher

Die effektive Nutzung von externem Speicher erfordert ein Gleichgewicht zwischen Datenverfügbarkeit und Sicherheit. Befolgen Sie diese Regeln, um eine zuverlässige Speicherung von Benutzerdateien zu gewährleisten.

  • Speichern Sie keine vertraulichen Daten ohne Verschlüsselung im externen Speicher. Verwenden Sie EncryptedFile oder EncryptedSharedPreferences zum Schutz von Token, Passwörtern und persönlichen Daten
  • Überprüfen Sie die Verfügbarkeit des externen Speichers vor dem Schreiben: Verwenden Sie Environment.getExternalStorageState(), um den Status der SD-Karte zu prüfen. Die Karte kann entfernt, beschädigt oder nicht beschreibbar sein
  • Verwenden Sie Scoped Storage unter Android 10+ und SAF für den Zugriff auf gemeinsame Dateien. Dies reduziert die Anzahl der angeforderten Berechtigungen und verbessert die Benutzererfahrung
  • Behandeln Sie Ausnahmen immer bei der Arbeit mit externem Speicher. Eine Datei kann von einer anderen Anwendung gelöscht oder während des Lesens verschoben werden, was zu einer FileNotFoundException führt
  • Warnen Sie den Benutzer vor dem Schreiben großer Datenmengen auf den externen Speicher. Zeigen Sie einen Bestätigungsdialog an und ermöglichen Sie die Auswahl eines Verzeichnisses über SAF

Es ist wichtig zu bedenken, dass externer Speicher die Datenintegrität bei Ausfällen nicht garantiert. SD-Karten haben eine begrenzte Anzahl von Überschreibungszyklen, insbesondere günstige Modelle der Klasse 4 und 6. Bei intensivem Schreiben (z. B. Protokollierung oder Zwischenspeichern von Streaming-Daten) kann eine Karte innerhalb weniger Monate ausfallen. Verwenden Sie für solche Szenarien internen Speicher oder Cloud-Speicher und speichern Sie nur Dateien auf dem externen Speicher, deren Verlust der Benutzer als akzeptabel betrachtet. Überprüfen Sie regelmäßig den Status der SD-Karte über StatFs und informieren Sie den Benutzer über kritische Dateisystemfehler.

Häufig gestellte Fragen

Ist eine Berechtigung für den Zugriff auf externen Speicher unter Android 13 erforderlich?

Unter Android 13+ wurde die Berechtigung READ_EXTERNAL_STORAGE durch granularere Berechtigungen ersetzt: READ_MEDIA_IMAGES, READ_MEDIA_VIDEO und READ_MEDIA_AUDIO. Für andere Dateitypen verwenden Sie SAF.

Kann eine SD-Karte als interner Speicher formatiert werden?

Ja, die Funktion adoptable storage ist unter Android 6.0+ verfügbar. Die Karte wird mit ext4 mit AES-128-Verschlüsselung formatiert. Viele Hersteller deaktivieren diese Option jedoch, und etwa 88 % der Geräte unterstützen keinen adoptierbaren Speicher.

Wie überprüfe ich, ob eine SD-Karte im Gerät installiert ist?

Verwenden Sie die Methode Environment.getExternalStorageState(), die eine Statuszeichenfolge zurückgibt. Der Wert MEDIA_MOUNTED bedeutet, dass die Karte zum Lesen und Schreiben zur Verfügung steht. Andere Werte weisen auf Fehler oder das Fehlen einer Karte hin.

Was ist der Unterschied zwischen Scoped Storage und vollem Dateisystemzugriff?

Scoped Storage schränkt die Anwendung auf ihren eigenen Container und die gemeinsam genutzten MediaStore-Medienbibliotheken ein. Der volle Zugriff erlaubt das Lesen beliebiger Dateien auf dem Gerät. Scoped Storage erhöht die Sicherheit von Benutzerdaten und ist für neue Anwendungen obligatorisch.

Wie erhalte ich einen URI für den Zugriff auf eine Datei auf einer SD-Karte über SAF?

Starten Sie einen Intent mit der Aktion ACTION_OPEN_DOCUMENT_TREE, der einen Systemverzeichnisauswahldialog öffnet. Nach der Auswahl erhalten Sie eine URI-Berechtigung, die bis zum Neustart gültig ist. Speichern Sie diesen URI zur späteren Verwendung in SharedPreferences.

Zusammenfassung

  • External Storage – entfernbarer Speicher (SD-Karte, USB-OTG), der für alle Anwendungen mit entsprechenden Berechtigungen zugänglich ist
  • Scoped Storage unter Android 10+ schränkt den direkten Dateisystemzugriff ein und führt die MediaStore API für Mediendateien ein
  • iOS unterstützt keine SD-Karten – der Zugriff auf externe Dateien ist nur über UIDocumentPickerViewController möglich
  • SD-Karten werden in Geschwindigkeitsklassen unterteilt: Class 10, U1, U3, V30, V90 – für 4K-Videoaufnahmen ist mindestens U3 erforderlich
  • Die Sicherheit von externem Speicher ist geringer als die von internem Speicher – verschlüsseln Sie vertrauliche Daten vor dem Schreiben
  • Adoptierbarer Speicher ermöglicht die Verwendung einer SD-Karte als Erweiterung des internen Speichers, wird aber nur von 12 % der Geräte unterstützt
  • Es wird empfohlen, SAF für den Zugriff auf beliebige Dateien zu verwenden und keine kritischen Daten ohne Verschlüsselung zu speichern

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch