DataStore
| Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
|---|---|---|---|---|
| 22. Oktober 2025 | 1.1.7 | - | 1.2.0-beta01 | - |
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 auch Android-kostenlose Abhängigkeiten zu beiden Implementierungen hinzufügen.
Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigte Implementierung hinzu:
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.7" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.7" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.7" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.7" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.7") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.7") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.7") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.7") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.7" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.7" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.7" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.7" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.7") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.7") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.7") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.7") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem stimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.2
Version 1.2.0-beta01
22. Oktober 2025
androidx.datastore:datastore-*:1.2.0-beta01 ist veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
API-Änderungen
- Machen Sie
CorruptionHandleröffentlich. (I9ac35, b/452406457) androidx.core.util.FunctioninGuavaDataStoreverwenden. (I71eae, b/448563999)- Fügen Sie eine Überladung für
GuavaDataStore.fromhinzu, die anstelle vonCoroutineContexteinen Executor akzeptiert. (I989fa, b/448563183)
Fehlerkorrekturen
- Beheben Sie
java.lang.UnsatisfiedLinkError, wenn SieDataStorein einer App verwenden, die mit R8 optimiert wurde, abergetDefaultProguardFile('android-proguard-optimize.txt')nicht verwendet. (I27d0d, b/434696293) - Es wurde ein Problem behoben, bei dem
GuavaDataStore-Vorgänge fälschlicherweise im aufrufenden Thread (z.B. dem Hauptthread) anstelle des angegebenen E/A-Dispatchers ausgeführt werden konnten. (Ic91ea,b/441801112)
Version 1.2.0-alpha02
7. Mai 2025
androidx.datastore:datastore-*:1.2.0-alpha02 ist veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
API-Änderungen
- Unterstützung für mehrere Prozesse in
GuavaDataStorehinzugefügt. (e0d608a). - Es wurde eine Hilfsmethode zum Erstellen eines
GuavaDataStoreaus einemDataStorehinzugefügt. (9af26f4) - Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
- Ersetzen Sie die vorhandene
datastore-Überladung durch eine Delegatenmethode, um einen DataStore zu initialisieren, der während des direkten Starts verwendet werden soll. (If71b9)
Version 1.2.0-alpha01
26. März 2025
androidx.datastore:datastore-*:1.2.0-alpha01 ist veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
- Das Modul
datastore-guavawurde hinzugefügt, um APIs für Java- und Guava-Nutzer überGuavaDataStorebereitzustellen.ListenableFuture(Iadd5e0) - Die Verwendung von
DataStoreimDirectBoot-Modus wird jetzt unterstützt. Wenn Sie einen Datenspeicher erstellen möchten, der im Direct Boot-Modus verwendet werden soll, muss er im geräteschutzgesicherten Speicher erstellt werden. Dies kann mit den folgenden neuenDataStore-APIs erreicht werden:createInDeviceProtectedStorage()inDataStoreFactoryunddeviceProtectedDataStore()inDataStoreDelegate. (Ib90e56)
API-Änderungen
- Wir haben
PreferencesFileSerializerhinzugefügt, das dieandroidx.datastore.core.Serializer-Schnittstelle für die Verwendung mitFileStorageimplementiert. (I4c71f3)
Fehlerkorrekturen
- Das
FileNotFoundException-Problem inOkioStoragebeim Starten wurde behoben, indem ein zweiter Versuch zum Lesen von Daten im Falle einer Race Condition hinzugefügt wurde. (I43b3fb, b/337870543) - Der Standardkonstruktor für
ReplaceFileCorruptionHandlerwurde für die allgemeine Codeverwendung definiert. (I795b05, b/358138957)
Version 1.1
Version 1.1.7
20. Mai 2025
androidx.datastore:datastore-*:1.1.7 ist veröffentlicht. Version 1.1.7 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit fehlenden Proguard-Regeln im Android-Artefakt von
datastore-preferences-corewurde behoben. (3f3f6e, b/413078297)
Version 1.1.6
7. Mai 2025
androidx.datastore:datastore-*:1.1.6 ist veröffentlicht. Version 1.1.6 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem die Gradle-Metadaten in Version
1.1.5beschädigt waren. Dieses Problem wurde durch einen Fehler in der neuen AGP KMP-Plugin-DSL verursacht, der verhinderte, dass Metadaten für alle Zielplattformen automatisch einbezogen wurden. Aufgrund des Fehlers sind einige DataStore-Android-Methoden in den Builds von Kunden nicht mehr sichtbar. Zur Behebung des Problems muss die ältereandroid-DSL inbuild.gradleanstelle vonandroidLibraryverwendet werden. (7801abf)
Version 1.1.5
23. April 2025
androidx.datastore:datastore-*:1.1.5 ist veröffentlicht. Version 1.1.5 enthält diese Commits.
Fehlerkorrekturen
- Um Probleme mit
CorruptionExceptioninPreferencesDataStorezu beheben, wurde der Standardspeicher vonOkioStorageinFileStoragegeändert. Diese Änderung wurde durch die Einführung einesPreferencesFileSerializerumgesetzt. b/346197747
Version 1.1.4
26. März 2025
androidx.datastore:datastore-*:1.1.4 ist veröffentlicht. Version 1.1.4 enthält diese Commits.
Fehlerkorrekturen
- Ersetzen Sie den Standardspeicher von
OkioStoragedurchFileStorage, um die Zuverlässigkeit zu verbessern, indem SieCorruptionExceptionreduzieren. (I71181, b/346197747)
Version 1.1.3
26. Februar 2025
androidx.datastore:datastore-*:1.1.3 ist veröffentlicht. Version 1.1.3 enthält diese Commits.
Fehlerkorrekturen
- Ein
FileNotFoundException-Problem inOkioStorage, das beim Start der App aufgetreten ist, wurde behoben. Wenn der erste Versuch, die Datei zu lesen, nicht erfolgreich ist, wird ein zweiter Versuch unternommen, falls ein Race Condition aufgetreten ist, weil die Datei während des ersten Lesevorgangs von einem anderen Prozess erstellt wurde. (I43b3f, b/337870543)
Version 1.1.2
15. Januar 2025
androidx.datastore:datastore-*:1.1.2 ist veröffentlicht. Version 1.1.2 enthält diese Commits.
Fehlerkorrekturen
- Die Warm-Read-Latenz (
DataStore.data.first()) wurde um das Achtfache verbessert. (22b8a40) ReplaceFileCorruptionHandlerkann aus KMP-Gemeinschaftscode erstellt werden. (7632e839)
Version 1.1.1
1. Mai 2024
androidx.datastore:datastore-*:1.1.1 ist veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Der Linux-Fehlalarm zum Fehler „Resource deadlock would occur“ (Ressourcen-Deadlock würde auftreten) wurde in einem Grenzfall behoben, in dem mehrere
DataStore-Instanzen versuchen, aus verschiedenen Prozessen zu schreiben, indem sie die Dateisperre zurückziehen.
Version 1.1.0
17. April 2024
androidx.datastore:datastore-*:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Weitere Informationen finden Sie in den Versionshinweisen zu den Alpha- und Betaversionen von 1.1.0. Einige der wichtigsten Neuerungen in Version 1.1.0 sind:
- DataStore unterstützt jetzt mehrere Prozesse, die auf dieselbe Datei zugreifen, und bietet Unterstützung für die Beobachtbarkeit über Prozesse hinweg.
- Mit der neuen Speicherschnittstelle können Sie anpassen, wie Ihre Datenmodelle gespeichert oder serialisiert werden.
- Sie können DataStore jetzt in Kotlin Multiplatform-Projekten verwenden.
Version 1.1.0-rc01
3. April 2024
androidx.datastore:datastore-*:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Die Leistungseinbußen wurden behoben, die auftraten, wenn
updateData-Aufrufe die Festplatten-Schreibvorgänge nicht optimierten, wenn die neuen Daten mit den alten Daten übereinstimmten (d64cfb5). - Es wurde eine Race-Bedingung behoben, bei der
MultiProcessDataStorewährend der Initialisierung möglicherweise Invalidierungen verpasst hat. ((b/326141553),(094c2dd))
Version 1.1.0-beta02
6. März 2024
androidx.datastore:datastore-*:1.1.0-beta02 ist veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Bei der Leistungsverbesserung für
DataStorewerden nur Updatebenachrichtigungen erfasst, wenn sie beobachtet werden. (b/267792241)- Diese Änderung kann
UncompletedCoroutinesErrorin Ihren Tests auslösen, wenn Sie die Coroutines-Testbibliothek verwenden. Achten Sie darauf, dass Sie beim Initialisieren vonDataStorein Ihren Tests dieTestScope.backgroundScopeübergeben, um dieses Problem zu vermeiden.
- Diese Änderung kann
- Das Problem wurde behoben, dass verschachtelte
updateData-Aufrufe auf derselben Instanz zu einem Deadlock führen. (b/241760537) - In
DataStorewird nicht mehrIOExceptionsausgegeben, wennSharedPreferenceswährend der Migration nicht gelöscht werden kann. (b/195553816) - Das Problem wurde behoben, bei dem das Umbenennen von Dateien während
updateDatain Nicht-Android-JVM-Umgebungen fehlgeschlagen ist. (b/203087070) - Das Problem, bei dem
CorruptionExceptionnach der Initialisierung vonDataStorenicht verarbeitet wurde, wurde behoben. (b/289582516)
Version 1.1.0-beta01
10. Januar 2024
androidx.datastore:datastore-*:1.1.0-beta01 wird ohne Änderungen seit 1.1.0-alpha07 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 ist 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
- Die Entfernung von
@ExperimentalMultiProcessDataStore-Annotationen wird in Version 1.1.0-alpha07 eingeführt. (I8e607)
Version 1.1.0-alpha06
1. November 2023
androidx.datastore:datastore-*:1.1.0-alpha06 ist veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
- Die Factory-Methode
createSingleProcessCoordinatorempfängt jetzt einen Dateipfad (String,java.io.Fileundokio.Path), um mitcreateMultiProcessCoordinatorkonsistent zu sein. (I211c8, b/305755935)
Version 1.1.0-alpha05
6. September 2023
androidx.datastore:datastore-*:1.1.0-alpha05 ist veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Der Datenspeicher
FileStorageist jetzt öffentlich verfügbar, sodass Clients benutzerdefinierte Parameter angeben können. (Icb985) - Der
OkioStorage-Konstruktor wurde so geändert, dass er einInterProcessCoordinatorakzeptiert, damit er unter Android mitMultiProcessCoordinatorverwendet werden kann. (Iecea3)
Fehlerkorrekturen
- Das Problem, dass
MultiProcessCoordinatormehrere Dateien im selben Verzeichnis nicht überwachen konnte, wurde behoben. - Es wurde ein Fehler behoben, der dazu führte, dass doppelte Dateien nicht erkannt wurden, wenn Dateipfade nicht normalisiert wurden.
- Falsche Werte korrigieren, die von
RxDataStore#isDisposedzurückgegeben werden. - Fehlende ProGuard-Konfiguration für das
datstore-preferences-core-Artefakt korrigieren.
Version 1.1.0-alpha04
5. April 2023
androidx.datastore:datastore-*:1.1.0-alpha04 ist veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Verbessern Sie die interne Implementierung, um eine Race Condition zu vermeiden, bei der der Datenfluss von
DataStorenach einem Update möglicherweise einen älteren Wert ausgibt.
Version 1.1.0-alpha03
24. März 2023
androidx.datastore:datastore-*:1.1.0-alpha03 ist veröffentlicht.
Fehlerkorrekturen
- Abhängigkeitsbeschränkungen wurden aus Maven-Artefakten 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 ist veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Note
Diese Version enthält ein wichtiges internes Refactoring, bei dem die Implementierungen für DataStore mit einem und mehreren Prozessen zusammengeführt werden. Achten Sie auf mögliche unbeabsichtigte Verhaltensänderungen, z.B. beim Timing von Updatebenachrichtigungen. Sie können die Problemverfolgungskomponente verwenden, um solche Änderungen zu melden.
Neue Funktionen
- Sie können
DataStorejetzt in KMM-Projekten verwenden. Nicht auf Android ausgerichtete DataStore-Ziele sind weiterhin experimentell. Wir haben uns jedoch entschieden, Versionen zusammenzuführen, um Entwicklern das Ausprobieren zu erleichtern. - Funktionen für mehrere Prozesse werden von
androidx.datastore.multiprocessnachandroidx.datastore.coreverschoben. - Fügen Sie in
androidx.datastore.core.MultiProcessDataStoreFactoryeine neue Factory-Methode hinzu, um DataStore-Instanzen mitStorage-Objekten für Dateivorgänge zu erstellen. - Eine neue Schnittstelle
InterProcessCoordinatorwurde hinzugefügt, die die Kommunikation zwischen mehreren DataStore-Instanzen über Prozesse hinweg ermöglicht. Die Multi-Process-Implementierung vonInterProcessCoordinatorist nur auf Android-Geräten verfügbar.
API-Änderungen
InterProcessCoordinatorzuStorageConnectionin der datastore-core-Schnittstelle hinzufügen (I555bb)- Ändern Sie APIs in datastore-core
MultiProcessDataStoreFactory, um Storage zu verwenden. (Iac02f) - Öffentliche APIs in „datastore-multiprocess“ in „datastore-core“ verschieben (I76d7c)
PreferencesSerializeraus datastore-preferences-core verfügbar gemacht (I4b788)- Annotation
@JvmDefaultWithCompatibilitywurde hinzugefügt. (I8f206)
Version 1.1.0-alpha01
9. November 2022
androidx.datastore:datastore-*:1.1.0-alpha01 ist 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 über Prozesse hinweg gewährleistet ist. Fügen SieMultiProcessDataStoreFactory#createhinzu, um solcheDataStore-Instanzen zu erstellen. - Neue Speicherschnittstelle, mit der der zugrunde liegende Speichermechanismus für
Datastoreausgetauscht werden kann. Implementierungen für java.io und okio sind verfügbar.DataStore-Factories haben neue Methoden, die dieses Storage-Objekt akzeptieren.
API-Änderungen
- Ändern Sie APIs in datastore-core
MultiProcessDataStoreFactory, um Storage zu verwenden. (Iac02f) - Öffentliche APIs in „datastore-multiprocess“ in „datastore-core“ verschieben (I76d7c)
PreferencesSerializeraus datastore-preferences-core verfügbar gemacht (I4b788)
Version 1.0.0
Version 1.0.0
4. August 2021
androidx.datastore:datastore-*:1.0.0 ist veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
Jetpack DataStore ist eine Datenspeicherlösung, mit der Sie Schlüssel/Wert-Paare oder typisierte Objekte mit Protocol 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 ist veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Stellen Sie klar, dass
SharedPreferencesMigrationnicht ausgeführt wird, wenn keine Schlüssel vorhanden sind. (Icfa32, b/192824325) - Ein Fehler wurde behoben, bei dem für
SharedPreferencesMigration, das mitMIGRATE_ALL_KEYSerstellt wurde, eine Ausnahme ausgelöst wurde, 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 ist veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem eine .java-Datei versehentlich in die endgültige JAR-Datei aufgenommen wurde (I65d96, b/188985637).
Version 1.0.0-beta02
16. Juni 2021
androidx.datastore:datastore-*:1.0.0-beta02 ist veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei
ClassVerificationFailurebeheben (b/187450483)
Version 1.0.0-beta01
21. April 2021
androidx.datastore:datastore-*:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
- JVM-Überladungen für reine Kotlin-Methoden entfernen (I2adc7)
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem Datenspeicher-Delegaten zu Kontextlecks führen konnten (Ie96fc, b/184415662).
Version 1.0.0-alpha08
10. März 2021
androidx.datastore:datastore-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
- Sie können jetzt eine Migration, die vom Kontext abhängt, zu Ihrem
dataStore- undpreferencesDataStore-Property-Delegate hinzufügen. (I4ef69, b/173726702) - Es wurden Hilfsfunktionen hinzugefügt, mit denen der Name der Datei abgerufen werden kann, wenn Sie den Datastore-Delegaten oder context.createDataStore nicht mehr verwenden (I60f9a).
- Die Serializer-Funktionen „writeTo“ und „readFrom“ werden jetzt angehalten. Wenn Sie einen Serializer implementiert haben, müssen Sie Ihre Funktionen in suspend-Funktionen umwandeln. (I1e58e)
- Es wurden Property-Delegaten 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 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
Die Erweiterungsfunktion
Context.createDataStorewurde entfernt und durch den globalDataStore-Property-Delegate ersetzt. Rufen Sie „globalDataStore“ einmal auf der obersten Ebene in Ihrer Kotlin-Datei auf. Beispiel:val Context.myDataStore by dataStore(...)Fügen Sie dies 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 für DataStore. (Idccdb, b/177691248)
Wenn Sie EncryptedSharedPreferences (oder SharedPreferences für den Direktboot) zu DataStore migrieren möchten, können Sie das 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 es mehrere aktive DataStores für dieselbe Datei gibt. Wenn Sie Ihren DataStore nicht als Singleton verwaltet oder nicht dafür gesorgt haben, dass nicht zwei Instanzen von DataStore gleichzeitig für eine Datei aktiv sind, werden möglicherweise Ausnahmen beim Lesen oder Schreiben in DataStore angezeigt. Diese können behoben werden, indem Sie Ihren DataStore als Singleton verwalten. (Ib43f4, b/177691248)
- Das Verhalten bei der Stornierung wurde korrigiert, wenn der Anruferbereich storniert wird. (I2c7b3)
Version 1.0.0-alpha06
13. Januar 2021
androidx.datastore:datastore-*:1.0.0-alpha06 ist 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,RxDataStoreBuilderundRxDataMigration). Diedatastore-preferences-rxjava2/3-Artefakte enthalten einen Builder zum Erstellen eines Preferences DataStore.
API-Änderungen
- Die CorruptionHandler-Schnittstelle ausblenden. Es gab keinen Grund, warum sie öffentlich sein sollte, da die DataStore-Factory 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 beispielsweiseintPreferencesKey("int")(Ibcfac, b/170311106).
Fehlerkorrekturen
- Die Dokumentation zu DataStoreFactory wurde korrigiert. Es wurde bisher nicht erwähnt, dass die Datenspeicherdatei im Unterverzeichnis „datastore/“ erstellt wird. (Ica222)
Version 1.0.0-alpha05
2. Dezember 2020
androidx.datastore:datastore-*:1.0.0-alpha05 ist veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Bessere Dokumentation und Ausnahmen für gleichzeitige Schreibvorgänge aus Datenspeichern hinzufügen. (Ia98a2, b/173522155, b/173726702)
- Der an
Serializer.writeTo()übergebene OutputStream kann jetzt geschlossen werden (ist aber nicht erforderlich). (I5c9bf, b/173037611)
Version 1.0.0-alpha04
17. November 2020
androidx.datastore:datastore-*:1.0.0-alpha04 ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Verpackungsproblem behoben, das zum folgenden Absturz im Preference Datastore geführt hat:
1.0.0-alpha03:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- Der Absturz wurde ursprünglich hier gemeldet: b/173036843
- (I4712d, b/173036843)
Version 1.0.0-alpha03
11. November 2020
androidx.datastore:datastore-*:1.0.0-alpha03 ist veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Neue Funktionen
- Einstellungen unterstützen jetzt Double-Werte. Das ist nützlich, wenn Sie eine höhere Genauigkeit als bei Floats benötigen. (I5be8f, b/169471808)
API-Änderungen
- Es wurde eine reine Kotlin-Abhängigkeit für DataStore erstellt, um eine schnellere Kompilierung zu ermöglichen.
androidx.datastore:datastore-coreenthält die reinen Kotlin-APIs undandroidx.datastore:datastoredie APIs, die von Android abhängen, einschließlich des KonstruktorsSharedPreferencesMigrationundContext.createDataStore. (I42d75, b/168512698) - Aufteilen von Zielen für den Preferences-Datenspeicher für eine schnellere Kotlin-Kompilierung (Ia3c19)
Serialisierer benötigen jetzt eine neue Eigenschaft für den Standardwert, der verwendet wird, wenn keine Daten auf der Festplatte vorhanden sind. Dadurch wird die Implementierung benutzerdefinierter Serialisierungsprogramme vereinfacht, da 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 Ausgabestream, der für writeTo() bereitgestellt wird, nicht geschlossen ist. Wenn er geschlossen ist, werden Ausnahmen ausgegeben (I16e29).
Making the constructor for SharedPreferencesView internal. Sie war ursprünglich öffentlich, um Tests zu ermöglichen. Stattdessen sollte ein SharedPreferencesMigration-Objekt erstellt und damit getestet werden. (I93891)
Fehlerkorrekturen
- Der Parameter
produceFilefürDataStoreFactoryundPreferenceDataStoreFactoryist jetzt der letzte Parameter in der Liste. So können Sie die Kotlin-Syntax für nachgestellte Lambdas verwenden. (Ibe7f1, b/169425442) - Gemäß den neuen expliziten API-Anforderungen für Kotlin (I5ae1e)
Bekannte Probleme
- Der Preference Datastore stürzt mit
java.lang.NoClassDefFoundErrorab. (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 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Sicherheitsmaßnahme gegen Mutationen in „datastore-core“ hinzugefügt. Durch die Mutation wird die Datenspeichernutzung für Nutzer, die den Datenspeicher mit Nicht-Proto-/Nicht-Einstellungen-Typen verwenden, unterbrochen (I6aa84).
- Die Methode
toStringwurde zu Preferences.kt hinzugefügt, um den aktuellen Status einfacher debuggen zu können (I96006). - Es wurde eine Ausnahme hinzugefügt, um Missbrauch von
DataStore.Preferences(I1134d) zu verhindern. - Ein Fehler wurde behoben, der dazu führte, dass die App beim Start abstürzte (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 sind veröffentlicht. 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 (basierend auf Protokollpuffern) speichern können
- Preferences DataStore, in dem Schlüssel/Wert-Paare gespeichert werden
Daten werden asynchron, konsistent und transaktional gespeichert, wodurch die meisten Nachteile von SharedPreferences vermieden werden.