مخزن البيانات

تخزين البيانات بشكل غير متزامن ومتسق ومعاملة، للتغلب على بعض عيوب SharedPreferences
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
1 مايو 2024 1.1.1 - - -

إعلان التبعيات

لإضافة تبعية إلى DataStore، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.

هناك نوعان من التنفيذين لـ DataStore: التفضيلات وProto: حدِّد أحد الخيارَين التاليَين: يمكنك أيضًا إضافة اعتماديات خالية من 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 الآن إمكانية الوصول إلى الملف نفسه لعدة عمليات، مع إتاحة إمكانية الملاحظة في جميع العمليات.
  • تتيح لك واجهة مساحة التخزين الجديدة تخصيص طريقة تخزين نماذج البيانات أو نشرها.
  • يمكنك الآن استخدام DataStore في مشاريع Kotlin المتعددة الأنظمة الأساسية.

الإصدار 1.1.0-rc01

3 أبريل 2024

تم طرح androidx.datastore:datastore-*:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح انخفاض الأداء حيث لم يتم تحسين طلبات updateData على القرص إذا كانت البيانات الجديدة مطابقة للبيانات القديمة (d64cfb5)
  • تم إصلاح شرط سباق حيث قد يفوت 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 في اختباراتك إذا كنت تستخدم مكتبة اختبارات Coroutines. تأكَّد من اجتياز TestScope.backgroundScope عند إعداد DataStore في اختباراتك لتجنُّب هذه المشكلة.
  • تم إصلاح مشكلة استدعاء updateData المدمَج على المثيل نفسه الذي كان يتوقّف مؤقتًا. (b/241760537)
  • تم DataStore عدم طرح IOExceptions مرة أخرى في حالة تعذر حذف SharedPreferences أثناء النقل. (b/195553816)
  • تم إصلاح المشكلة المتمثلة في تعذُّر إعادة تسمية الملف أثناء استخدام updateData في بيئات JVM بخلاف Android. (b/203087070)
  • تم إصلاح المشكلة المتمثلة في عدم معالجة CorruptionException بعد إعداد DataStore. (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 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • مخزن البيانات FileStorage متاح الآن للجميع، لذا يمكن للعملاء توفير مَعلمات مخصّصة. (Icb985)
  • تم تغيير الدالة الإنشائية OkioStorage لقبول InterProcessCoordinator بحيث يمكن استخدامها على Android مع MultiProcessCoordinator. (Iecea3)

إصلاح الأخطاء

  • إصلاح مشكلة عدم تمكّن MultiProcessCoordinator من مراقبة عدة ملفات في الدليل نفسه.
  • حلّ تعذّر رصد الملفات المكرّرة في حال عدم تسوية مسارات الملفات.
  • يجب إصلاح القيم الخاطئة التي يتم عرضها من خلال RxDataStore#isDisposed.
  • إصلاح إعدادات Proguard غير متوفّرة لعنصر واحد (datstore-preferences-core)

الإصدار 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 (b/274786186 وKT-57531).

الإصدار 1.1.0-alpha02

22 آذار (مارس) 2023

تم طرح androidx.datastore:datastore-*:1.1.0-alpha02. يحتوي الإصدار 1.1.0-alpha02 على عمليات التنفيذ هذه.

ملاحظة

تجدر الإشارة إلى أنّ هذا الإصدار يتضمّن أداة إعادة هيكلة داخلية مهمة تدمج عمليات التنفيذ لعمليات تنفيذ DataStore متعددة العمليات وعمليات متعددة. يُرجى مراقبة التغييرات المحتمَلة غير المقصودة في السلوك (مثل توقيت إشعارات التحديث). يمكنك استخدام مكوِّن أداة تتبُّع المشاكل للإبلاغ عن هذه التغييرات.

الميزات الجديدة

  • يمكنك الآن استخدام DataStore في مشاريع KMM. تجدر الإشارة إلى أنّ DataStore الذي يستهدفه غير Android لا يزال في مرحلة تجريبية، ولكنّنا قرّرنا دمج الإصدارات لتسهيل تجربتها على المطوّرين.
  • تم نقل ميزات عمليات متعددة من androidx.datastore.multiprocess إلى androidx.datastore.core.
  • أضِف طريقة جديدة إلى المصنع في androidx.datastore.core.MultiProcessDataStoreFactory لإنشاء مثيلات DataStore باستخدام عناصر Storage لعمليات الملفات.
  • يمكنك إضافة واجهة InterProcessCoordinator جديدة تساعد في التواصل بين مثيلات DataStore المتعددة على مستوى العمليات. يُرجى العِلم أنّ ميزة تنفيذ العمليات المتعدّدة لـ InterProcessCoordinator لا تتوفّر إلا على الأجهزة التي تعمل بنظام التشغيل Android.

التغييرات في واجهة برمجة التطبيقات

  • إضافة InterProcessCoordinator إلى StorageConnection في واجهة مخزن البيانات الأساسية (I555bb)
  • غيِّر واجهات برمجة التطبيقات في MultiProcessDataStoreFactory الأساسية في مخزن البيانات لاستخدام مساحة التخزين. (Iac02f)
  • نقل واجهات برمجة التطبيقات العامة في datastore-multiprocess إلى datastore-core (I76d7c)
  • تم عرض PreferencesSerializer من datastore-preferences-core (I4b788)
  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)

الإصدار 1.1.0-alpha01

9 تشرين الثاني (نوفمبر) 2022

تم طرح androidx.datastore:datastore-*:1.1.0-alpha01. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • يمكنك توفير حالات الاستخدام متعددة العمليات التي يتم فيها ضمان اتّساق البيانات بين DataStore مثيل على مستوى العمليات. أضِف MultiProcessDataStoreFactory#create لإنشاء مثيلات الـ DataStore هذه.
  • واجهة مساحة تخزين جديدة تسمح بإيقاف آلية التخزين الأساسية في Datastore تتوفر عمليات تنفيذ لكل من java.io وokio. يتوفّر لدى DataStore مصنعًا طُرقًا جديدة تقبل عنصر التخزين هذا.

التغييرات في واجهة برمجة التطبيقات

  • غيِّر واجهات برمجة التطبيقات في MultiProcessDataStoreFactory الأساسية في مخزن البيانات لاستخدام مساحة التخزين. (Iac02f)
  • نقل واجهات برمجة التطبيقات العامة في datastore-multiprocess إلى datastore-core (I76d7c)
  • تم عرض PreferencesSerializer من datastore-preferences-core (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 و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 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • إزالة أحمال JVM لطرق kotlin فقط (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)
  • إضافة دوال مساعِدة للحصول على اسم الملف إذا لم تعُد تستخدم المُفوَّض في مخزن البيانات أوtext.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 مرة واحدة في المستوى الأعلى في ملف Kotlin. مثلاً:

    val Context.myDataStore by dataStore(...)
    

    ضع هذا في المستوى الأعلى من ملف kotlin بحيث يكون هناك مثيل واحد فقط منه. (I57215، b/173726702)

  • دوال RxDataStore موجودة الآن في فئة RxDataStore بدلاً من دوال الإضافة في DataStore. (Idccdb، b/177691248)

  • إذا كنت تريد نقل بيانات EncryptedSharedPreferences (أو توجيه ميزة SharedPreferences مباشرةً) إلى DataStore، يمكنك الآن إجراء ذلك باستخدام الدالة الإنشائية الجديدة SharedPreferencesMigration التي تسمح لك بإدخال الإعدادات المُفضَّلة المشتركة. (I8e04e، b/177278510)

إصلاح الأخطاء

  • سيطرح DataStore الآن استثناءً إذا كان هناك عدة متاجر DataStores نشطة للملف نفسه. إذا لم تكن تدير 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 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة برامج تضمين RxJava لـ DataStore. تحتوي عناصر datastore-rxjava2/3 على برامج تضمين لواجهات برمجة تطبيقات DataStore API (RxDataStore وRxDataStoreBuilder وRxDataMigration). تحتوي عناصر datastore-preferences-rxjava2/3 على أداة إنشاء لإنشاء تفضيلات DataStore.

التغييرات في واجهة برمجة التطبيقات

  • إخفاء واجهة CorrowtionHandler. لم يكن هناك سبب متاح للجميع لأنّ مصنع DataStore لا يقبل سوى أداةReplaceFileCorruptionHandler. (I0b3b3، b/176032264)
  • تمت إزالة طريقة preferencesKey<T>(name: String): Key<T> واستبدالها بطرق خاصة بكل نوع متوافق، على سبيل المثال أصبحت السمة preferencesKey<Int>("int") الآن intPreferencesKey("int") (Ibcfac، b/170311106).

إصلاح الأخطاء

  • إصلاح الوثائق في DataStoreStore، التي استبعدت حقيقة إنشاء ملف مخزن البيانات في الدليل الفرعي "مخزن البيانات/" (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(). (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

الإصدار 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 الأساسية فقط ويحتوي androidx.datastore:datastore على واجهات برمجة تطبيقات تعتمد على android (بما في ذلك التركيبة SharedPreferencesMigration وContext.createDataStore).(I42d75، b/168512698)
  • تقسيم الأهداف في مخزن بيانات الإعدادات المفضّلة لتجميع لغة kotlin بشكل أسرع (Ia3c19)
  • تتطلب برامج التسلسل الآن سمة جديدة للقيمة التلقائية التي سيتم استخدامها إذا لم تكن هناك بيانات على القرص. يسهِّل ذلك تنفيذ المتسلسلات المخصَّصة كي لا يضطر المستخدمون إلى تنفيذ تسلسلات بيانات فارغة في حالات خاصة (لا يتم تحليل ساحات المشاركات الفارغة باستخدام ملف json).

    • هناك أيضًا عملية تحقُّق للتأكّد من أنّ مصدر البيانات المُقدّم إلى writeTo() غير مغلق، وفي حال إغلاقه، تظهر استثناءات (I16e29).
  • إنشاء دالة إنشاء لـ SharedPreferencesView داخليًا. كان السماح بالاختبار متاحًا للجميع في الأصل. وبدلاً من ذلك، يجب أن تنشئ الاختبارات أداة SharedPreferencesMigration وتختبرها وفقًا لذلك. (I93891)

إصلاح الأخطاء

  • أصبحت المعلمة produceFile في DataStoreFactory وPreferenceDataStoreFactory الآن هي المعلمة الأخيرة في القائمة، لذا فهي تتيح لك استخدام بنية lambda اللاحقة في kotlin. (Ibe7f1، b/169425442)
  • الالتزام بمتطلبات واجهة برمجة التطبيقات الصريحة الجديدة للغة kotlin (I5ae1e)

المشاكل المعروفة

  • تعطُّل "مخزن البيانات المفضّل" مع 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 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تمت إضافة حماية ضد التغيُّر في البيانات الأساسية في مخزن البيانات. يؤدي التغيُّر إلى إيقاف استخدام مخزن البيانات للأشخاص الذين يستخدمون مخزن البيانات بأنواع غير بروتو أو غير التفضيلات (I6aa84)
  • تمت إضافة طريقة toString إلى Preferences.kt لتسهيل تصحيح الأخطاء في الحالة الحالية (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 نوعين مختلفين من التنفيذ:

يتم تخزين البيانات بشكل غير متزامن ومتسق ومعاملة، للتغلب على معظم عيوب SharedPreferences.