DataStore

Daten asynchron, konsistent und transaktional speichern, um einige der Nachteile von SharedPreferences zu vermeiden
Letzte Aktualisierung Stabile Version Release-Kandidat Beta-Ausgabe Alphaversion
15. Januar 2025 1.1.2 - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von DataStore hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Es gibt zwei Implementierungen von DataStore: Preferences und Proto. Wählen Sie eine der beiden Optionen aus. Sie können beiden Implementierungen auch Android-unabhängige Abhängigkeiten hinzufügen.

Fügen Sie der build.gradle-Datei Ihrer App oder Ihres Moduls die erforderlichen Abhängigkeiten für die Implementierung hinzu:

DataStore für Einstellungen

Groovy

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation "androidx.datastore:datastore-preferences:1.1.2"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.2"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.2"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.2"
    }
    

Kotlin

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation("androidx.datastore:datastore-preferences:1.1.2")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.2")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.2")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.2")
    }
    

Proto DataStore

Groovy

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.2"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.2"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.1.2"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.2"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.2")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.2")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.1.2")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.2")
    }
    

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte melden Sie uns neue Probleme oder Ideen zur Verbesserung dieser Bibliothek. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.1

Version 1.1.2

15. Januar 2025

androidx.datastore:datastore-*:1.1.2 wird veröffentlicht. Version 1.1.2 enthält diese Commits.

Fehlerkorrekturen

  • Die Leselatenz bei vorab geladenen Daten (DataStore.data.first()) wurde um das Achtfache verbessert. (22b8a40)
  • ReplaceFileCorruptionHandler kann aus KMP-Common Code erstellt werden. (7632e839)

Version 1.1.1

1. Mai 2024

androidx.datastore:datastore-*:1.1.1 wird veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • Der Linux-Fehlalarm „Resource deadlock would occur“ (Es würde zu einem Ressourcen-Deadlock kommen) wurde in einem Grenzfall behoben, in dem mehrere DataStore-Instanzen versuchen, aus verschiedenen Prozessen zu schreiben, indem die Dateisperre aufgehoben wird.

Version 1.1.0

17. April 2024

androidx.datastore:datastore-*:1.1.0 wird veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit der Version 1.0.0

Weitere Informationen finden Sie in den Versionshinweisen der Alpha- und Betaversionen von 1.1.0. Zu den wichtigsten Updates in 1.1.0 gehören:

  • DataStore unterstützt jetzt mehrere Prozesse, die auf dieselbe Datei zugreifen, und bietet prozessübergreifende Beobachtbarkeit.
  • Über die neue Speicheroberfläche können Sie anpassen, wie Ihre Datenmodelle gespeichert oder serialisiert werden.
  • Sie können DataStore jetzt in Kotlin-Multiplattform-Projekten verwenden.

Version 1.1.0-rc01

3. April 2024

androidx.datastore:datastore-*:1.1.0-rc01 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Behebung der Leistungseinbußen, bei denen updateData-Aufrufe bei Laufwerkschreiben nicht optimiert wurden, wenn die neuen Daten mit den alten Daten identisch sind (d64cfb5)
  • Es wurde eine Race-Bedingung behoben, bei der MultiProcess DataStore bei der Initialisierung möglicherweise ungültige Werte übersieht. ((b/326141553),(094c2dd))

Version 1.1.0-beta02

6. März 2024

androidx.datastore:datastore-*:1.1.0-beta02 wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Bei Leistungsverbesserungen bei DataStore werden nur Aktualisierungsbenachrichtigungen erfasst, wenn sie auftreten. (b/267792241)
    • Hinweis: Diese Änderung kann in Ihren Tests UncompletedCoroutinesError auslösen, wenn Sie die Coroutines-Testbibliothek verwenden. Um dieses Problem zu vermeiden, müssen Sie TestScope.backgroundScope übergeben, wenn Sie DataStore in Ihren Tests initialisieren.
  • ​Das Problem wurde behoben, dass verschachtelte updateData-Aufrufe für dieselbe Instanz zu einem Deadlock führten. (b/241760537)
  • Bei DataStore wird IOExceptions nicht mehr ausgegeben, wenn SharedPreferences während der Migration nicht gelöscht werden kann. (b/195553816)
  • Das Problem wurde behoben, dass das Umbenennen von Dateien während updateData in nicht Android-JVM-Umgebungen fehlgeschlagen ist. (b/203087070)
  • Das Problem, bei dem CorruptionException nach der Initialisierung von DataStore nicht verarbeitet wurde, wurde behoben. (b/289582516)

Version 1.1.0-beta01

10. Januar 2024

androidx.datastore:datastore-*:1.1.0-beta01 wird seit 1.1.0-alpha07 unverändert veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Version 1.1.0-alpha07

29. November 2023

androidx.datastore:datastore-*:1.1.0-alpha07 wird veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.

API-Änderungen

  • MultiProcessDataStoreFactory-Methoden sind nicht mehr experimentell.Die Anmerkung @ExperimentalMultiProcessDataStore wurde vollständig entfernt. (Ieee54, I8e607)

Fehlerkorrekturen

  • Einführung der Entfernung von @ExperimentalMultiProcessDataStore-Anmerkungen in 1.1.0-alpha07 (I8e607)

Version 1.1.0-alpha06

1. November 2023

androidx.datastore:datastore-*:1.1.0-alpha06 wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

API-Änderungen

  • Die createSingleProcessCoordinator-Factory-Methode erhält jetzt einen Dateipfad (String, java.io.File und okio.Path), um mit createMultiProcessCoordinator übereinzustimmen. (I211c8, b/305755935)

Version 1.1.0-alpha05

6. September 2023

androidx.datastore:datastore-*:1.1.0-alpha05 wird veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Der Datenspeicher FileStorage ist jetzt öffentlich verfügbar, sodass Kunden benutzerdefinierte Parameter angeben können. (Icb985)
  • Der Konstruktor von OkioStorage wurde so geändert, dass er eine InterProcessCoordinator akzeptiert, damit er auf Android-Geräten mit MultiProcessCoordinator verwendet werden kann. (Iecea3)

Fehlerkorrekturen

  • Behebung des Problems, dass mehrere Dateien im selben Verzeichnis nicht überwacht werden konnten (MultiProcessCoordinator).
  • Fehler behoben, bei dem doppelte Dateien nicht erkannt werden konnten, wenn Dateipfade nicht normalisiert sind.
  • Korrigieren Sie falsche Werte, die von RxDataStore#isDisposed zurückgegeben werden.
  • Fehlende ProGuard-Konfiguration für das datstore-preferences-core-Artefakt behoben.

Version 1.1.0-alpha04

5. April 2023

androidx.datastore:datastore-*:1.1.0-alpha04 wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Optimieren Sie die interne Implementierung, um eine Race-Bedingung zu vermeiden, bei der der Datenfluss von DataStore nach einem Update einen älteren Wert ausgeben könnte.

Version 1.1.0-alpha03

24. März 2023

androidx.datastore:datastore-*:1.1.0-alpha03 wird veröffentlicht.

Fehlerkorrekturen

  • Abhängigkeitsbeschränkungen aus Maven-Artefakten wurden entfernt, um ein Build-Problem in Kotlin Native Targets zu umgehen (b/274786186, KT-57531).

Version 1.1.0-alpha02

22. März 2023

androidx.datastore:datastore-*:1.1.0-alpha02 wird veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

Hinweis

Diese Version enthält eine wichtige interne Refaktorisierung, bei der die Implementierungen für DataStore-Implementierungen mit einem und mehreren Prozessen zusammengeführt werden. Bitte achten Sie auf mögliche unbeabsichtigte Verhaltensänderungen (z.B. Zeitpunkt der Benachrichtigungen zu Updates). Sie können solche Änderungen über die Problemverfolgungskomponente melden.

Neue Funktionen

  • Sie können DataStore jetzt in KMM-Projekten verwenden. Nicht-Android-Ziele von DataStore befinden sich noch in der Testphase. Wir haben uns jedoch dazu entschieden, die Versionen zusammenzuführen, damit Entwickler sie leichter ausprobieren können.
  • Die Funktionen für mehrere Prozesse werden von androidx.datastore.multiprocess nach androidx.datastore.core verschoben.
  • Fügen Sie in androidx.datastore.core.MultiProcessDataStoreFactory eine neue Fabrikmethode hinzu, um DataStore-Instanzen mit Storage-Objekten für Dateivorgänge zu erstellen.
  • Fügen Sie eine neue Schnittstelle InterProcessCoordinator hinzu, die die Kommunikation zwischen mehreren DataStore-Instanzen über Prozesse hinweg ermöglicht. Die Mehrfachprozessimplementierung von InterProcessCoordinator ist nur auf Android-Geräten verfügbar.

API-Änderungen

  • InterProcessCoordinator in der datastore-core-Benutzeroberfläche zu StorageConnection hinzufügen (I555bb)
  • Ändern Sie die APIs in datastore-core MultiProcessDataStoreFactory, damit sie Storage verwenden. (Iac02f)
  • Öffentliche APIs in datastore-multiprocess zu datastore-core verschieben (I76d7c)
  • PreferencesSerializer von datastore-preferences-core (I4b788) freigegeben
  • @JvmDefaultWithCompatibility-Anmerkung hinzufügen (I8f206)

Version 1.1.0-alpha01

9. November 2022

androidx.datastore:datastore-*:1.1.0-alpha01 wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Unterstützung von Anwendungsfällen mit mehreren Prozessen, bei denen die Datenkonsistenz zwischen DataStore-Instanzen in verschiedenen Prozessen gewährleistet ist. Fügen Sie MultiProcessDataStoreFactory#create hinzu, um solche DataStore-Instanzen zu erstellen.
  • Neue Speicheroberfläche, mit der der zugrunde liegende Speichermechanismus für Datastore ausgetauscht werden kann. Es werden Implementierungen für java.io und okio bereitgestellt. DataStore-Fabriken haben neue Methoden, die dieses Speicherobjekt akzeptieren.

API-Änderungen

  • Ändern Sie die APIs in datastore-core MultiProcessDataStoreFactory, damit sie Storage verwenden. (Iac02f)
  • Öffentliche APIs in datastore-multiprocess zu datastore-core verschieben (I76d7c)
  • PreferencesSerializer von datastore-preferences-core (I4b788) freigegeben

Version 1.0.0

Version 1.0.0

4. August 2021

androidx.datastore:datastore-*:1.0.0 wird veröffentlicht. Version 1.0.0 enthält diese Commits.

Wichtige Funktionen von 1.0.0

Jetpack DataStore ist eine Datenspeicherlösung, mit der Sie Schlüssel/Wert-Paare oder typisierte Objekte mit Protokoll-Buffers speichern können. DataStore verwendet Kotlin-Coroutinen und Flow, um Daten asynchron, konsistent und transaktional zu speichern.

Version 1.0.0-rc02

21. Juli 2021

androidx.datastore:datastore-*:1.0.0-rc02 wird veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Erläutern, dass SharedPreferencesMigration nicht ausgeführt wird, wenn keine Schlüssel vorhanden sind. (Icfa32, b/192824325)
  • Fehler behoben, bei dem SharedPreferencesMigration, das mit MIGRATE_ALL_KEYS erstellt wurde, eine Ausnahme auslöste, wenn der angeforderte Schlüssel noch nicht vorhanden war. (Ie318a, b/192824325)

Version 1.0.0-rc01

30. Juni 2021

androidx.datastore:datastore-*:1.0.0-rc01 wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Behebt den Fehler, bei dem eine .java-Datei versehentlich in die finale JAR-Datei aufgenommen wurde (I65d96, b/188985637)

Version 1.0.0-beta02

16. Juni 2021

androidx.datastore:datastore-*:1.0.0-beta02 wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Fehlerbehebung bei ClassVerificationFailure (b/187450483)

Version 1.0.0-beta01

21. April 2021

androidx.datastore:datastore-*:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • JVM-Überladungen für nur Kotlin-Methoden entfernen (I2adc7)

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den Datenspeicher-Delegierte zu Lecks von Kontexten führen konnten (Ie96fc, b/184415662)

Version 1.0.0-alpha08

10. März 2021

androidx.datastore:datastore-*:1.0.0-alpha08 wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

API-Änderungen

  • Sie können Ihrem Property-Delegierten für dataStore und preferencesDataStore jetzt eine kontextabhängige Migration hinzufügen. (I4ef69, b/173726702)
  • Es werden Hilfsfunktionen zum Abrufen des Namens der Datei hinzugefügt, wenn Sie den DataStore-Delegierten oder context.createDataStore nicht mehr verwenden (I60f9a)
  • Serializer writeTo und readFrom werden jetzt angehalten. Wenn Sie einen Serializer implementiert haben, müssen Sie Ihre Funktionen zu Suspend-Funktionen aktualisieren. (I1e58e)
  • Es wurden Property-Delegierte für RxDataStore-Nutzer hinzugefügt. (Ied768, b/173726702)

Fehlerkorrekturen

  • Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)

Version 1.0.0-alpha07

24. Februar 2021

androidx.datastore:datastore-*:1.0.0-alpha07 wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • Die Erweiterungsfunktion Context.createDataStore wurde entfernt und durch den Property-Delegaten „globalDataStore“ ersetzt. Rufe „globalDataStore“ einmal auf oberster Ebene in deiner Kotlin-Datei auf. Beispiel:

    val Context.myDataStore by dataStore(...)
    

    Fügen Sie diese Zeile auf der obersten Ebene Ihrer Kotlin-Datei ein, damit es nur eine Instanz davon gibt. (I57215, b/173726702)

  • Die RxDataStore-Funktionen befinden sich jetzt in einer RxDataStore-Klasse anstelle von Erweiterungsfunktionen in DataStore. (Idccdb, b/177691248)

  • Wenn Sie EncryptedSharedPreferences (oder SharedPreferences für den direkten Start) in den DataStore migrieren möchten, können Sie dies jetzt mit dem neuen SharedPreferencesMigration-Konstruktor tun, mit dem Sie die SharedPreferences einfügen können. (I8e04e, b/177278510)

Fehlerkorrekturen

  • DataStore löst jetzt eine Ausnahme aus, wenn für dieselbe Datei mehrere aktive DataStores vorhanden sind. Wenn Sie Ihren DataStore nicht als Singleton verwaltet oder nicht dafür gesorgt haben, dass nicht zwei DataStore-Instanzen gleichzeitig für eine Datei aktiv sind, werden jetzt möglicherweise Ausnahmen beim Lesen oder Schreiben in den DataStore angezeigt. Diese Probleme können behoben werden, indem Sie Ihren DataStore als Singleton verwalten. (Ib43f4, b/177691248)
  • Fehler beim Abbrechen des Anrufers behoben (I2c7b3)

Version 1.0.0-alpha06

13. Januar 2021

androidx.datastore:datastore-*:1.0.0-alpha06 wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

Neue Funktionen

  • RxJava-Wrapper für DataStore hinzugefügt Die datastore-rxjava2/3-Artefakte enthalten die Wrapper für die DataStore-Kern-APIs (RxDataStore, RxDataStoreBuilder und RxDataMigration). Die datastore-preferences-rxjava2/3-Artefakte enthalten einen Builder zum Erstellen eines Preferences DataStore.

API-Änderungen

  • Blenden Sie die CorruptionHandler-Benutzeroberfläche aus. Es gab keinen Grund dafür, dass es öffentlich sein sollte, da die DataStore-Fabrik nur einen ReplaceFileCorruptionHandler akzeptiert. (I0b3b3, b/176032264)
  • Die Methode preferencesKey<T>(name: String): Key<T> wurde entfernt und durch Methoden ersetzt, die für jeden unterstützten Typ spezifisch sind. preferencesKey<Int>("int") ist jetzt intPreferencesKey("int") (Ibcfac, b/170311106)

Fehlerkorrekturen

  • Fehler in der Dokumentation zur DataStoreFactory behoben, in der nicht erwähnt wurde, dass die Datastore-Datei im Unterverzeichnis „datastore/“ erstellt wird. (Ica222)

Version 1.0.0-alpha05

2. Dezember 2020

androidx.datastore:datastore-*:1.0.0-alpha05 wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Bessere Dokumentation und Ausnahmen für parallele Schreibvorgänge aus Datenspeichern hinzufügen (Ia98a2, b/173522155, b/173726702)
  • Es ist jetzt zulässig (aber nicht erforderlich), den an Serializer.writeTo() übergebenen OutputStream zu schließen. (I5c9bf, b/173037611)

Version 1.0.0-alpha04

17. November 2020

androidx.datastore:datastore-*:1.0.0-alpha04 wird veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Ein Verpackungsproblem wurde behoben, das zum folgenden Absturz im Preference Datastore 1.0.0-alpha03 führte: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

Version 1.0.0-alpha03

11. November 2020

androidx.datastore:datastore-*:1.0.0-alpha03 wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Neue Funktionen

  • In den Einstellungen werden jetzt Doppelwerte unterstützt. Das ist nützlich, wenn Sie eine höhere Genauigkeit als bei Gleitkommazahlen benötigen. (I5be8f, b/169471808)

API-Änderungen

  • Es wurde eine reine Kotlin-Abhängigkeit für den Datenspeicher erstellt, um eine schnellere Kompilierung zu ermöglichen. androidx.datastore:datastore-core enthält die reinen Kotlin-APIs und androidx.datastore:datastore die Android-abhängigen APIs (einschließlich des SharedPreferencesMigration- und des Context.createDataStore-Konstruktors). (I42d75, b/168512698)
  • Ziele für den Datenspeicher für Einstellungen aufteilen, um die Kotlin-Kompilierung zu beschleunigen (Ia3c19)
  • Für Serializer ist jetzt eine neue Eigenschaft für den Standardwert erforderlich, der verwendet wird, wenn keine Daten auf dem Laufwerk vorhanden sind. So lassen sich benutzerdefinierte Serializer einfacher implementieren, sodass Nutzer keine Sonderbehandlung für leere Eingabestreams vornehmen müssen (leere Eingabestreams werden nicht mit JSON geparst).

    • Außerdem wird jetzt geprüft, ob der für writeTo() bereitgestellte Ausgabestream geschlossen ist. Ist das der Fall, werden Ausnahmen geworfen (I16e29).
  • Der Konstruktor für SharedPreferencesView wurde intern. Ursprünglich war sie öffentlich, um Tests zu ermöglichen. Stattdessen sollten Sie für Tests eine SharedPreferencesMigration erstellen und diese verwenden. (I93891)

Fehlerkorrekturen

  • Der Parameter produceFile von DataStoreFactory und PreferenceDataStoreFactory ist jetzt der letzte Parameter in der Liste. Sie können also die abschließende Lambda-Syntax von Kotlin verwenden. (Ibe7f1, b/169425442)
  • Einhaltung der neuen expliziten API-Anforderungen für Kotlin (I5ae1e)

Bekannte Probleme

  • Der Einstellungsdatenspeicher stürzt mit java.lang.NoClassDefFoundError ab. (b/173036843)

Version 1.0.0-alpha02

14. Oktober 2020

androidx.datastore:datastore-core:1.0.0-alpha02 und androidx.datastore:datastore-preferences:1.0.0-alpha02 werden freigegeben. Version 1.0.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Schutz vor Mutationen in datastore-core hinzugefügt. Mutation beeinträchtigt die Nutzung des Datenspeichers für Nutzer, die den Datenspeicher mit Nicht-Proto-/Nicht-Einstellungen-Typen verwenden (I6aa84)
  • In „Preferences.kt“ wurde die Methode toString hinzugefügt, um den aktuellen Status leichter beheben zu können (I96006)
  • Es wurde eine Ausnahme hinzugefügt, um vor Missbrauch von DataStore.Preferences zu schützen (I1134d).
  • Ein Fehler wurde behoben, durch den die App beim Starten abgestürzt ist (I69237, b/168580258)

Version 1.0.0-alpha01

2. September 2020

androidx.datastore:datastore-core:1.0.0-alpha01 und androidx.datastore:datastore-preferences:1.0.0-alpha01 werden freigegeben. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

Jetpack DataStore ist eine neue und verbesserte Datenspeicherlösung, die SharedPreferences ersetzen soll. DataStore basiert auf Kotlin-Coroutinen und Flow und bietet zwei verschiedene Implementierungen:

  • Proto DataStore, mit dem Sie typisierte Objekte (unterstützt durch Protokoll-Buffers) speichern können
  • Datenspeicher für Einstellungen, in dem Schlüssel/Wert-Paare gespeichert werden

Die Daten werden asynchron, konsistent und transaktional gespeichert, wodurch die meisten Nachteile von SharedPreferences behoben werden.