DataStore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 21 अक्टूबर, 2026 | 1.3.0 | - | - | - |
डिपेंडेंसी का एलान करना
DataStore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
DataStore, सीरियलाइज़ेशन के लिए अलग-अलग विकल्प उपलब्ध कराता है. इनमें से कोई एक विकल्प चुनें. Android-free डिपेंडेंसी को भी दोनों में से किसी भी तरीके से लागू किया जा सकता है.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन डिपेंडेंसी को जोड़ें जिनकी आपको ज़रूरत है:
Preferences DataStore
将以下代码行添加到 Gradle 文件的依赖项部分:
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") }
如需添加可选的 RxJava 支持,请添加以下依赖项:
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 文件的依赖项部分:
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,请添加以下可选依赖项:
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") }
如需序列化内容,请添加 Protocol Buffers 或 JSON 序列化的依赖项。
JSON 序列化
如需使用 JSON 序列化,请将以下内容添加到 Gradle 文件中:
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 序列化
如需使用 Protobuf 序列化,请将以下内容添加到 Gradle 文件中:
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") } } } }
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.3
वर्शन 1.3.0
21 अक्टूबर, 2026
androidx.datastore:datastore-*:1.3.0 रिलीज़ हो गया है. वर्शन 1.3.0 में ये बदलाव शामिल हैं.
1.2.0 के बाद किए गए अहम बदलाव:
नई सुविधाएं
वेब स्टोरेज की सुविधा: केएमपी वेब स्टोरेज के विकल्प जोड़े गए हैं. इससे वेब टारगेट पर डेटा को सेव रखने की सुविधा मिलती है:
sessionStorage(WebSessionStorage): इससे किसी एक ब्राउज़र टैब में, कुछ समय के लिए डेटा सेव किया जा सकता है.localStorage(WebLocalStorage): इससे, क्रॉस-टैब इवेंट की सूचनाओं और सिंक करने की सुविधा के साथ, परसिस्टेंट स्टोरेज की सुविधा चालू होती है.- ओरिजिन प्राइवेट फ़ाइल सिस्टम (
WebOpfsStorage): यह ओपीएफ़एस के ज़रिए फ़ाइल-सिस्टम की सुविधा देता है. इसमें एसिंक्रोनस फ़ाइल I/O और क्रॉस-टैब सूचनाएं शामिल हैं.
एन्क्रिप्शन की सुविधा (
datastore-tink): नयाandroidx.datastore:datastore-tinkआर्टफ़ैक्ट जोड़ा गया है. यह Tink लाइब्रेरी का इस्तेमाल करके, एन्क्रिप्शन की सुविधा देता है. यहAeadSerializerको पेश करता है, ताकि असोसिएटेड डेटा (एईएडी) के साथ ऑथेंटिकेट किए गए एन्क्रिप्शन का इस्तेमाल करके, डेटा को एन्क्रिप्ट और डिक्रिप्ट किया जा सके.ट्रेसिंग की सुविधा: Android टारगेट प्लैटफ़ॉर्म पर,
androidx.tracingके लिए सहायता जोड़ी गई.DataStore.Builderएपीआई:DataStoreFactoryके आधुनिक और ज़रूरत के हिसाब से बढ़ाए जा सकने वाले विकल्प के तौर पर,DataStore.Builder<T>को लॉन्च किया गया. स्ट्रक्चर्ड कॉनकरंसी को बेहतर बनाने के लिए,CoroutineScopeके बजायCoroutineContextकी ज़रूरत होती है.बेसलाइन प्रोफ़ाइलें:
datastoreमें बेसलाइन प्रोफ़ाइलें जोड़ी गई हैं, ताकि ऐप्लिकेशन को शुरू होने में कम समय लगे.
एपीआई में हुए बदलाव
DataStore.Builder,ReThrowCorruptionHandler, औरInterProcessCoordinatorएपीआई कोpublicपर अपडेट कर दिया गया है.
गड़बड़ियां ठीक की गईं और सुधार किए गए
पार्स करने में होने वाली गड़बड़ियों के दौरान, डीबग करने की सुविधा को बेहतर बनाने के लिए,
CorruptionExceptionमैसेज में फ़ाइल पाथ की जानकारी जोड़ी गई.अपडेट के लिए, एफ़आईएफ़ओ (पहले जनरेट हुए इनवॉइस का पेमेंट सबसे पहले करना) के सख्त नियम को लागू करके,
GuavaDataStoreमें डेटा के संभावित नुकसान को ठीक किया गया.
वर्शन 1.3.0-rc01
12 अक्टूबर, 2026
androidx.datastore:datastore-*:1.3.0-rc01 रिलीज़ हो गया है. वर्शन 1.3.0-rc01 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
EdgeToEdge#enable()(Ibff3e) के बजाय,WindowCompat#enableEdgeToEdge(Window)का इस्तेमाल करें
गड़बड़ियां ठीक की गईं
androidx.lifecycle:lifecycle-runtimeडिपेंडेंसी को 2.10.0 पर अपडेट किया गया. यह वर्शन, एजीपी के 9.5.0-alpha04 या इसके बाद के वर्शन के साथ बंडल किए गए लाइफ़साइकल रनटाइम लिंट की जांच करने के लिए ज़रूरी है. (I99bfd, b/556807521)
वर्शन 1.3.0-alpha11
09 सितंबर, 2026
androidx.datastore:datastore-*:1.3.0-alpha11 रिलीज़ हो गया है. वर्शन 1.3.0-alpha11 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
DataStoreकी सेटिंग को पार्स करने में होने वाली गड़बड़ियों के दौरान,CorruptionExceptionमैसेज में फ़ाइल का पाथ शामिल नहीं किया जाता. (Ia9e8f)
वर्शन 1.3.0-alpha10
29 जुलाई, 2026
androidx.datastore:datastore-*:1.3.0-alpha10 रिलीज़ हो गया है. वर्शन 1.3.0-alpha10 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
GeneralSecurityException in AeadSerializer is now wrapped in CorruptionException for better CorruptionHandler integration.(I26e56, b/514941919)
वर्शन 1.3.0-alpha09
6 मई, 2026
androidx.datastore:datastore-*:1.3.0-alpha09 रिलीज़ हो गया है. वर्शन 1.3.0-alpha09 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
ReThrowCorruptionHandlerको सार्वजनिक करें. (I137bb, b/427722902)- ट्रेस करने की लाइफ़साइकल को सिस्टम ट्रेस करने की प्रक्रिया के मुताबिक बनाएं. (Ib391b)
वर्शन 1.3.0-alpha08
22 अप्रैल, 2026
androidx.datastore:datastore-*:1.3.0-alpha08 रिलीज़ हो गया है. वर्शन 1.3.0-alpha08 में ये बदलाव शामिल हैं.
नई सुविधाएं
- वेब प्लैटफ़ॉर्म के लिए, DataStore में ओरिजन प्राइवेट फ़ाइल सिस्टम (ओपीएफ़एस) के लिए सहायता जोड़ी गई. इस सुविधा को लागू करने से,
WebOpfsStorageको पेश किया गया है. इसमें एसिंक्रोनस फ़ाइल I/O,BroadcastChannelएपीआई का इस्तेमाल करके क्रॉस-टैब सूचनाएं, और खास तौर पर लिखने का ऐक्सेस देने के लिए नेटिवWeb Locks APIके ज़रिए डिस्ट्रिब्यूटेड लॉकिंग के लिए आर्किटेक्चरल सहायता शामिल है. Id7f5807 b/316376114
एपीआई में बदलाव
- वेब एनवायरमेंट में स्टोरेज टाइप को साफ़ तौर पर मैनेज करने के लिए,
WebLocalStorageऔरWebSessionStorageएपीआई लॉन्च किए गए. I35fa259b b/316376114
वर्शन 1.3.0-alpha07
11 मार्च, 2026
androidx.datastore:datastore-*:1.3.0-alpha07 रिलीज़ हो गया है. वर्शन 1.3.0-alpha07 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एन्क्रिप्ट करने की सुविधा: नया
androidx.datastore:datastore-tinkआर्टफ़ैक्ट लॉन्च किया गया है. इसकी मदद से, Tink लाइब्रेरी का इस्तेमाल करके, आपके डेटास्टोर को एन्क्रिप्ट किया जा सकता है. इस मॉड्यूल मेंAeadSerializerके बारे में बताया गया है. यह एक नई रैपर क्लास है, जोSerializer<T>को लागू करती है. साथ ही, डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए, Tink के Authenticated Encryption with Associated Data (AEAD) का इस्तेमाल करती है.AeadSerializerका इस्तेमाल, जेवीएम और Android टारगेट प्लैटफ़ॉर्म पर किया जा सकता है. - नया
DataStoreBuilder API:DataStoreFactoryके विकल्प के तौर परDataStore.Builder<T>को पेश किया गया है. इसे ज़रूरत के हिसाब से बढ़ाया जा सकता है. इस नए एपीआई की मदद से, उपयोगकर्ता अबsetCorruptionHandlerके ज़रिए, डेटा खराब होने की वजह बता सकते हैं. इसके अलावा,Builderएपीआई के लिए ज़रूरी है किDataStoreकोCoroutineScopeके बजायCoroutineContextका इस्तेमाल करके शुरू किया जाए. यह स्ट्रक्चर्ड कॉनकरंसी के लिए एक सुधार है, क्योंकि इससे कॉलर को एक्ज़ीक्यूशन के तरीके (जैसे, खास डिस्पैचर) तय करने की अनुमति मिलती है. इसके लिए,DataStoreको कॉलर के स्कोप की लाइफ़साइकल को गलत तरीके से मैनेज करने या उससे बंधने के लिए मजबूर नहीं किया जाता.ध्यान दें: हमारा सुझाव है कि सभी उपयोगकर्ता,
DataStoreFactoryसे नएDataStore.Builderएपीआई पर माइग्रेट करें.CoroutineScopeके बजायCoroutineContextकी ज़रूरत होने पर, एपीआई बेहतर स्ट्रक्चर्ड कॉनकरंसी लागू करता है. इससे यह पक्का होता है कि DataStore के ऑपरेशन, कम समय के लिए चलने वाले यूज़र इंटरफ़ेस (यूआई) लाइफ़साइकल (जैसे,viewModelScope) से बंधे न हों. इससे, समय से पहले रद्द होने और डेटा के संभावित नुकसान से बचा जा सकता है.चेतावनी: पक्का करें कि बिल्डर को दिए गए
CoroutineContextमेंJobहो और वह ऐप्लिकेशन के दायरे में हो. अगर कॉन्टेक्स्ट रद्द कर दिया जाता है, तोDataStoreके अंदरूनी ऑपरेशन समय से पहले खत्म हो जाएंगे.
एपीआई में बदलाव
DataStoreको एन्क्रिप्ट करने के लिए, नयाandroidx.datastore:datastore-tinkआर्टफ़ैक्ट लॉन्च किया गया. (Ic106d, b/167697691)Tink का इस्तेमाल करके डेटा को एन्क्रिप्ट करने के लिए, यह तरीका अपनाएं:
Tink API का इस्तेमाल करके कुंजी बनाएं:
val keysetHandle = AndroidKeysetManager.Builder() .withSharedPref(applicationContext, "keyset", "keyset_prefs") .withKeyTemplate(KeyTemplate.createFrom(PredefinedAeadParameters.AES256_GCM)) .withMasterKeyUri("android-keystore://master_key") .build() .keysetHandleकिसी मौजूदा सीरियलाइज़र को रैप करने वाला
AeadSerializerबनाएं: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(), )डेटास्टोर इंस्टेंस बनाते समय, अपने सीरियलाइज़र की जगह इस
aeadSerializerका इस्तेमाल करें:val dataStore = dataStore( fileName = "settings.json", serializer = aeadSerializer, scope = scope, )
DataStoreFactoryके आधुनिक और स्केलेबल विकल्प के तौर पर,DataStore.Builder<T>को लॉन्च किया गया. (I3b110, b/267785821, b/400507108, b/368385681, b/427722902, b/370838564, b/167697691)
वर्शन 1.3.0-alpha06
25 फ़रवरी, 2026
androidx.datastore:datastore-*:1.3.0-alpha06 रिलीज़ हो गया है. वर्शन 1.3.0-alpha06 में ये बदलाव शामिल हैं.
नई सुविधाएं
DataStoreअब Android टारगेट प्लैटफ़ॉर्म परandroidx.tracingके साथ काम करता है.DataStoreFactory.createWithTracing()फ़ंक्शन कोandroidx.tracing.Tracerइंस्टेंस देकर, ट्रेसिंग की सुविधा के साथDataStoreबनाया जा सकता है. (I71bc2, b/427722902)
वर्शन 1.3.0-alpha05
28 जनवरी, 2026
androidx.datastore:datastore-*:1.3.0-alpha05 रिलीज़ हो गया है. वर्शन 1.3.0-alpha05 में ये बदलाव शामिल हैं.
नई सुविधाएं
- डेटास्टोर में बेसलाइन प्रोफ़ाइलें जोड़ी गईं. (3916245,b/469127532).
localStorageकी मदद से, DataStore में WASM/JS के लिए सहायता लागू करें. इससे, मौजूदाsessionStorageलागू करने के तरीके के मुकाबले काफ़ी फ़ायदा मिलता है. इसकी वजह यह है कि इससे क्रॉस-टैब इवेंट की सूचनाएं और सिंक्रनाइज़ेशन की सुविधा चालू हो जाती है. (I67246, b/441511612)
वर्शन 1.3.0-alpha04
14 जनवरी, 2026
androidx.datastore:datastore-*:1.3.0-alpha04 रिलीज़ हो गया है. वर्शन 1.3.0-alpha04 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
- एक यूटिलिटी कॉपी फ़ंक्शन जोड़ा गया है. इसका इस्तेमाल,
DataStoreकी सेटिंग के लिए डेटा अपडेट करने के लिए किया जा सकता है. (I70a18, b/467120382)
गड़बड़ियां ठीक की गईं
- उस समस्या को हल किया गया है जिसमें स्टोरेज के दौरान बाइनरी डेटा गलत तरीके से सेव हो सकता था. इसके लिए, वेब के लिए UTF-8 स्ट्रिंग हैंडलिंग को Base64 एन्कोडिंग से बदल दिया गया है. (Ie3178, b/473790107)
वर्शन 1.3.0-alpha03
17 दिसंबर, 2025
androidx.datastore:datastore-*:1.3.0-alpha03 रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- टेंप डेटास्टोर फ़ाइल का नाम बदलने में आने वाली समस्या को ठीक किया गया. (I94f89, b/203087070)
- एक साथ पढ़ने/लिखने के दौरान, अपडेट ड्रॉप होने की समस्या को ठीक किया गया.
DataStore.dataपर मौजूद नए कलेक्टर और एक साथ किए गएupdateDataकॉल के बीच रेस कंडिशन हो सकती है. इस वजह से, कलेक्टर को नई वैल्यू नहीं मिल पाती. (I6a427, b/431787506)
वर्शन 1.3.0-alpha02
03 दिसंबर, 2025
androidx.datastore:datastore-*:1.3.0-alpha02 रिलीज़ हो गया है. वर्शन 1.3.0-alpha02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
androidx.datastoreमें js() टारगेट जोड़ें. (I1f62b, b/441511612)GuavaDataStoreके अपडेट में, एफ़आईएफ़ओ ऑर्डर लागू करें. (I6fd00,b/451491257)
वर्शन 1.3.0-alpha01
19 नवंबर, 2025
androidx.datastore:datastore-*:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
sessionStorageएपीआई का इस्तेमाल करके,DataStoreमें केएमपी वेब की सुविधा जोड़ी गई. इस सुविधा की मदद से,DataStoreको एक ही ब्राउज़र टैब में कुछ समय के लिए डेटा सेव करने की अनुमति मिलती है. (I60fad, b/316376114)
वर्शन 1.2
वर्शन 1.2.1
11 मार्च, 2026
androidx.datastore:datastore-*:1.2.1 रिलीज़ हो गया है. वर्शन 1.2.1 में ये बदलाव शामिल हैं.
कोई बदलाव नहीं
- इस रिलीज़ में, इन्फ़्रास्ट्रक्चर से जुड़ी छोटी-मोटी गड़बड़ियां ठीक की गई हैं. इसमें DataStore API या वर्शन 1.2.0 के व्यवहार में कोई बदलाव नहीं किया गया है.
वर्शन 1.2.0
19 नवंबर, 2025
androidx.datastore:datastore-*:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये कमिट शामिल हैं.
1.1.0 रिलीज़ के बाद हुए अहम बदलाव
Java/Guava की सुविधा:
GuavaDataStoreके ज़रिए, Java और GuavaListenableFutureके उपयोगकर्ताओं के लिए, एपीआई को एक्सपोज़ करने के लिए नयाdatastore-guavaमॉड्यूल जोड़ा गया.GuavaDataStoreमें मल्टीप्रोसेस की सुविधा जोड़ी गई.GuavaDataStore.fromके लिए एक ओवरलोड जोड़ा गया है, जोCoroutineContextके बजाय JavaExecutorको स्वीकार करता है औरandroidx.core.util.Functionका इस्तेमाल करता है.
डायरेक्ट बूट की सुविधा:
- अब डायरेक्ट बूट मोड के दौरान, DataStore का इस्तेमाल किया जा सकता है.
DataStoreFactoryमेंcreateInDeviceProtectedStorage()औरDataStoreDelegateमेंdeviceProtectedDataStore()जैसे नए एपीआई, डिवाइस की सुरक्षित मेमोरी में DataStore बनाने की अनुमति देते हैं.
स्टोरेज और एपीआई में बदलाव:
PreferencesFileSerializerको जोड़ा गया, जोFileStorageके साथ इस्तेमाल करने के लिएandroidx.datastore.core.Serializerको लागू करता है.- सामान्य कोड के इस्तेमाल के लिए,
ReplaceFileCorruptionHandlerके लिए डिफ़ॉल्ट कंस्ट्रक्टर तय किया गया.
गड़बड़ियां ठीक की गईं:
- R8 के साथ ऑप्टिमाइज़ किए गए ऐप्लिकेशन में
DataStoreका इस्तेमाल करते समय,java.lang.UnsatisfiedLinkErrorको ठीक किया गया. हालांकि, इसमें स्टैंडर्ड ProGuard फ़ाइल का इस्तेमाल नहीं किया गया. - उस समस्या को ठीक किया गया है जिसमें
GuavaDataStoreकार्रवाइयां, तय किए गए IO डिस्पैचर के बजाय, कॉलिंग थ्रेड (उदाहरण के लिए, मुख्य थ्रेड) पर गलत तरीके से चल सकती थीं. - रेस कंडिशन के मामले में डेटा को पढ़ने की दूसरी कोशिश जोड़कर, स्टार्टअप के दौरान
OkioStorageमेंFileNotFoundExceptionकी समस्या को हल किया गया.
वर्शन 1.2.0-rc01
05 नवंबर, 2025
androidx.datastore:datastore-*:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.2.0-beta01
22 अक्टूबर, 2025
androidx.datastore:datastore-*:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये कमिट शामिल हैं.
एपीआई में बदलाव
CorruptionHandlerको सार्वजनिक करें. (I9ac35, b/452406457)GuavaDataStoreमेंandroidx.core.util.Functionका इस्तेमाल करें. (I71eae, b/448563999)GuavaDataStore.fromके लिए एक ओवरलोड जोड़ें, जोCoroutineContextके बजाय एक्ज़ीक्यूटर लेता है. (I989fa, b/448563183)
गड़बड़ियां ठीक की गईं
- R8 की मदद से ऑप्टिमाइज़ किए गए किसी ऐप्लिकेशन में
DataStoreका इस्तेमाल करते समय,java.lang.UnsatisfiedLinkErrorको ठीक करें. हालांकि, यह ऐप्लिकेशनgetDefaultProguardFile('android-proguard-optimize.txt')का इस्तेमाल नहीं कर रहा है. (I27d0d, b/434696293) - उस समस्या को ठीक किया गया है जिसमें
GuavaDataStoreऑपरेशन, तय किए गए IO डिस्पैचर के बजाय कॉलिंग थ्रेड (जैसे, मुख्य थ्रेड) पर गलत तरीके से चल सकते थे. (Ic91ea,b/441801112)
वर्शन 1.2.0-alpha02
7 मई, 2025
androidx.datastore:datastore-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
GuavaDataStoreमें मल्टीप्रोसेस की सुविधा जोड़ी गई. (e0d608a).DataStoreसेGuavaDataStoreबनाने के लिए, हेल्पर मेथड जोड़ा गया. (9af26f4)- Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट इस्तेमाल करने के लिए, KGP 2.0.0 या इसके बाद का वर्शन ज़रूरी है. (Idb6b5)
- मौजूदा
datastoreओवरलोड को डेलिगेट मेथड से बदलें, ताकि डायरेक्ट बूट के दौरान इस्तेमाल किए जाने वाले DataStore को शुरू किया जा सके. (If71b9)
वर्शन 1.2.0-alpha01
26 मार्च, 2025
androidx.datastore:datastore-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
datastore-guavaमॉड्यूल जोड़ा गया, ताकिGuavaDataStoreके ज़रिए Java और GuavaListenableFutureके उपयोगकर्ताओं को एपीआई उपलब्ध कराए जा सकें. (Iadd5e0)DirectBootमोड के दौरान, अबDataStoreका इस्तेमाल किया जा सकता है. डायरेक्ट बूट मोड के दौरान इस्तेमाल किए जाने वाले डेटास्टोर को डिवाइस प्रोटेक्टेड स्टोरेज में बनाना ज़रूरी है. इसके लिए, इन नएDataStoreएपीआई का इस्तेमाल किया जा सकता है:DataStoreFactoryमेंcreateInDeviceProtectedStorage()औरDataStoreDelegateमेंdeviceProtectedDataStore(). (Ib90e56)
एपीआई में बदलाव
PreferencesFileSerializerको जोड़ा गया, जोFileStorageके साथ इस्तेमाल करने के लिएandroidx.datastore.core.Serializerइंटरफ़ेस को लागू करता है. (I4c71f3)
गड़बड़ियां ठीक की गईं
- रेस कंडिशन के मामले में डेटा को पढ़ने की दूसरी कोशिश जोड़कर, स्टार्टअप के दौरान
OkioStorageमेंFileNotFoundExceptionकी समस्या को हल किया गया. (I43b3fb, b/337870543) - सामान्य कोड के इस्तेमाल के लिए,
ReplaceFileCorruptionHandlerके लिए डिफ़ॉल्ट कंस्ट्रक्टर तय किया गया. (I795b05, b/358138957)
वर्शन 1.1
वर्शन 1.1.7
20 मई, 2025
androidx.datastore:datastore-*:1.1.7 रिलीज़ हो गया है. वर्शन 1.1.7 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
datastore-preferences-coreके Android आर्टफ़ैक्ट में, Proguard के नियम मौजूद न होने की समस्या को ठीक किया गया. (3f3f6e, b/413078297)
वर्शन 1.1.6
7 मई, 2025
androidx.datastore:datastore-*:1.1.6 रिलीज़ हो गया है. वर्शन 1.1.6 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- वर्शन
1.1.5में Gradle मेटाडेटा के काम न करने की समस्या को ठीक किया गया. यह समस्या, नए एजीपी केएमपी प्लग इन डीएसएल में मौजूद गड़बड़ी की वजह से हुई थी. इसकी वजह से, सभी टारगेट प्लैटफ़ॉर्म के लिए मेटाडेटा अपने-आप शामिल नहीं हो पा रहा था. इस गड़बड़ी की वजह से, क्लाइंट के बिल्ड में कुछ DataStore Android तरीके नहीं दिखते. इस समस्या को ठीक करने के लिए,androidLibraryके बजायbuild.gradleमें पुरानेandroidडीएसएल का इस्तेमाल करना होगा. (7801abf)
वर्शन 1.1.5
23 अप्रैल, 2025
androidx.datastore:datastore-*:1.1.5 रिलीज़ हो गया है. वर्शन 1.1.5 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
PreferencesDataStoreमेंCorruptionExceptionसे जुड़ी समस्याओं को कम करने के लिए, डिफ़ॉल्ट स्टोरेज कोOkioStorageसे बदलकरFileStorageकर दिया गया है. यह बदलाव,PreferencesFileSerializerको लॉन्च करके किया गया था. b/346197747
वर्शन 1.1.4
26 मार्च, 2025
androidx.datastore:datastore-*:1.1.4 रिलीज़ हो गया है. वर्शन 1.1.4 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
CorruptionExceptionको कम करके विश्वसनीयता बढ़ाने के लिए, डिफ़ॉल्ट स्टोरेज कोOkioStorageसे बदलकरFileStorageकरें. (I71181, b/346197747)
वर्शन 1.1.3
26 फ़रवरी, 2025
androidx.datastore:datastore-*:1.1.3 रिलीज़ हो गया है. वर्शन 1.1.3 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- ऐप्लिकेशन के चालू होने पर,
OkioStorageमेंFileNotFoundExceptionसे जुड़ी समस्या को ठीक किया गया. अगर फ़ाइल को पहली बार में नहीं पढ़ा जा सका, तो उसे दूसरी बार पढ़ने की कोशिश की जाएगी. ऐसा इसलिए, क्योंकि हो सकता है कि पहली बार फ़ाइल को पढ़ने के दौरान, किसी दूसरी प्रोसेस की वजह से फ़ाइल बनाई गई हो और इस वजह से रेस कंडिशन की समस्या आई हो. (I43b3f, b/337870543)
वर्शन 1.1.2
15 जनवरी, 2025
androidx.datastore:datastore-*:1.1.2 रिलीज़ हो गया है. वर्शन 1.1.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- वॉर्म रीड लेटेंसी (
DataStore.data.first()) को आठ गुना बेहतर बनाएं. (22b8a40) ReplaceFileCorruptionHandlerको केएमपी के कॉमन कोड से बनाया जा सकता है. (7632e839)
वर्शन 1.1.1
1 मई, 2024
androidx.datastore:datastore-*:1.1.1 रिलीज़ हो गया है. वर्शन 1.1.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- "संसाधन डेडलॉक होगा" गड़बड़ी के बारे में Linux के गलत अलार्म को कम किया गया. यह गड़बड़ी तब होती है, जब कई
DataStoreइंस्टेंस, फ़ाइल लॉक को वापस लेकर अलग-अलग प्रोसेस से लिखने की कोशिश करते हैं.
वर्शन 1.1.0
17 अप्रैल, 2024
androidx.datastore:datastore-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.
1.0.0 रिलीज़ के बाद से किए गए मुख्य बदलाव
ज़्यादा जानकारी के लिए, कृपया 1.1.0 के ऐल्फ़ा और बीटा वर्शन के रिलीज़ नोट देखें. 1.1.0 में किए गए कुछ खास अपडेट ये हैं:
- DataStore अब एक ही फ़ाइल को ऐक्सेस करने वाली कई प्रोसेस के साथ काम करता है. साथ ही, इसमें सभी प्रोसेस को जांचने की क्षमता भी है.
- नए स्टोरेज इंटरफ़ेस की मदद से, अपने डेटा मॉडल को सेव करने या उन्हें क्रम से लगाने के तरीके को पसंद के मुताबिक बनाया जा सकता है.
- अब Kotlin Multiplatform प्रोजेक्ट में DataStore का इस्तेमाल किया जा सकता है.
वर्शन 1.1.0-rc01
3 अप्रैल, 2024
androidx.datastore:datastore-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- परफ़ॉर्मेंस में गिरावट की समस्या को ठीक किया गया. इसमें, नया डेटा पुराने डेटा जैसा होने पर,
updateDataकॉल को डिस्क राइट के लिए ऑप्टिमाइज़ नहीं किया जाता था (d64cfb5) - रेस कंडिशन की समस्या को ठीक किया गया है. इसकी वजह से,
MultiProcessDataStoreको शुरू करने के दौरान, अमान्य होने की जानकारी नहीं मिल पाती थी. ((b/326141553),(094c2dd))
वर्शन 1.1.0-beta02
6 मार्च, 2024
androidx.datastore:datastore-*:1.1.0-beta02 रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
DataStoreपर परफ़ॉर्मेंस में सुधार की सुविधा, अपडेट की सूचनाएं सिर्फ़ तब इकट्ठा करती है, जब उसे देखा जाता है. (b/267792241)- ध्यान दें कि अगर Coroutines टेस्टिंग लाइब्रेरी का इस्तेमाल किया जा रहा है, तो इस बदलाव की वजह से आपके टेस्ट में
UncompletedCoroutinesErrorट्रिगर हो सकता है. इस समस्या से बचने के लिए, पक्का करें कि आपने टेस्ट मेंDataStoreको शुरू करते समयTestScope.backgroundScopeको पास किया हो.
- ध्यान दें कि अगर Coroutines टेस्टिंग लाइब्रेरी का इस्तेमाल किया जा रहा है, तो इस बदलाव की वजह से आपके टेस्ट में
- एक ही इंस्टेंस पर नेस्ट किए गए
updateDataकॉल के डेडलॉक होने की समस्या को ठीक किया गया. (b/241760537) DataStoreको इस तरह से बनाया गया है कि माइग्रेशन के दौरानSharedPreferencesको मिटाने में गड़बड़ी होने पर, अबIOExceptionsको थ्रो नहीं किया जाएगा. (b/195553816)- उस समस्या को ठीक किया गया है जिसकी वजह से, Android के अलावा अन्य जेवीएम एनवायरमेंट में
updateDataके दौरान फ़ाइल का नाम नहीं बदला जा सकता था. (b/203087070) - उस समस्या को ठीक किया गया है जिसकी वजह से
DataStoreको शुरू करने के बाद,CorruptionExceptionको मैनेज नहीं किया जा रहा था. (b/289582516)
वर्शन 1.1.0-beta01
10 जनवरी, 2024
androidx.datastore:datastore-*:1.1.0-beta01 को 1.1.0-alpha07 के बाद से बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.1.0-alpha07
29 नवंबर, 2023
androidx.datastore:datastore-*:1.1.0-alpha07 रिलीज़ हो गया है. वर्शन 1.1.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
MultiProcessDataStoreFactoryतरीके अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं.@ExperimentalMultiProcessDataStoreएनोटेशन को पूरी तरह से हटा दिया गया है. (Ieee54, I8e607)
गड़बड़ियां ठीक की गईं
@ExperimentalMultiProcessDataStoreएनोटेशन को हटाने की सुविधा को 1.1.0-alpha07 पर रोल आउट करें. (I8e607)
वर्शन 1.1.0-alpha06
1 नवंबर, 2023
androidx.datastore:datastore-*:1.1.0-alpha06 रिलीज़ हो गया है. वर्शन 1.1.0-alpha06 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
createSingleProcessCoordinatorफ़ैक्ट्री मेथड को अब फ़ाइल पाथ (String,java.io.File, औरokio.Path) मिलता है, ताकि यहcreateMultiProcessCoordinatorके साथ काम कर सके. (I211c8, b/305755935)
वर्शन 1.1.0-alpha05
6 सितंबर, 2023
androidx.datastore:datastore-*:1.1.0-alpha05 रिलीज़ हो गया है. वर्शन 1.1.0-alpha05 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
- Datastore
FileStorageअब सार्वजनिक तौर पर उपलब्ध है. इसलिए, क्लाइंट कस्टम पैरामीटर उपलब्ध करा सकते हैं. (Icb985) OkioStorageकंस्ट्रक्टर को बदला गया, ताकि वहInterProcessCoordinatorको स्वीकार कर सके. इससे, इसे Android परMultiProcessCoordinatorके साथ इस्तेमाल किया जा सकेगा. (Iecea3)
गड़बड़ियां ठीक की गईं
MultiProcessCoordinatorकी वह गड़बड़ी ठीक की गई है जिसकी वजह से एक ही डायरेक्ट्री में मौजूद कई फ़ाइलों को मॉनिटर नहीं किया जा सकता था.- अगर फ़ाइल पाथ सामान्य नहीं हैं, तो डुप्लीकेट फ़ाइलों का पता न चलने की समस्या को ठीक करें.
RxDataStore#isDisposedसे मिली गलत वैल्यू को ठीक करें.datstore-preferences-coreआर्टफ़ैक्ट के लिए, ProGuard कॉन्फ़िगरेशन मौजूद न होने की समस्या को ठीक करें.
वर्शन 1.1.0-alpha04
5 अप्रैल, 2023
androidx.datastore:datastore-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- इंटरनल इंप्लिमेंटेशन को बेहतर बनाएं, ताकि रेस कंडिशन से बचा जा सके. रेस कंडिशन की वजह से, अपडेट के बाद भी
DataStoreके डेटा फ़्लो में पुरानी वैल्यू दिख सकती है.
वर्शन 1.1.0-alpha03
24 मार्च, 2023
androidx.datastore:datastore-*:1.1.0-alpha03 रिलीज़ हो गया है.
गड़बड़ियां ठीक की गईं
- Kotlin नेटिव टारगेट (b/274786186, KT-57531) में बिल्ड की समस्या को हल करने के लिए, Maven आर्टफ़ैक्ट से डिपेंडेंसी की पाबंदियां हटा दी गई हैं.
वर्शन 1.1.0-alpha02
22 मार्च, 2023
androidx.datastore:datastore-*:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये बदलाव शामिल हैं.
ध्यान दें
ध्यान दें कि इस वर्शन में एक अहम इंटरनल रीफ़ैक्टर शामिल है. यह सिंगल प्रोसेस और मल्टी प्रोसेस DataStore के लागू होने की प्रोसेस को मर्ज करता है. कृपया इस बात पर नज़र रखें कि कहीं आपके ऐप्लिकेशन के व्यवहार में अनचाहे बदलाव न हो रहे हों. उदाहरण के लिए, अपडेट की सूचनाएं मिलने के समय में बदलाव. इस तरह के बदलावों की शिकायत करने के लिए, समस्या ट्रैकर कॉम्पोनेंट का इस्तेमाल किया जा सकता है.
नई सुविधाएं
- अब KMM प्रोजेक्ट में
DataStoreका इस्तेमाल किया जा सकता है. ध्यान दें कि DataStore के नॉन-Android टारगेट अब भी एक्सपेरिमेंट के तौर पर उपलब्ध हैं. हालांकि, हमने वर्शन को मर्ज करने का फ़ैसला लिया है, ताकि डेवलपर उन्हें आसानी से आज़मा सकें. - मल्टी प्रोसेस की सुविधाओं को
androidx.datastore.multiprocessसेandroidx.datastore.coreमें ट्रांसफ़र कर दिया गया है. androidx.datastore.core.MultiProcessDataStoreFactoryमें एक नया फ़ैक्ट्री तरीका जोड़ें, ताकि फ़ाइल से जुड़े कामों के लिएStorageऑब्जेक्ट के साथ DataStore इंस्टेंस बनाए जा सकें.- एक नया इंटरफ़ेस
InterProcessCoordinatorजोड़ें, जो कई DataStore इंस्टेंस को प्रोसेस के दौरान कम्यूनिकेट करने में मदद करता है. ध्यान दें किInterProcessCoordinatorको मल्टी-प्रोसेस के तौर पर लागू करने की सुविधा, सिर्फ़ Android पर उपलब्ध है.
एपीआई में बदलाव
- datastore-core इंटरफ़ेस (I555bb) में,
StorageConnectionमेंInterProcessCoordinatorजोड़ा गया - स्टोरेज का इस्तेमाल करने के लिए, datastore-core
MultiProcessDataStoreFactoryमें एपीआई बदलें. (Iac02f) - datastore-multiprocess में मौजूद सार्वजनिक एपीआई को datastore-core में ले जाएं (I76d7c)
- datastore-preferences-core (I4b788) से
PreferencesSerializerको एक्सपोज़ किया गया @JvmDefaultWithCompatibilityएनोटेशन जोड़ा जा रहा है (I8f206)
वर्शन 1.1.0-alpha01
9 नवंबर, 2022
androidx.datastore:datastore-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
- एक से ज़्यादा प्रोसेस वाले इस्तेमाल के उदाहरणों के साथ काम करना, जहां प्रोसेस के दौरान
DataStoreइंस्टेंस के बीच डेटा की एक जैसी क्वालिटी की गारंटी दी जाती है. इस तरह केDataStoreइंस्टेंस बनाने के लिए,MultiProcessDataStoreFactory#createजोड़ें. - नया स्टोरेज इंटरफ़ेस, जो
Datastoreके लिए स्टोरेज के बुनियादी तरीके को बदलने की अनुमति देता है. java.io और okio के लिए, लागू करने के तरीके उपलब्ध कराए गए हैं.DataStoreफ़ैक्ट्री में नए तरीके हैं, जो इस स्टोरेज ऑब्जेक्ट को स्वीकार करते हैं.
एपीआई में बदलाव
- स्टोरेज का इस्तेमाल करने के लिए, datastore-core
MultiProcessDataStoreFactoryमें एपीआई बदलें. (Iac02f) - datastore-multiprocess में मौजूद सार्वजनिक एपीआई को datastore-core में ले जाया गया (I76d7c)
- datastore-preferences-core (I4b788) से
PreferencesSerializerको एक्सपोज़ किया गया
वर्शन 1.0.0
वर्शन 1.0.0
4 अगस्त, 2021
androidx.datastore:datastore-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.
1.0.0 की मुख्य सुविधाएं
Jetpack DataStore, डेटा सेव करने का एक तरीका है. इसकी मदद से, प्रोटोकॉल बफ़र के साथ की-वैल्यू पेयर या टाइप किए गए ऑब्जेक्ट सेव किए जा सकते हैं. DataStore, डेटा को एसिंक्रोनस, लगातार, और ट्रांज़ैक्शन के हिसाब से सेव करने के लिए, Kotlin कोरूटीन और Flow का इस्तेमाल करता है.
वर्शन 1.0.0-rc02
21 जुलाई, 2021
androidx.datastore:datastore-*:1.0.0-rc02 रिलीज़ हो गया है. वर्शन 1.0.0-rc02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- यह साफ़ तौर पर बताएं कि अगर कोई पासकोड नहीं है, तो
SharedPreferencesMigrationकाम नहीं करेगा. (Icfa32, b/192824325) - उस गड़बड़ी को ठीक किया गया है जिसमें
MIGRATE_ALL_KEYSसे बनाए गएSharedPreferencesMigrationसे, अनुरोध की गई कुंजी के मौजूद न होने पर गड़बड़ी का मैसेज दिखता था. (Ie318a, b/192824325)
वर्शन 1.0.0-rc01
30 जून, 2021
androidx.datastore:datastore-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से .java फ़ाइल, अनजाने में फ़ाइनल jar (I65d96, b/188985637) में जुड़ गई थी
वर्शन 1.0.0-beta02
16 जून, 2021
androidx.datastore:datastore-*:1.0.0-beta02 रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
ClassVerificationFailureको ठीक करें (b/187450483)
वर्शन 1.0.0-beta01
21 अप्रैल, 2021
androidx.datastore:datastore-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
- सिर्फ़ Kotlin के लिए इस्तेमाल होने वाले तरीकों से JVM ओवरलोड हटाएं (I2adc7)
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से डेटास्टोर डेलिगेट, कॉन्टेक्स्ट लीक कर सकते थे (Ie96fc, b/184415662)
वर्शन 1.0.0-alpha08
10 मार्च, 2021
androidx.datastore:datastore-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
- अब आपके पास अपनी
dataStoreऔरpreferencesDataStoreप्रॉपर्टी के डेलिगेट में, कॉन्टेक्स्ट के हिसाब से माइग्रेशन जोड़ने का विकल्प है. (I4ef69, b/173726702) - अगर अब डेटास्टोर डेलिगेट या context.createDataStore का इस्तेमाल नहीं किया जा रहा है, तो फ़ाइल का नाम पाने के लिए हेल्पर फ़ंक्शन जोड़े गए हैं (I60f9a)
- सीरियलाइज़र writeTo और readFrom अब निलंबित हो रहे हैं. अगर आपने Serializer लागू किया है, तो आपको अपने फ़ंक्शन अपडेट करने होंगे, ताकि वे suspend फ़ंक्शन बन सकें. (I1e58e)
- RxDataStore के उपयोगकर्ताओं के लिए, प्रॉपर्टी डेलिगेट जोड़े गए. (Ied768, b/173726702)
गड़बड़ियां ठीक की गईं
- एक्सपेरिमेंटल एपीआई के सार्वजनिक इस्तेमाल पर पाबंदियां लागू करें (I6aa29, b/174531520)
वर्शन 1.0.0-alpha07
24 फ़रवरी, 2021
androidx.datastore:datastore-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
Context.createDataStoreएक्सटेंशन फ़ंक्शन को हटा दिया गया है. इसकी जगह, globalDataStore प्रॉपर्टी डेलिगेट का इस्तेमाल किया गया है. अपनी kotlin फ़ाइल में, टॉप लेवल पर globalDataStore को एक बार कॉल करें. उदाहरण के लिए:val Context.myDataStore by dataStore(...)इसे अपनी kotlin फ़ाइल के टॉप लेवल पर रखें, ताकि इसका सिर्फ़ एक इंस्टेंस हो. (I57215, b/173726702)
RxDataStore के फ़ंक्शन, अब DataStore पर एक्सटेंशन फ़ंक्शन के बजाय RxDataStore क्लास में मौजूद हैं. (Idccdb, b/177691248)
अगर आपको EncryptedSharedPreferences (या डायरेक्ट बूट SharedPreferences) को DataStore पर माइग्रेट करना है, तो अब नए SharedPreferencesMigration कंस्ट्रक्टर की मदद से ऐसा किया जा सकता है. इससे आपको SharedPreferences को इंजेक्ट करने की सुविधा मिलती है. (I8e04e, b/177278510)
गड़बड़ियां ठीक की गईं
- अगर एक ही फ़ाइल के लिए कई DataStore चालू हैं, तो DataStore अब एक अपवाद दिखाएगा. अगर आपने अपने DataStore को सिंगलटन के तौर पर मैनेज नहीं किया है या यह पक्का नहीं किया है कि किसी फ़ाइल के लिए, DataStore के दो इंस्टेंस एक साथ चालू न हों, तो आपको DataStore में डेटा को पढ़ने या लिखने के दौरान अपवाद दिख सकते हैं. इन्हें ठीक करने के लिए, अपने DataStore को सिंगलटन के तौर पर मैनेज करें. (Ib43f4, b/177691248)
- कॉलर स्कोप रद्द होने पर, रद्द करने के तरीके को ठीक किया गया. (I2c7b3)
वर्शन 1.0.0-alpha06
13 जनवरी, 2021
androidx.datastore:datastore-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.
नई सुविधाएं
- DataStore के लिए RxJava रैपर जोड़े गए.
datastore-rxjava2/3आर्टफ़ैक्ट में, कोर DataStore API (RxDataStore,RxDataStoreBuilder, औरRxDataMigration) के लिए रैपर होते हैं.datastore-preferences-rxjava2/3आर्टफ़ैक्ट में, Preferences DataStore बनाने के लिए एक बिल्डर होता है.
एपीआई में बदलाव
- CorruptionHandler इंटरफ़ेस को छिपाएं. इसे सार्वजनिक करने की कोई वजह नहीं थी, क्योंकि DataStore फ़ैक्ट्री सिर्फ़ ReplaceFileCorruptionHandler को स्वीकार करती है. (I0b3b3, b/176032264)
preferencesKey<T>(name: String): Key<T>तरीके को हटा दिया गया है. इसकी जगह, हर तरह के काम के लिए अलग-अलग तरीके इस्तेमाल किए जाएंगे. उदाहरण के लिए,preferencesKey<Int>("int")की जगह अबintPreferencesKey("int")का इस्तेमाल किया जाएगा (Ibcfac, b/170311106)
गड़बड़ियां ठीक की गईं
- DataStoreFactory के दस्तावेज़ में सुधार किया गया है. इसमें यह जानकारी नहीं दी गई थी कि डेटास्टोर फ़ाइल, “datastore/” सबडायरेक्ट्री में बनाई जाती है. (Ica222)
वर्शन 1.0.0-alpha05
2 दिसंबर, 2020
androidx.datastore:datastore-*:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डेटास्टोर से एक साथ कई डेटा लिखने की सुविधा के बारे में बेहतर दस्तावेज़ और अपवाद जोड़ें. (Ia98a2, b/173522155, b/173726702)
- अब हम
Serializer.writeTo()को पास किए गए OutputStream को बंद करने की अनुमति देते हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. (I5c9bf, b/173037611)
वर्शन 1.0.0-alpha04
17 नवंबर, 2020
androidx.datastore:datastore-*:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- पैकेजिंग से जुड़ी उस समस्या को ठीक किया गया है जिसकी वजह से, Preference Datastore
1.0.0-alpha03में यह क्रैश होता था:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- क्रैश की शिकायत सबसे पहले यहां की गई थी: b/173036843
- (I4712d, b/173036843)
वर्शन 1.0.0-alpha03
11 नवंबर, 2020
androidx.datastore:datastore-*:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Preferences में अब डबल वैल्यू इस्तेमाल की जा सकती हैं. यह तब काम आता है, जब आपको फ़्लोट से ज़्यादा सटीक वैल्यू की ज़रूरत हो (I5be8f, b/169471808)
एपीआई में बदलाव
- डेटास्टोर के लिए Kotlin डिपेंडेंसी बनाई गई, ताकि कंपाइलेशन तेज़ी से हो सके.
androidx.datastore:datastore-coreमें सिर्फ़ Kotlin के मुख्य एपीआई शामिल हैं. वहीं,androidx.datastore:datastoreमें ऐसे एपीआई शामिल हैं जो Android पर निर्भर हैं. इनमेंSharedPreferencesMigrationऔरContext.createDataStoreकंस्ट्रक्टर शामिल हैं.(I42d75, b/168512698) - Kotlin को तेज़ी से कंपाइल करने के लिए, Preferences DataStore के लिए टारगेट को अलग-अलग किया जा रहा है (Ia3c19)
सीरियलाइज़र को अब डिफ़ॉल्ट वैल्यू के लिए एक नई प्रॉपर्टी की ज़रूरत होती है. इसका इस्तेमाल तब किया जाएगा, जब डिस्क पर कोई डेटा मौजूद न हो. इससे कस्टम सीरियलाइज़र को लागू करना आसान हो जाता है, ताकि उपयोगकर्ताओं को खाली इनपुट स्ट्रीम के लिए खास केस न बनाना पड़े. खाली इनपुट स्ट्रीम, JSON के साथ पार्स नहीं होती हैं.
- साथ ही, अब यह पुष्टि करने के लिए एक जांच की जाती है कि writeTo() को दी गई आउटपुट स्ट्रीम बंद न हो. अगर यह बंद है, तो अपवाद (I16e29) दिखते हैं
SharedPreferencesView के लिए कंस्ट्रक्टर को इंटरनल बनाना. शुरुआत में, इसे सार्वजनिक तौर पर उपलब्ध कराया गया था, ताकि इसकी जांच की जा सके. इसके बजाय, टेस्ट को SharedPreferencesMigration बनाना चाहिए और उसके हिसाब से टेस्ट करना चाहिए. (I93891)
गड़बड़ियां ठीक की गईं
DataStoreFactoryऔरPreferenceDataStoreFactoryपरproduceFileपैरामीटर, अब सूची में आखिरी पैरामीटर है. इसलिए, इसकी मदद से Kotlin ट्रेलिंग लैम्डा सिंटैक्स का इस्तेमाल किया जा सकता है. (Ibe7f1, b/169425442)- Kotlin के लिए, साफ़ तौर पर एपीआई की नई ज़रूरी शर्तों का पालन करना (I5ae1e)
पहले से मालूम समस्याएं
- Preference Datastore,
java.lang.NoClassDefFoundErrorके साथ क्रैश हो जाता है. (b/173036843)
वर्शन 1.0.0-alpha02
14 अक्टूबर, 2020
androidx.datastore:datastore-core:1.0.0-alpha02 और androidx.datastore:datastore-preferences:1.0.0-alpha02 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- datastore-core में म्यूटेशन से बचने के लिए, एक सुरक्षा उपाय जोड़ा गया. म्यूटेशन की वजह से, उन लोगों के लिए डेटास्टोर का इस्तेमाल बंद हो जाता है जो नॉन-प्रोटो/नॉन-प्राथमिकता वाले टाइप के साथ डेटास्टोर का इस्तेमाल करते हैं (I6aa84)
- Preferences.kt में
toStringमेथड जोड़ा गया, ताकि मौजूदा स्थिति को आसानी से डीबग किया जा सके (I96006) DataStore.Preferencesके गलत इस्तेमाल से बचने के लिए, एक अपवाद जोड़ा गया (I1134d)- ऐप्लिकेशन के शुरू होने पर क्रैश होने की गड़बड़ी को ठीक किया गया (I69237, b/168580258)
वर्शन 1.0.0-alpha01
2 सितंबर, 2020
androidx.datastore:datastore-core:1.0.0-alpha01 और androidx.datastore:datastore-preferences:1.0.0-alpha01 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha01 में ये बदलाव शामिल हैं.
नई सुविधाएं
Jetpack DataStore, डेटा स्टोरेज का एक नया और बेहतर समाधान है. इसका मकसद, SharedPreferences को बदलना है. Kotlin कोरूटीन और Flow पर आधारित DataStore, दो अलग-अलग तरीकों से लागू किया जाता है:
- Proto DataStore, जो आपको टाइप किए गए ऑब्जेक्ट सेव करने की सुविधा देता है. ये ऑब्जेक्ट, प्रोटोकॉल बफ़र की मदद से सेव किए जाते हैं
- Preferences DataStore, जो की-वैल्यू पेयर को सेव करता है
डेटा को एसिंक्रोनस तरीके से, लगातार, और ट्रांज़ैक्शन के हिसाब से सेव किया जाता है. इससे SharedPreferences की ज़्यादातर कमियों को दूर किया जा सकता है.