डेटास्टोर

SharedPreferences की कुछ कमियों को दूर करते हुए, डेटा को एसिंक्रोनस रूप से, नियमित रूप से, और लेन-देन के रूप में स्टोर करें
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
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 की ज़्यादातर कमियों को दूर करते हुए, डेटा को एसिंक्रोनस रूप से, लगातार, और लेन-देन के रूप में सेव किया जाता है.