DataStore
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 21 Ekim 2026 | 1.3.0 | - | - | - |
Bağımlılıkları bildirme
DataStore'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu sayfasını okuyun.
DataStore, serileştirme için farklı seçenekler sunar. Bunlardan birini seçin. Ayrıca her iki uygulamaya da Android içermeyen bağımlılıklar ekleyebilirsiniz.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan uygulamanın bağımlılıklarını ekleyin:
Preferences DataStore
Gradle dosyanızın bağımlılıklar bölümüne aşağıdaki satırları ekleyin:
Groovy
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation "androidx.datastore:datastore-preferences:1.3.0" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-preferences-core:1.3.0" }
Kotlin
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation("androidx.datastore:datastore-preferences:1.3.0") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-preferences-core:1.3.0") }
İsteğe bağlı RxJava desteği eklemek için aşağıdaki bağımlılıkları ekleyin:
Groovy
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.3.0" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.3.0" }
Kotlin
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.3.0") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.3.0") }
DataStore
Gradle dosyanızın bağımlılıklar bölümüne aşağıdaki satırları ekleyin:
Groovy
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation "androidx.datastore:datastore:1.3.0" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-core:1.3.0" }
Kotlin
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation("androidx.datastore:datastore:1.3.0") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-core:1.3.0") }
RxJava desteği için aşağıdaki isteğe bağlı bağımlılıkları ekleyin:
Groovy
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.3.0" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.3.0" }
Kotlin
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.3.0") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.3.0") }
İçeriği serileştirmek için Protocol Buffers veya JSON serileştirme bağımlılıklarını ekleyin.
JSON serileştirme
JSON serileştirmeyi kullanmak için Gradle dosyanıza aşağıdakileri ekleyin:
Groovy
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0" }
Kotlin
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") }
Protobuf serileştirme
Protobuf serileştirmeyi kullanmak için Gradle dosyanıza aşağıdakileri ekleyin:
Groovy
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation "com.google.protobuf:protobuf-kotlin-lite:4.32.1" } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
Kotlin
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation("com.google.protobuf:protobuf-kotlin-lite:4.32.1") } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir sorun için oy verebilirsiniz.
Daha fazla bilgi için Issue Tracker belgelerine bakın.
Sürüm 1.3
Sürüm 1.3.0
21 Ekim 2026
androidx.datastore:datastore-*:1.3.0 yayınlandı. 1.3.0 sürümü bu commit'leri içerir.
1.2.0 sürümünden sonra yapılan önemli değişiklikler:
Yeni Özellikler
Web depolama desteği: KMP web depolama seçenekleri kullanıma sunuldu. Bu sayede web hedeflerinde esnek veri kalıcılığı sağlanır:
sessionStorage(WebSessionStorage): Tek bir tarayıcı sekmesinde geçici veri kalıcılığına izin verir.localStorage(WebLocalStorage): Sekmeler arası etkinlik bildirimleri ve senkronizasyon ile kalıcı depolama alanını etkinleştirir.- Origin Private File System (
WebOpfsStorage): OPFS aracılığıyla dosya sistemi desteği sağlar. Eşzamansız dosya G/Ç ve sekmeler arası bildirimler içerir.
Şifreleme Desteği (
datastore-tink): Tink kitaplığını kullanarak şifreleme desteği sağlayan yeniandroidx.datastore:datastore-tinkyapısı eklendi. İlişkili Verilerle Kimliği Doğrulanmış Şifreleme (AEAD) kullanarak verileri şifrelemek ve şifrelerini çözmek içinAeadSerializer'i kullanıma sunar.İzleme desteği: Android hedef platformunda
androidx.tracingiçin destek eklendi.DataStore.BuilderAPI:DataStoreFactoryiçin modern ve ölçeklenebilir bir alternatif olarakDataStore.Builder<T>kullanıma sunuldu. Daha iyi yapılandırılmış eşzamanlılık içinCoroutineScopeyerineCoroutineContextgerekir.Temel Profiller: Başlatma performansını artırmak için
datastoreuygulamasına temel profiller eklendi.
API Değişiklikleri
DataStore.Builder,ReThrowCorruptionHandlerveInterProcessCoordinatorAPI'leripublicsürümüne güncellendi.
Hata Düzeltmeleri ve İyileştirmeler
Ayrıştırma hataları sırasında hata ayıklama özelliğini iyileştirmek için
CorruptionExceptionmesajlarına temel dosya yolu bilgileri eklendi.Güncellemeler için katı bir ilk giren ilk çıkar (FIFO) sıralaması uygulayarak
GuavaDataStoreuygulamasındaki olası veri kaybı düzeltildi.
Sürüm 1.3.0-rc01
12 Ekim 2026
androidx.datastore:datastore-*:1.3.0-rc01 yayınlandı. 1.3.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
EdgeToEdge#enable()(Ibff3e) yerineWindowCompat#enableEdgeToEdge(Window)kullanın
Hata Düzeltmeleri
androidx.lifecycle:lifecycle-runtimebağımlılığı 2.10.0 olarak güncellendi. Paketlenmiş yaşam döngüsü çalışma zamanı lint kontrollerinin AGP 9.5.0-alpha04 veya sonraki sürümlerle çalışması için bu sürüm gereklidir. (I99bfd, b/556807521)
Sürüm 1.3.0-alpha11
9 Eylül 2026
androidx.datastore:datastore-*:1.3.0-alpha11 yayınlandı. 1.3.0-alpha11 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Temel dosya yolu,
DataStoretercih ayrıştırma hataları sırasında oluşturulanCorruptionExceptionmesajlarına dahil edilmez. (Ia9e8f)
Sürüm 1.3.0-alpha10
29 Temmuz 2026
androidx.datastore:datastore-*:1.3.0-alpha10 yayınlandı. 1.3.0-alpha10 sürümü bu kayıtları içerir.
API Değişiklikleri
GeneralSecurityException in AeadSerializer is now wrapped in CorruptionException for better CorruptionHandler integration.(I26e56, b/514941919)
Sürüm 1.3.0-alpha09
6 Mayıs 2026
androidx.datastore:datastore-*:1.3.0-alpha09 yayınlandı. 1.3.0-alpha09 sürümü bu kayıtları içerir.
API Değişiklikleri
ReThrowCorruptionHandleradlı öğeyi herkese açık yapın. (I137bb, b/427722902)- İzleme yaşam döngüsünü sistem izleme ile tutarlı hale getirin. (Ib391b)
Sürüm 1.3.0-alpha08
22 Nisan 2026
androidx.datastore:datastore-*:1.3.0-alpha08 yayınlandı. 1.3.0-alpha08 sürümü bu kayıtları içerir.
Yeni özellikler
- Web platformları için DataStore'da Origin Private File System (OPFS) desteği eklendi. Bu uygulama
WebOpfsStorage'yı kullanıma sunar ve eşzamansız dosya G/Ç,BroadcastChannelAPI'yi kullanan sekmeler arası bildirimler ve özel yazma erişimi için yerelWeb Locks APIaracılığıyla dağıtılmış kilitleme için mimari destek içerir. Id7f5807 b/316376114
API Değişiklikleri
- Web ortamlarında açık depolama alanı türü yönetimi için
WebLocalStorageveWebSessionStorageAPI'leri kullanıma sunuldu. I35fa259b b/316376114
1.3.0-alpha07 sürümü
11 Mart 2026
androidx.datastore:datastore-*:1.3.0-alpha07 yayınlandı. 1.3.0-alpha07 sürümü bu kayıtları içerir.
Yeni özellikler
- Şifreleme Desteği: Tink kitaplığını kullanarak veri deponuzun şifrelenmesini destekleyen yeni
androidx.datastore:datastore-tinkyapısı kullanıma sunuldu. Bu modülde,Serializer<T>'yi uygulayan ve verileri şifrelemek ve şifresini çözmek için Tink'in İlişkili Verilerle Kimliği Doğrulanmış Şifreleme (AEAD) özelliğini kullanan yeni bir sarmalayıcı sınıf olanAeadSerializertanıtılmaktadır.AeadSerializer, JVM ve Android hedef platformlarında kullanılabilir. - Yeni
DataStoreBuilder API:DataStoreFactoryiçin ölçeklenebilir bir alternatif olarakDataStore.Builder<T>kullanıma sunuldu. Bu yeni API sayesinde kullanıcılar artıksetCorruptionHandleraracılığıyla kendi bozulma mantıklarını sağlayabilir. AyrıcaBuilderAPI'si,DataStore'ninCoroutineScopeyerineCoroutineContextkullanılarak başlatılmasını gerektirir. Bu, yapılandırılmış eşzamanlılık için bir iyileştirmedir. Çünkü arayanların,DataStore'yi arayanın kapsamının yaşam döngüsünü uygunsuz bir şekilde yönetmeye veya bu yaşam döngüsüne bağlı olmaya zorlamadan yürütme davranışını (belirli Dispatcher'lar gibi) tanımlamasına olanak tanır.Not: Tüm kullanıcıların
DataStoreFactoryAPI'lerinden yeniDataStore.BuilderAPI'lerine geçiş yapmasını öneririz. API,CoroutineScopeyerineCoroutineContextgerektirerek daha iyi yapılandırılmış eşzamanlılığı zorunlu kılar. Bu sayede DataStore işlemleri, kısa süreli kullanıcı arayüzü yaşam döngülerine (ör.viewModelScope) bağlı olmaz. Böylece erken iptal ve olası veri kaybı önlenir.Uyarı: Oluşturucu'ya sağlanan
CoroutineContextöğesinin birJobiçerdiğinden ve uygulama kapsamlı olduğundan emin olun. Bağlam iptal edilirseDataStoreadlı aracın dahili işlemleri zamanından önce sonlandırılır.
API Değişiklikleri
DataStoreşifreleme desteği için yeniandroidx.datastore:datastore-tinkyapısı kullanıma sunuldu. (Ic106d, b/167697691)Tink'i kullanarak verileri şifrelemek için aşağıdaki adımları uygulayın:
Tink API'lerini kullanarak anahtar oluşturma:
val keysetHandle = AndroidKeysetManager.Builder() .withSharedPref(applicationContext, "keyset", "keyset_prefs") .withKeyTemplate(KeyTemplate.createFrom(PredefinedAeadParameters.AES256_GCM)) .withMasterKeyUri("android-keystore://master_key") .build() .keysetHandleMevcut bir serileştiriciyi sarmalayan bir
AeadSerializeroluşturun:val aeadSerializer = AeadSerializer( // Use tink APIs to create an Aead object to encrypt/decrypt data. aead = keysetHandle.getPrimitive( RegistryConfiguration.get(), Aead::class.java, ), // AeadSerializer can wrap an existing serializer. wrappedSerializer = ExistingSerializer, // Specify a unique name to prevent a ciphertext swapping attack. associatedData = "settings.json".encodeToByteArray(), )Veri deposu örneğini oluştururken serileştiriciniz yerine bu
aeadSerializeröğesini kullanın:val dataStore = dataStore( fileName = "settings.json", serializer = aeadSerializer, scope = scope, )
DataStoreFactoryiçin modern ve ölçeklenebilir bir alternatif olarakDataStore.Builder<T>kullanıma sunuldu. (I3b110, b/267785821, b/400507108, b/368385681, b/427722902, b/370838564, b/167697691)
Sürüm 1.3.0-alpha06
25 Şubat 2026
androidx.datastore:datastore-*:1.3.0-alpha06 yayınlandı. 1.3.0-alpha06 sürümü bu commit'leri içerir.
Yeni özellikler
DataStoreartık Android hedef platformundaandroidx.tracingözelliğini destekliyor.DataStoreFactory.createWithTracing()işlevine birandroidx.tracing.Tracerörneği sağlayarak izleme özellikli birDataStoreoluşturabilirsiniz. (I71bc2, b/427722902)
Sürüm 1.3.0-alpha05
28 Ocak 2026
androidx.datastore:datastore-*:1.3.0-alpha05 yayınlandı. 1.3.0-alpha05 sürümü bu kayıtları içerir.
Yeni özellikler
- Temel profiller veri deposuna eklendi. (3916245,b/469127532).
localStoragearacılığıyla DataStore'da WASM/JS desteğini uygulayın. Bu, sekmeler arası etkinlik bildirimlerini ve senkronizasyonu etkinleştirerek mevcutsessionStorageuygulamasına göre belirgin bir avantaj sağlar. (I67246, b/441511612)
Sürüm 1.3.0-alpha04
14 Ocak 2026
androidx.datastore:datastore-*:1.3.0-alpha04 yayınlandı. 1.3.0-alpha04 sürümü bu kayıtları içerir.
API Değişiklikleri
- Tercihler
DataStoreverilerini güncellemek için kullanılabilecek bir yardımcı kopyalama işlevi eklendi. (I70a18, b/467120382)
Hata Düzeltmeleri
- Web için UTF-8 dize işleme yerine Base64 kodlaması kullanılarak, depolama sırasında ikili verilerin hatalı biçimlendirilmesine neden olan bir sorun çözüldü. (Ie3178, b/473790107)
Sürüm 1.3.0-alpha03
17 Aralık 2025
androidx.datastore:datastore-*:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Geçici veri deposu dosyasının yeniden adlandırılamaması sorunu düzeltildi. (I94f89, b/203087070)
- Eşzamanlı okuma/yazma sırasında güncellemelerin silinmesini önlemek için sorun düzeltildi.
DataStore.dataüzerinde yeni bir toplayıcı ile eşzamanlı birupdateDataçağrısı arasında yarışma durumu oluşabilir ve bu durum, toplayıcının yeni değeri kaçırmasına neden olabilir. (I6a427, b/431787506)
Sürüm 1.3.0-alpha02
3 Aralık 2025
androidx.datastore:datastore-*:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
androidx.datastorehedefine js() hedefi ekleyin. (I1f62b, b/441511612)GuavaDataStoregüncellemelerinde FIFO sıralamasını zorunlu kılın. (I6fd00,b/451491257)
Sürüm 1.3.0-alpha01
19 Kasım 2025
androidx.datastore:datastore-*:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü bu commit'leri içerir.
Yeni özellikler
sessionStorageAPI'sini kullanarakDataStoreiçin KMP Web desteği eklendi. Bu özellik,DataStoreuygulamasının verileri tek bir tarayıcı sekmesinde geçici olarak saklamasına olanak tanır. (I60fad, b/316376114)
Sürüm 1.2
Sürüm 1.2.1
11 Mart 2026
androidx.datastore:datastore-*:1.2.1 yayınlandı. 1.2.1 sürümü bu commit'leri içerir.
Değişiklik yok
- Bu sürümde, altyapıyla ilgili küçük hata düzeltmeleri yapılmıştır. 1.2.0 sürümünden itibaren DataStore API veya davranış değişiklikleri içermez.
Sürüm 1.2.0
19 Kasım 2025
androidx.datastore:datastore-*:1.2.0 yayınlandı. 1.2.0 sürümü bu commit'leri içerir.
1.1.0 sürümünden bu yana yapılan önemli değişiklikler
Java/Guava desteği:
GuavaDataStorearacılığıyla Java ve GuavaListenableFuturekullanıcılarına uygun API'leri kullanıma sunmak için yenidatastore-guavamodülü eklendi.GuavaDataStoreiçinde çoklu işlem desteği eklendi.GuavaDataStore.fromiçinCoroutineContextyerine JavaExecutorkabul eden veandroidx.core.util.Functionkullanan bir aşırı yükleme eklendi.
Doğrudan Başlatma Desteği:
- Doğrudan başlatma modu sırasında DataStore kullanımı artık desteklenmektedir.
DataStoreFactoryiçindecreateInDeviceProtectedStorage()veDataStoreDelegateiçindedeviceProtectedDataStore()gibi yeni API'ler, DataStore'un cihaz korumalı depolama alanında oluşturulmasına olanak tanır.
Depolama Alanı ve API Değişiklikleri:
FileStorageile kullanılmak üzereandroidx.datastore.core.SerializeruygulayanPreferencesFileSerializereklendi.- Ortak kod kullanımı için
ReplaceFileCorruptionHandleriçin varsayılan oluşturucu tanımlandı.
Hata düzeltmeleri:
- R8 ile optimize edilmiş ancak standart ProGuard dosyasını kullanmayan bir uygulamada
DataStorekullanılırken oluşanjava.lang.UnsatisfiedLinkErrorsorunu düzeltildi. GuavaDataStoreişlemlerinin, belirtilen G/Ç dağıtıcısı yerine çağıran iş parçacığında (ör. ana iş parçacığı) yanlış şekilde çalıştırılmasına neden olan sorun düzeltildi.- Yarışma durumu olması halinde verileri okumak için ikinci bir deneme eklenerek başlangıçta
OkioStorageiçindekiFileNotFoundExceptionsorunu çözüldü.
Sürüm 1.2.0-rc01
5 Kasım 2025
androidx.datastore:datastore-*:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.
Sürüm 1.2.0-beta01
22 Ekim 2025
androidx.datastore:datastore-*:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
CorruptionHandleradlı öğeyi herkese açık yapın. (I9ac35, b/452406457)GuavaDataStoreuygulamasındaandroidx.core.util.Functionhesabını kullanın. (I71eae, b/448563999)GuavaDataStore.fromiçinCoroutineContextyerine Executor alan bir aşırı yükleme ekleyin. (I989fa, b/448563183)
Hata Düzeltmeleri
- R8 ile optimize edilmiş ancak
getDefaultProguardFile('android-proguard-optimize.txt')kullanmayan bir uygulamadaDataStorekullanılırken oluşanjava.lang.UnsatisfiedLinkErrorhatası düzeltildi. (I27d0d, b/434696293) GuavaDataStoreişlemlerinin, belirtilen G/Ç dağıtıcısı yerine yanlışlıkla çağrı iş parçacığında (ör. ana iş parçacığı) çalıştırılmasına neden olan sorun düzeltildi. (Ic91ea,b/441801112)
Sürüm 1.2.0-alpha02
7 Mayıs 2025
androidx.datastore:datastore-*:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü bu kayıtları içerir.
API Değişiklikleri
GuavaDataStoresürümünde çoklu işlem desteği eklendi. (e0d608a).DataStoreöğesindenGuavaDataStoreoluşturmak için yardımcı bir yöntem eklendi. (9af26f4)- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
- Mevcut
datastoreaşırı yüklemesini, doğrudan başlatma sırasında kullanılacak bir DataStore'u ilk kullanıma hazırlamak için bir temsilci yöntemiyle değiştirin. (If71b9)
Sürüm 1.2.0-alpha01
26 Mart 2025
androidx.datastore:datastore-*:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü bu kayıtları içerir.
Yeni özellikler
- Java ve Guava
ListenableFuturekullanıcılarına uygun API'leriGuavaDataStorearacılığıyla kullanıma sunmak içindatastore-guavamodülü eklendi. (Iadd5e0) DirectBootmodundaDataStorekullanımı artık destekleniyor. Doğrudan başlatma modunda kullanılacak bir veri deposu oluşturmak için bu veri deposunun cihaz korumalı depolama alanında oluşturulması gerekir. Bu işlem, şu yeniDataStoreAPI'leri ile yapılabilir:DataStoreFactoryiçindecreateInDeviceProtectedStorage()veDataStoreDelegateiçindedeviceProtectedDataStore(). (Ib90e56)
API Değişiklikleri
FileStorageile kullanılmak üzereandroidx.datastore.core.Serializerarayüzünü uygulayanPreferencesFileSerializereklendi. (I4c71f3)
Hata Düzeltmeleri
- Başlangıçta
OkioStorageuygulamasındakiFileNotFoundExceptionsorunu, yarışma durumu olması halinde verileri okumak için ikinci bir deneme eklenerek çözüldü. (I43b3fb, b/337870543) - Ortak kod kullanımı için
ReplaceFileCorruptionHandleröğesinin varsayılan kurucusu tanımlandı. (I795b05, b/358138957)
Sürüm 1.1
Sürüm 1.1.7
20 Mayıs 2025
androidx.datastore:datastore-*:1.1.7 yayınlandı. 1.1.7 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
datastore-preferences-coreürününün Android yapısında eksik Proguard kuralları sorunu düzeltildi. (3f3f6e, b/413078297)
Sürüm 1.1.6
7 Mayıs 2025
androidx.datastore:datastore-*:1.1.6 yayınlandı. 1.1.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
1.1.5sürümünde Gradle meta verilerinin bozuk olmasıyla ilgili sorun çözüldü. Bu sorun, yeni AGP KMP eklentisi DSL'deki bir hatadan kaynaklanıyordu. Bu hata, tüm hedef platformların meta verilerinin otomatik olarak dahil edilmesini engelliyordu. Bu hata, bazı DataStore Android yöntemlerinin artık istemcilerin derlemelerinde görünmemesine neden oluyor. Düzeltme,androidLibraryyerinebuild.gradleiçinde eskiandroidDSL'nin kullanılmasını içerir. (7801abf)
Sürüm 1.1.5
23 Nisan 2025
androidx.datastore:datastore-*:1.1.5 yayınlandı. 1.1.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
PreferencesDataStoreuygulamasındakiCorruptionExceptionsorunlarını azaltmak için varsayılan depolama alanıOkioStorageyerineFileStorageolarak değiştirildi. Bu değişiklik,PreferencesFileSerializerile uygulanmıştır. b/346197747
Sürüm 1.1.4
26 Mart 2025
androidx.datastore:datastore-*:1.1.4 yayınlandı. 1.1.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
CorruptionExceptiondeğerini azaltarak güvenilirliği artırmak için varsayılan depolama alanınıOkioStorageyerineFileStorageolarak değiştirin. (I71181, b/346197747)
Sürüm 1.1.3
26 Şubat 2025
androidx.datastore:datastore-*:1.1.3 yayınlandı. 1.1.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Uygulama başlatılırken
OkioStoragesürümünde karşılaşılanFileNotFoundExceptionsorunu çözüldü. İlk dosya okuma denemesi başarısız olursa ilk okuma sırasında dosyanın farklı bir işlem tarafından oluşturulması nedeniyle bir yarışma durumu oluşmuşsa ikinci bir deneme yapılır. (I43b3f, b/337870543)
Sürüm 1.1.2
15 Ocak 2025
androidx.datastore:datastore-*:1.1.2 yayınlandı. 1.1.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Sıcak okuma gecikmesini (
DataStore.data.first()) 8 kat iyileştirin. (22b8a40) ReplaceFileCorruptionHandler, KMP ortak kodundan oluşturulabilir. (7632e839)
Sürüm 1.1.1
1 Mayıs 2024
androidx.datastore:datastore-*:1.1.1 yayınlandı. 1.1.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Birden fazla
DataStoreörneğinin farklı işlemlerden yazmaya çalıştığı uç bir durumda, dosya kilidini kaldırarak "Kaynak kilitlenmesi meydana gelebilir" hatasıyla ilgili Linux yanlış alarmı azaltıldı.
Sürüm 1.1.0
17 Nisan 2024
androidx.datastore:datastore-*:1.1.0 yayınlandı. 1.1.0 sürümü bu commit'leri içerir.
1.0.0 sürümünden sonra yapılan önemli değişiklikler
Daha fazla bilgi için lütfen 1.1.0'ın alfa ve beta sürümlerinin sürüm notlarını inceleyin. 1.1.0'daki önemli güncellemelerden bazıları şunlardır:
- DataStore artık aynı dosyaya erişen birden fazla işlemi destekliyor ve işlemler arasında gözlemlenebilirlik desteği sunuyor.
- Yeni Storage arayüzü, veri modellerinizi nasıl depolayacağınızı veya serileştireceğinizi özelleştirmenize olanak tanır.
- Artık Kotlin Multiplatform projelerinde DataStore'u kullanabilirsiniz.
Sürüm 1.1.0-rc01
3 Nisan 2024
androidx.datastore:datastore-*:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yeni veriler eski verilerle aynıysa
updateDataçağrılarının disk yazma işlemlerinde optimizasyon yapmadığı performans düşüşü düzeltildi (d64cfb5). - Başlatma sırasında
MultiProcessDataStore'nin geçersiz kılma işlemlerini kaçırmasına neden olabilen bir yarışma durumu düzeltildi. ((b/326141553),(094c2dd))
Sürüm 1.1.0-beta02
6 Mart 2024
androidx.datastore:datastore-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
DataStoreile ilgili performans iyileştirmesi, yalnızca gözlemlendiğinde güncelleme bildirimlerini toplar. (b/267792241)- Coroutines test kitaplığını kullanıyorsanız bu değişikliğin testlerinizde
UncompletedCoroutinesErrorhatasını tetikleyebileceğini unutmayın. Bu sorunu önlemek için testlerinizdeDataStorebaşlatılırkenTestScope.backgroundScopedeğerini ilettiğinizden emin olun.
- Coroutines test kitaplığını kullanıyorsanız bu değişikliğin testlerinizde
- Aynı örnekte iç içe yerleştirilmiş
updateDataçağrılarının kilitlenmesine neden olan sorun düzeltildi. (b/241760537) - Taşıma sırasında
SharedPreferencessilinemezseDataStoreartıkIOExceptionshatası vermeyecek. (b/195553816) - Android dışı JVM ortamlarında
updateDatasırasında dosya yeniden adlandırma işleminin başarısız olmasına neden olan sorun düzeltildi. (b/203087070) DataStorebaşlatıldıktan sonraCorruptionExceptionöğesinin işlenmemesine neden olan sorun düzeltildi. (b/289582516)
Sürüm 1.1.0-beta01
10 Ocak 2024
androidx.datastore:datastore-*:1.1.0-beta01, 1.1.0-alpha07 tarihinden bu yana herhangi bir değişiklik yapılmadan yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.
Sürüm 1.1.0-alpha07
29 Kasım 2023
androidx.datastore:datastore-*:1.1.0-alpha07 yayınlandı. 1.1.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
MultiProcessDataStoreFactoryyöntemleri artık deneysel değil.@ExperimentalMultiProcessDataStoreek açıklaması tamamen kaldırıldı. (Ieee54, I8e607)
Hata Düzeltmeleri
@ExperimentalMultiProcessDataStoreek açıklamalarının kaldırılması 1.1.0-alpha07 sürümünde kullanıma sunuldu. (I8e607)
Sürüm 1.1.0-alpha06
1 Kasım 2023
androidx.datastore:datastore-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
createSingleProcessCoordinatorfabrika yöntemi artıkcreateMultiProcessCoordinatorile tutarlı olması için bir dosya yolu (String,java.io.Fileveokio.Path) alır. (I211c8, b/305755935)
Sürüm 1.1.0-alpha05
6 Eylül 2023
androidx.datastore:datastore-*:1.1.0-alpha05 yayınlandı. 1.1.0-alpha05 sürümü şu taahhütleri içerir:
API Değişiklikleri
- Datastore
FileStorageartık herkese açık olduğundan müşteriler özel parametreler sağlayabilir. (Icb985) OkioStorageoluşturucu,InterProcessCoordinatorkabul edecek şekilde değiştirildi. Böylece Android'deMultiProcessCoordinatorile kullanılabilir. (Iecea3)
Hata Düzeltmeleri
MultiProcessCoordinatoraracının aynı dizindeki birden fazla dosyayı izleyememesi sorunu düzeltildi.- Dosya yolları normalleştirilmediğinde yinelenen dosyaların algılanamaması sorunu düzeltildi.
RxDataStore#isDisposedtarafından döndürülen yanlış değerleri düzeltin.datstore-preferences-coreyapısı için eksik proguard yapılandırmasını düzeltin.
Sürüm 1.1.0-alpha04
5 Nisan 2023
androidx.datastore:datastore-*:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
DataStoreveri akışının bir güncellemeden sonra daha eski bir değer yayınlayabileceği bir yarışma durumunu önlemek için dahili uygulamayı iyileştirin.
Sürüm 1.1.0-alpha03
24 Mart 2023
androidx.datastore:datastore-*:1.1.0-alpha03 yayınlandı.
Hata Düzeltmeleri
- Kotlin Native hedeflerindeki bir derleme sorununu (b/274786186, KT-57531) çözmek için Maven yapıları üzerindeki bağımlılık kısıtlamaları kaldırıldı.
Sürüm 1.1.0-alpha02
22 Mart 2023
androidx.datastore:datastore-*:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü şu commit'leri içerir:
Not
Bu sürümde, tek işlemli ve çok işlemli DataStore uygulamalarını birleştiren önemli bir dahili yeniden düzenleme yapılmıştır. Lütfen istenmeyen olası davranış değişikliklerine (ör. güncelleme bildirimlerinin zamanlaması) dikkat edin. Bu tür değişiklikleri bildirmek için Issue Tracker bileşenini kullanabilirsiniz.
Yeni özellikler
- Artık KMM projelerinde
DataStorekullanabilirsiniz. DataStore'un Android dışı hedefleri hâlâ deneyseldir ancak geliştiricilerin bunları denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdik. - Çoklu işlem özellikleri
androidx.datastore.multiprocesskonumundanandroidx.datastore.corekonumuna taşındı. - Dosya işlemleri için
Storagenesneleriyle DataStore örnekleri oluşturmak üzereandroidx.datastore.core.MultiProcessDataStoreFactorysınıfına yeni bir fabrika yöntemi ekleyin. - Birden fazla DataStore örneğinin işlemler arasında iletişim kurmasına yardımcı olan yeni bir arayüz
InterProcessCoordinatorekleyin.InterProcessCoordinator'nin çoklu işlem uygulamasının yalnızca Android'de kullanılabildiğini unutmayın.
API Değişiklikleri
- datastore-core arayüzünde
InterProcessCoordinatoröğesiniStorageConnectionöğesine ekleyin (I555bb) - datastore-core
MultiProcessDataStoreFactoryiçindeki API'leri Storage'ı kullanacak şekilde değiştirin. (Iac02f) - datastore-multiprocess'teki herkese açık API'ler datastore-core'a taşındı (I76d7c).
- datastore-preferences-core'dan
PreferencesSerializerkullanıma sunuldu (I4b788) @JvmDefaultWithCompatibilitynotu ekleniyor (I8f206)
Sürüm 1.1.0-alpha01
9 Kasım 2022
androidx.datastore:datastore-*:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü bu kayıtları içerir.
Yeni özellikler
- Süreçler genelinde
DataStoreörnekleri arasında veri tutarlılığının garanti edildiği çoklu süreç kullanım alanlarını destekler. Bu türDataStoreörnekleri oluşturmak içinMultiProcessDataStoreFactory#createekleyin. Datastoreiçin temel depolama mekanizmasının değiştirilmesine olanak tanıyan yeni depolama alanı arayüzü. java.io ve okio için uygulamalar sağlanır.DataStorefabrikalarında bu Storage nesnesini kabul eden yeni yöntemler vardır.
API Değişiklikleri
- datastore-core
MultiProcessDataStoreFactoryiçindeki API'leri Storage'ı kullanacak şekilde değiştirin. (Iac02f) - datastore-multiprocess'teki herkese açık API'leri datastore-core'a taşıma (I76d7c)
- datastore-preferences-core'dan
PreferencesSerializerkullanıma sunuldu (I4b788)
Sürüm 1.0.0
Sürüm 1.0.0
4 Ağustos 2021
androidx.datastore:datastore-*:1.0.0 yayınlandı. 1.0.0 sürümü bu commit'leri içerir.
1.0.0 sürümünün önemli özellikleri
Jetpack DataStore, anahtar/değer çiftlerini veya yazılı nesneleri protokol arabellekleriyle depolamanıza olanak tanıyan bir veri depolama çözümüdür. DataStore, verileri eşzamansız, tutarlı ve işlemsel olarak depolamak için Kotlin eş yordamlarını ve Flow'u kullanır.
Sürüm 1.0.0-rc02
21 Temmuz 2021
androidx.datastore:datastore-*:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Anahtar yoksa
SharedPreferencesMigrationkomutunun çalışmayacağını açıklayın. (Icfa32, b/192824325) MIGRATE_ALL_KEYSile oluşturulanSharedPreferencesMigrationöğesinin, istenen anahtar henüz mevcut değilse istisna oluşturmasına neden olan hata düzeltildi. (Ie318a, b/192824325)
Sürüm 1.0.0-rc01
30 Haziran 2021
androidx.datastore:datastore-*:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- .java dosyasının yanlışlıkla nihai jar dosyasına eklenmesine neden olan hata düzeltildi (I65d96, b/188985637).
Sürüm 1.0.0-beta02
16 Haziran 2021
androidx.datastore:datastore-*:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
ClassVerificationFailureile ilgili sorunları düzeltin (b/187450483)
Sürüm 1.0.0-beta01
21 Nisan 2021
androidx.datastore:datastore-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yalnızca Kotlin yöntemleri için JVM aşırı yüklemeleri kaldırıldı (I2adc7).
Hata Düzeltmeleri
- Veri deposu temsilcilerinin bağlam sızıntısına neden olabileceği bir hata düzeltildi (Ie96fc, b/184415662).
Sürüm 1.0.0-alpha08
10 Mart 2021
androidx.datastore:datastore-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
- Artık
dataStorevepreferencesDataStoremülk yetkilinize bağlama bağlı bir taşıma işlemi ekleyebilirsiniz. (I4ef69, b/173726702) - Artık datastore temsilcisini veya context.createDataStore'u kullanmıyorsanız dosyanın adını almak için yardımcı işlevler ekler (I60f9a).
- Serializer writeTo ve readFrom artık askıya alınıyor. Serializer uyguladıysanız işlevlerinizi askıya alma işlevleri olacak şekilde güncellemeniz gerekir. (I1e58e)
- RxDataStore kullanıcıları için mülk temsilcileri eklendi. (Ied768, b/173726702)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirildi (I6aa29, b/174531520).
Sürüm 1.0.0-alpha07
24 Şubat 2021
androidx.datastore:datastore-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
Context.createDataStoreuzantı işlevi kaldırıldı ve globalDataStore özellik temsilcisiyle değiştirildi. Kotlin dosyanızın üst düzeyinde globalDataStore'u bir kez çağırın. Örneğin:val Context.myDataStore by dataStore(...)Bunu Kotlin dosyanızın en üst düzeyine yerleştirin. Böylece yalnızca bir örneği olur. (I57215, b/173726702)
RxDataStore işlevleri artık DataStore'daki uzantı işlevleri yerine bir RxDataStore sınıfında yer alıyor. (Idccdb, b/177691248)
EncryptedSharedPreferences'i (veya doğrudan başlatma SharedPreferences'i) DataStore'a taşımak istiyorsanız SharedPreferences'i eklemenize olanak tanıyan yeni SharedPreferencesMigration oluşturucuyu kullanabilirsiniz. (I8e04e, b/177278510)
Hata Düzeltmeleri
- DataStore artık aynı dosya için birden fazla etkin DataStore varsa istisna oluşturur. DataStore'unuzu Singleton olarak yönetmiyorsanız veya bir dosya için aynı anda iki DataStore örneğinin etkin olmadığından emin değilseniz artık DataStore'u okurken veya yazarken istisnalar görebilirsiniz. Bu sorunlar, DataStore'unuzu Singleton olarak yöneterek düzeltilebilir. (Ib43f4, b/177691248)
- Arayan kapsamı iptal edildiğinde iptal davranışı düzeltildi. (I2c7b3)
Sürüm 1.0.0-alpha06
13 Ocak 2021
androidx.datastore:datastore-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü şu taahhütleri içerir:
Yeni özellikler
- DataStore için RxJava sarmalayıcıları eklendi.
datastore-rxjava2/3yapıları, temel DataStore API'leri (RxDataStore,RxDataStoreBuilderveRxDataMigration) için sarmalayıcıları içerir.datastore-preferences-rxjava2/3yapıları, Preferences DataStore oluşturmak için bir derleyici içerir.
API Değişiklikleri
- CorruptionHandler arayüzünü gizleyin. DataStore fabrikası yalnızca ReplaceFileCorruptionHandler'ı kabul ettiği için herkese açık olmasına gerek yoktu. (I0b3b3, b/176032264)
preferencesKey<T>(name: String): Key<T>yöntemi kaldırıldı ve desteklenen her türe özel yöntemlerle değiştirildi. Örneğin,preferencesKey<Int>("int")artıkintPreferencesKey("int")(Ibcfac, b/170311106)
Hata Düzeltmeleri
- DataStoreFactory ile ilgili dokümanlarda, veri deposu dosyasının "datastore/" alt dizininde oluşturulduğu bilgisi eksikti. Bu bilgi eklendi. (Ica222)
Sürüm 1.0.0-alpha05
2 Aralık 2020
androidx.datastore:datastore-*:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Veri depolarından eşzamanlı yazma işlemleriyle ilgili daha iyi dokümanlar ve istisnalar ekleyin. (Ia98a2, b/173522155, b/173726702)
- Artık
Serializer.writeTo()yöntemine iletilen OutputStream'in kapatılmasına izin veriyoruz (ancak bunu zorunlu kılmıyoruz). (I5c9bf, b/173037611)
Sürüm 1.0.0-alpha04
17 Kasım 2020
androidx.datastore:datastore-*:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Preference Datastore'da
1.0.0-alpha03şu kilitlenmeye neden olan bir paketleme sorunu düzeltildi:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- Kilitlenme ilk olarak şurada bildirilmişti: b/173036843
- (I4712d, b/173036843)
Sürüm 1.0.0-alpha03
11 Kasım 2020
androidx.datastore:datastore-*:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.
Yeni özellikler
- Tercihler artık çift değerleri destekliyor (kayan değerlerden daha fazla hassasiyete ihtiyacınız varsa kullanışlıdır) (I5be8f, b/169471808)
API Değişiklikleri
- Daha hızlı derleme için veri deposuna yönelik saf bir Kotlin bağımlılığı oluşturuldu.
androidx.datastore:datastore-coreyalnızca temel Kotlin API'lerini,androidx.datastore:datastoreise Android'e bağlı API'leri (SharedPreferencesMigrationveContext.createDataStoreoluşturucu dahil) içerir.(I42d75, b/168512698) - Daha hızlı Kotlin derlemesi için tercihler veri deposu hedeflerini bölme (Ia3c19)
Serileştiriciler artık diskte veri yoksa kullanılacak varsayılan değer için yeni bir özellik gerektiriyor. Bu sayede özel serileştiriciler daha kolay uygulanabilir. Böylece kullanıcıların boş giriş akışları için özel durumlar oluşturması gerekmez (boş giriş akışları JSON ile ayrıştırılmaz).
- Ayrıca, writeTo() yöntemine sağlanan çıkış akışının kapalı olmadığını onaylayan bir kontrol de eklendi. Kapalıysa istisnalar (I16e29) oluşturulur.
SharedPreferencesView için oluşturucuyu dahili yapma. Başlangıçta test için herkese açık olarak yayınlanmıştı. Testler bunun yerine bir SharedPreferencesMigration oluşturmalı ve buna göre test edilmelidir. (I93891)
Hata Düzeltmeleri
DataStoreFactoryvePreferenceDataStoreFactoryiçinproduceFileparametresi artık listedeki son parametre olduğundan Kotlin'in sondaki lambda söz dizimini kullanmanıza olanak tanır. (Ibe7f1, b/169425442)- Kotlin için yeni açık API şartlarına uyma (I5ae1e)
Bilinen Sorunlar
- Preference Datastore,
java.lang.NoClassDefFoundErrorile kilitleniyor. (b/173036843)
Sürüm 1.0.0-alpha02
14 Ekim 2020
androidx.datastore:datastore-core:1.0.0-alpha02 ve androidx.datastore:datastore-preferences:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü şu taahhütleri içerir:
Hata Düzeltmeleri
- datastore-core'da mutasyona karşı bir koruma eklendi. Değişiklik, veri deposunu proto/tercih dışı türlerle kullanan kişiler için veri deposu kullanımını bozar (I6aa84).
- Mevcut durumun hata ayıklamasını kolaylaştırmak için Preferences.kt'ye bir
toStringyöntemi eklendi (I96006). DataStore.Preferencesözelliğinin kötüye kullanımını önlemek için bir istisna eklendi (I1134d)- Uygulamanın başlatma sırasında kilitlenmesine neden olan bir hata düzeltildi (I69237, b/168580258).
Sürüm 1.0.0-alpha01
2 Eylül 2020
androidx.datastore:datastore-core:1.0.0-alpha01 ve androidx.datastore:datastore-preferences:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.
Yeni özellikler
Jetpack DataStore, SharedPreferences'ın yerini alması amaçlanan yeni ve geliştirilmiş bir veri depolama çözümüdür. Kotlin eş yordamları ve Flow üzerine inşa edilen DataStore, iki farklı uygulama sunar:
- Yazılı nesneleri (protokol arabellekleri tarafından desteklenir) depolamanıza olanak tanıyan Proto DataStore
- Anahtar/değer çiftlerini depolayan Preferences DataStore
Veriler eşzamansız, tutarlı ve işlemsel olarak depolanır. Bu sayede SharedPreferences'ın dezavantajlarının çoğu ortadan kalkar.