DataStore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 22 अक्टूबर, 2025 | 1.1.7 | - | 1.2.0-beta01 | - |
डिपेंडेंसी का एलान करना
DataStore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
DataStore को दो तरह से लागू किया जा सकता है: Preferences और Proto. इनमें से किसी एक को चुनें. दोनों में से किसी भी तरीके से लागू करने के लिए, Android-free डिपेंडेंसी भी जोड़ी जा सकती हैं.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
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") }
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.2
वर्शन 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के बजाय Executor लेता है. (I989fa, b/448563183)
गड़बड़ियां ठीक की गईं
- R8 की मदद से ऑप्टिमाइज़ किए गए ऐसे ऐप्लिकेशन में
java.lang.UnsatisfiedLinkErrorको ठीक किया गया है जोDataStoreका इस्तेमाल कर रहा है, लेकिन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मॉड्यूल जोड़ा गया है, ताकि Java और GuavaListenableFutureके उपयोगकर्ताओं कोGuavaDataStoreके ज़रिए एपीआई उपलब्ध कराए जा सकें. (Iadd5e0)- अब
DirectBootमोड के दौरानDataStoreका इस्तेमाल किया जा सकता है. डायरेक्ट बूट मोड के दौरान इस्तेमाल किया जाने वाला डेटास्टोर, डिवाइस प्रोटेक्टेड स्टोरेज में बनाया जाना चाहिए. इसके लिए, इन नएDataStoreएपीआई का इस्तेमाल किया जा सकता है:createInDeviceProtectedStorage()inDataStoreFactoryऔरdeviceProtectedDataStore()inDataStoreDelegate. (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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसमें Gradle मेटाडेटा, वर्शन
1.1.5में काम नहीं कर रहा था. यह समस्या, AGP KMP प्लगिन के नए डीएसएल में मौजूद एक बग की वजह से हुई थी. इस बग की वजह से, सभी टारगेट प्लैटफ़ॉर्म के लिए मेटाडेटा अपने-आप शामिल नहीं हो पा रहा था. इस बग की वजह से, 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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट स्टोरेज को
OkioStorageसेFileStorageपर बदलें, ताकिCorruptionExceptionको कम करके विश्वसनीयता को बेहतर बनाया जा सके. (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को KMP के सामान्य कोड से बनाया जा सकता है. (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) - माइग्रेशन के दौरान
SharedPreferencesको मिटाने में गड़बड़ी होने पर,DataStoreअबIOExceptionsनहीं दिखाएगा. (b/195553816) - Android के अलावा अन्य JVM एनवायरमेंट में,
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 रिलीज़ हो गया है.
गड़बड़ियां ठीक की गईं
- Maven आर्टफ़ैक्ट से, डिपेंडेंसी की पाबंदियां हटा दी गई हैं. ऐसा Kotlin Native Targets (b/274786186, KT-57531) में बिल्ड से जुड़ी समस्या को हल करने के लिए किया गया है.
वर्शन 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में ले जाया गया है. - फ़ाइल से जुड़े ऑपरेशन के लिए,
Storageऑब्जेक्ट के साथ DataStore इंस्टेंस बनाने के लिए,androidx.datastore.core.MultiProcessDataStoreFactoryमें नई फ़ैक्ट्री मेथड जोड़ें. - एक नया इंटरफ़ेस
InterProcessCoordinatorजोड़ा गया है. इससे कई DataStore इंस्टेंस, प्रोसेस के बीच कम्यूनिकेट कर पाते हैं. ध्यान दें किInterProcessCoordinatorको एक से ज़्यादा प्रोसेस में लागू करने की सुविधा, सिर्फ़ Android पर उपलब्ध है.
एपीआई में हुए बदलाव
- datastore-core इंटरफ़ेस (I555bb) में
StorageConnectionमेंInterProcessCoordinatorजोड़ा गया - datastore-core
MultiProcessDataStoreFactoryमें मौजूद एपीआई को बदलकर, Storage का इस्तेमाल करें. (Iac02f) - datastore-multiprocess में मौजूद सार्वजनिक एपीआई को datastore-core में ले जाएं (I76d7c)
- datastore-preferences-core से
PreferencesSerializerको दिखाया गया (I4b788) @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में मौजूद एपीआई को बदलकर, Storage का इस्तेमाल करें. (Iac02f) - datastore-multiprocess में मौजूद सार्वजनिक एपीआई को datastore-core में ले जाएं (I76d7c)
- datastore-preferences-core से
PreferencesSerializerको दिखाया गया (I4b788)
वर्शन 1.0.0
वर्शन 1.0.0
4 अगस्त, 2021
androidx.datastore:datastore-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.
1.0.0 वर्शन की मुख्य सुविधाएं
Jetpack DataStore, डेटा स्टोरेज का एक समाधान है. इसकी मदद से, प्रोटोकॉल बफ़र के साथ की-वैल्यू पेयर या टाइप किए गए ऑब्जेक्ट को स्टोर किया जा सकता है. DataStore, Kotlin coroutines और Flow का इस्तेमाल करता है, ताकि डेटा को एसिंक्रोनस तरीके से, लगातार, और ट्रांज़ैक्शन के तौर पर सेव किया जा सके.
वर्शन 1.0.0-rc02
21 जुलाई, 2021
androidx.datastore:datastore-*:1.0.0-rc02 रिलीज़ हो गया है. वर्शन 1.0.0-rc02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- यह साफ़ तौर पर बताएं कि अगर कोई बटन नहीं है, तो
SharedPreferencesMigrationकाम नहीं करता. (Icfa32, b/192824325) - उस गड़बड़ी को ठीक किया गया है जिसमें
SharedPreferencesMigrationकोMIGRATE_ALL_KEYSके साथ बनाने पर, अनुरोध की गई कुंजी मौजूद न होने पर अपवाद दिखता था. (Ie318a, b/192824325)
वर्शन 1.0.0-rc01
30 जून, 2021
androidx.datastore:datastore-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसमें .java फ़ाइल को गलती से फ़ाइनल जार में जोड़ दिया गया था (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)
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, datastore डेलिगेट से कॉन्टेक्स्ट लीक हो सकते थे (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) - अगर अब datastore delegate या context.createDataStore (I60f9a) का इस्तेमाल नहीं किया जा रहा है, तो फ़ाइल का नाम पाने के लिए हेल्पर फ़ंक्शन जोड़ता है
- Serializer के writeTo और readFrom फ़ंक्शन अब निलंबित किए जा रहे हैं. अगर आपने कोई सीरियललाइज़र लागू किया है, तो आपको अपने फ़ंक्शन को सस्पेंड फ़ंक्शन के तौर पर अपडेट करना होगा. (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 फ़ाइल, “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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- अब प्राथमिकताओं में डबल वैल्यू का इस्तेमाल किया जा सकता है. यह तब काम आता है, जब आपको फ़्लोट से ज़्यादा सटीक वैल्यू की ज़रूरत होती है (I5be8f, b/169471808)
एपीआई में हुए बदलाव
- डेटास्टोर के लिए, पूरी तरह से Kotlin पर आधारित डिपेंडेंसी बनाई गई है, ताकि कंपाइल करने की प्रोसेस को तेज़ किया जा सके.
androidx.datastore:datastore-coreमें सिर्फ़ मुख्य Kotlin API शामिल हैं. वहीं,androidx.datastore:datastoreमें ऐसे API शामिल हैं जो Android पर निर्भर करते हैं. इनमेंSharedPreferencesMigrationऔरContext.createDataStoreकंस्ट्रक्टर शामिल हैं.(I42d75, b/168512698) - तेज़ी से Kotlin कंपाइल करने के लिए, प्राथमिकताओं के डेटा स्टोर के लिए टारगेट अलग-अलग करना (Ia3c19)
सीरियलाइज़र को अब डिफ़ॉल्ट वैल्यू के लिए एक नई प्रॉपर्टी की ज़रूरत होती है. इसका इस्तेमाल तब किया जाएगा, जब डिस्क पर कोई डेटा मौजूद न हो. इससे कस्टम सीरियलाइज़र को लागू करना आसान हो जाता है, ताकि उपयोगकर्ताओं को खाली इनपुट स्ट्रीम के लिए खास केस की ज़रूरत न पड़े. खाली इनपुट स्ट्रीम, JSON के साथ पार्स नहीं होती हैं.
- साथ ही, अब यह जांच की जाती है कि writeTo() को दी गई आउटपुट स्ट्रीम बंद तो नहीं है. अगर यह बंद है, तो यह अपवाद (I16e29) दिखाता है
SharedPreferencesView के कंस्ट्रक्टर को इंटरनल बनाया गया है. इसे टेस्टिंग के लिए सार्वजनिक तौर पर उपलब्ध कराया गया था. इसके बजाय, टेस्ट को SharedPreferencesMigration बनाना चाहिए और उसके ख़िलाफ़ टेस्ट करना चाहिए. (I93891)
गड़बड़ियां ठीक की गईं
DataStoreFactoryऔरPreferenceDataStoreFactoryपर मौजूदproduceFileपैरामीटर अब सूची में आखिरी पैरामीटर है. इसलिए, यह आपको Kotlin के ट्रेलिंग लैम्डा सिंटैक्स का इस्तेमाल करने की अनुमति देता है. (Ibe7f1, b/169425442)- Kotlin के लिए, एपीआई से जुड़ी नई ज़रूरी शर्तों (I5ae1e) का पालन करना
ऐसी समस्याएं जिनके बारे में जानकारी पहले से है
java.lang.NoClassDefFoundErrorकी वजह से Preference Datastore क्रैश हो जाता है. (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 में म्यूटेशन से बचाने के लिए एक सुरक्षा सुविधा जोड़ी गई है. म्यूटेशन की वजह से, datastore का इस्तेमाल करने वाले उन लोगों के लिए datastore काम नहीं करता जो datastore का इस्तेमाल non-proto/non-preferences टाइप (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 को बदलना है. DataStore को Kotlin coroutines और Flow पर बनाया गया है. यह दो तरह से लागू किया जा सकता है:
- Proto DataStore, जो टाइप किए गए ऑब्जेक्ट सेव करने की सुविधा देता है. यह प्रोटोकॉल बफ़र पर आधारित है
- Preferences DataStore, जो की-वैल्यू पेयर सेव करता है
डेटा को एसिंक्रोनस तरीके से, लगातार, और लेन-देन के हिसाब से सेव किया जाता है. इससे SharedPreferences की ज़्यादातर कमियां दूर हो जाती हैं.