डेटास्टोर
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
1 मई, 2024 | 1.1.1 | - | - | - |
डिपेंडेंसी तय करना
DataStore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट. Google की Maven रिपॉज़िटरी पढ़ें हमारा वीडियो देखें.
DataStore को दो तरीकों से लागू किया जाता है: प्राथमिकताएं और प्रोटोकॉल. इनमें से किसी एक को चुनें. Android-फ़्री डिपेंडेंसी भी जोड़ी जा सकती हैं लागू करना.
लागू करने के लिए डिपेंडेंसी जोड़ें जो आपको build.gradle
फ़ाइल में चाहिए
:
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.1" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.1") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.1" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.1") }
सुझाव
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.
समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.
वर्शन 1.1
वर्शन 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 मल्टीप्लैटफ़ॉर्म प्रोजेक्ट में, DataStore का इस्तेमाल करने का विकल्प है.
वर्शन 1.1.0-rc01
3 अप्रैल, 2024
androidx.datastore:datastore-*:1.1.0-rc01
रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- अगर नया डेटा पुराने डेटा (d64cfb5) के जैसा ही है, तो डिस्क पर लिखने के लिए
updateData
कॉल ऑप्टिमाइज़ न होने की वजह से परफ़ॉर्मेंस में आने वाली गिरावट को ठीक किया गया - रेस की शर्त को ठीक किया गया है, जहां शुरू करने के दौरान,
MultiProcess
DataStore
अमान्य हो सकता है. ((b/326141553),(094c2dd))
वर्शन 1.1.0-beta02
6 मार्च, 2024
androidx.datastore:datastore-*:1.1.0-beta02
रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये प्रतिबद्धताएं शामिल हैं.
गड़बड़ियां ठीक की गईं
DataStore
पर परफ़ॉर्मेंस में सुधार के बारे में अपडेट मिलने पर ही, सूचनाएं इकट्ठा की जाती हैं. (b/267792241)- ध्यान दें कि अगर कोरूटीन टेस्टिंग लाइब्रेरी का इस्तेमाल किया जा रहा है, तो यह बदलाव आपके टेस्ट में
UncompletedCoroutinesError
को ट्रिगर कर सकता है. इस समस्या से बचने के लिए, जांच मेंDataStore
को शुरू करते समय पक्का करें कि आपनेTestScope.backgroundScope
को पास कर लिया हो.
- ध्यान दें कि अगर कोरूटीन टेस्टिंग लाइब्रेरी का इस्तेमाल किया जा रहा है, तो यह बदलाव आपके टेस्ट में
- उसी इंस्टेंस पर नेस्ट किए गए
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)
गड़बड़ियां ठीक की गईं
- 1.1.0-alpha07 के
@ExperimentalMultiProcessDataStore
एनोटेशन हटाने की प्रोसेस रोल आउट करें. (I8e607)
वर्शन 1.1.0-alpha06
1 नवंबर, 2023
androidx.datastore:datastore-*:1.1.0-alpha06
रिलीज़ हो गया है. वर्शन 1.1.0-alpha06 में ये कमिट हैं.
एपीआई में किए गए बदलाव
createMultiProcessCoordinator
के मुताबिक काम करने के लिए,createSingleProcessCoordinator
फ़ैक्ट्री तरीके को अब फ़ाइल पाथ (String
,java.io.File
, औरokio.Path
) मिलता है. (I211c8, b/305755935)
वर्शन 1.1.0-alpha05
6 सितंबर, 2023
androidx.datastore:datastore-*:1.1.0-alpha05
रिलीज़ हो गया है. वर्शन 1.1.0-alpha05 में ये कमियां हैं.
एपीआई में किए गए बदलाव
- डेटास्टोर
FileStorage
अब सार्वजनिक रूप से उपलब्ध है, इसलिए क्लाइंट कस्टम पैरामीटर दे सकते हैं. (Icb985) InterProcessCoordinator
को स्वीकार करने के लिए,OkioStorage
कंस्ट्रक्टर को बदला गया, ताकिMultiProcessCoordinator
के साथ इसे Android पर इस्तेमाल किया जा सके. (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 में ये कमियां हैं.
ध्यान दें
ध्यान दें कि इस वर्शन में एक ज़रूरी इंटरनल रीफ़ैक्टर शामिल है, जो डेटास्टोर को लागू करने की एक प्रोसेस और एक से ज़्यादा प्रोसेस वाले डेटा को लागू करने की प्रोसेस को मर्ज करता है. कृपया कार्रवाई में होने वाले अनचाहे बदलावों पर नज़र रखें. जैसे, अपडेट की सूचनाओं का समय. ऐसे बदलावों की शिकायत करने के लिए, समस्या को ट्रैक करने वाले कॉम्पोनेंट का इस्तेमाल किया जा सकता है.
नई सुविधाएं
- अब KMM प्रोजेक्ट में
DataStore
का इस्तेमाल किया जा सकता है. ध्यान दें कि Android के अलावा, DataStore के अलावा अन्य टारगेट को अब भी प्रयोग के तौर पर इस्तेमाल किया जा रहा है. हालांकि, हमने वर्शन मर्ज करने का फ़ैसला लिया है, ताकि डेवलपर उन्हें आसानी से आज़मा सकें. - एक से ज़्यादा प्रोसेस वाली सुविधाओं को
androidx.datastore.multiprocess
सेandroidx.datastore.core
में ले जाया गया. - फ़ाइल से जुड़ी कार्रवाइयों के लिए,
Storage
ऑब्जेक्ट वाले DataStore इंस्टेंस बनाने के लिए,androidx.datastore.core.MultiProcessDataStoreFactory
में नया फ़ैक्ट्री तरीका जोड़ें. - ऐसा नया इंटरफ़ेस
InterProcessCoordinator
जोड़ें जिसकी मदद से, एक से ज़्यादा DataStore इंस्टेंस एक-दूसरे से सभी प्रोसेस के बीच इंटरैक्ट कर सकें. ध्यान दें किInterProcessCoordinator
को कई प्रोसेस लागू करने की सुविधा सिर्फ़ Android पर उपलब्ध है.
एपीआई में किए गए बदलाव
- डेटास्टोर-कोर इंटरफ़ेस (I555bb) में
InterProcessCoordinator
कोStorageConnection
में जोड़ें - स्टोरेज का इस्तेमाल करने के लिए, डेटास्टोर-कोर
MultiProcessDataStoreFactory
में एपीआई बदलें. (Iac02f) - सार्वजनिक एपीआई को datastore-multiप्रोसेस में मौजूद डेटास्टोर-कोर (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
फ़ैक्ट्री में ऐसे नए तरीके हैं जो इस स्टोरेज ऑब्जेक्ट को स्वीकार करते हैं.
एपीआई में किए गए बदलाव
- स्टोरेज का इस्तेमाल करने के लिए, डेटास्टोर-कोर
MultiProcessDataStoreFactory
में एपीआई बदलें. (Iac02f) - सार्वजनिक एपीआई को datastore-multiप्रोसेस में मौजूद डेटास्टोर-कोर (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 कोरूटीन और फ़्लो का इस्तेमाल करता है. इससे डेटा को एसिंक्रोनस रूप से, एक जैसा, और लेन-देन के तौर पर स्टोर किया जाता है.
वर्शन 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 फ़ाइल को अनजाने में फ़ाइनल जार (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) - अगर अब datastore डेलिगेट या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 प्रॉपर्टी डेलिगेट से बदल दिया गया है. अपनी कोटलिन फ़ाइल में टॉप लेवल पर एक बार GlobalDataStore को कॉल करें. उदाहरण के लिए:val Context.myDataStore by dataStore(...)
इसे अपनी kotlin फ़ाइल के टॉप लेवल पर रखें, ताकि इसका सिर्फ़ एक इंस्टेंस रहे. (I57215, b/173726702)
RxDataStore फ़ंक्शन अब DataStore पर एक्सटेंशन फ़ंक्शन के बजाय RxDataStore क्लास पर है. (Idccdb, b/177691248)
अगर आप ManagedSharedPreferences (या सीधे बूट 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
आर्टफ़ैक्ट में एक बिल्डर है, जो प्राथमिकताएं DataStore बनाता है.
एपीआई में किए गए बदलाव
- CorrutionHandler इंटरफ़ेस छिपाएं. इसे सार्वजनिक करने की कोई वजह नहीं थी, क्योंकि DataStore फ़ैक्ट्री सिर्फ़ वहीं ReFileCorraptionHandler को स्वीकार करता है. (I0b3b3, b/176032264)
preferencesKey<T>(name: String): Key<T>
तरीके को हटा दिया गया है. साथ ही, इसे हर तरह के काम के लिए खास तरीकों से बदल दिया गया है. उदाहरण के लिए,preferencesKey<Int>("int")
को अबintPreferencesKey("int")
(Ibcfac, b/170311106) कर दिया गया है
गड़बड़ियां ठीक की गईं
- 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 में ये कमियां हैं.
गड़बड़ियां ठीक की गईं
- पैकेजिंग से जुड़ी उस समस्या को ठीक कर दिया गया है जिसकी वजह से प्राथमिकता डेटास्टोर
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)
एपीआई में किए गए बदलाव
- तेज़ी से कंपाइल करने के लिए, डेटास्टोर के लिए पूरी तरह से कोटलिन डिपेंडेंसी बनाई गई.
androidx.datastore:datastore-core
में सिर्फ़ मुख्य kotlin एपीआई शामिल हैं औरandroidx.datastore:datastore
में ऐसे एपीआई शामिल हैं जो android पर निर्भर हैं (इसमेंSharedPreferencesMigration
औरContext.createDataStore
कंस्ट्रक्टर शामिल हैं.)(I42d75, b/168512698) - कॉटलिन को तेज़ी से कंपाइल करने के लिए, डेटा स्टोर में प्राथमिकताओं के हिसाब से टारगेट को अलग-अलग करना (Ia3c19)
सीरियलाइज़र को अब डिफ़ॉल्ट वैल्यू के लिए एक नई प्रॉपर्टी की ज़रूरत होती है. इसका इस्तेमाल डिस्क पर कोई डेटा न होने पर किया जाएगा. इसकी मदद से, कस्टम सीरियलाइज़र सेट करना आसान हो जाता है, ताकि उपयोगकर्ताओं को किसी खास केस वाले खाली इनपुट स्ट्रीम का इस्तेमाल न करना पड़े (खाली इनपुट स्ट्रीम, json के साथ पार्स नहीं होती हैं).
- इसके अलावा, अब इस बात की भी जांच की जाती है कि क्या WriteTo() को दिया गया आउटपुट स्ट्रीम बंद नहीं है. साथ ही, अगर इसे बंद किया जाता है, तो इसमें अपवाद (I16e29) शामिल होते हैं
SharedPreferencesView के लिए कंस्ट्रक्टर बनाया जा रहा है. इसे मूल रूप से टेस्ट करने की अनुमति देने के लिए सार्वजनिक किया गया था. इसके बजाय, जांचों को SharedPreferencesMigration की सुविधा बनानी चाहिए और उसके हिसाब से जांच करनी चाहिए. (I93891)
गड़बड़ियां ठीक की गईं
DataStoreFactory
औरPreferenceDataStoreFactory
परproduceFile
पैरामीटर, अब सूची का आखिरी पैरामीटर है. इसलिए, यह आपको लैम्डा सिंटैक्स के बाद आने वाले कोटलिन का इस्तेमाल करने की अनुमति देता है. (Ibe7f1, b/169425442)- कोटलिन (I5ae1e) के लिए, एपीआई की नई ज़रूरी शर्तों को पूरा करना
आम समस्याएं
java.lang.NoClassDefFoundError
के साथ प्राथमिकता वाला 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 में ये कमियां हैं.
गड़बड़ियां ठीक की गईं
- डेटास्टोर-कोर में म्यूटेशन के ख़िलाफ़ सुरक्षा जोड़ी गई. म्यूटेशन, नॉन-प्रोटो/non-preferences टाइप (I6aa84) वाले डेटास्टोर का इस्तेमाल करने वाले लोगों के लिए डेटास्टोर के इस्तेमाल में गड़बड़ी करता है
- Privacy.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 कोरूटीन और फ़्लो पर बना DataStore दो अलग-अलग तरह से लागू करने की सुविधा देता है:
- Proto DataStore से आपको टाइप किए गए ऑब्जेक्ट को स्टोर करने की सुविधा मिलती है. ये ऑब्जेक्ट, प्रोटोकॉल बफ़र के साथ सुरक्षित होते हैं
- प्राथमिकताएं DataStore, जिसमें की-वैल्यू पेयर स्टोर होते हैं
SharedPreferences की ज़्यादातर कमियों को दूर करते हुए, डेटा को एसिंक्रोनस रूप से, लगातार, और लेन-देन के रूप में सेव किया जाता है.