DataStore

تخزين البيانات بشكل غير متزامن ومتسق ومرتبط بالمعاملات، ما يحلّ بعض مشاكل SharedPreferences
آخر تعديل الإصدار الثابت إصدار مرشح الإصدار التجريبي الإصدار التجريبي الأول
15 كانون الثاني (يناير) 2025 1.1.2 - - -

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

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

هناك طريقتان لتنفيذ DataStore: الإعدادات المفضّلة وProto. اختَر أحدهما أو الآخر. يمكنك أيضًا إضافة تبعيات غير مرتبطة بنظام التشغيل Android إلى أي من ملفَي ملف التنفيذ.

أضِف التبعيات اللازمة لعملية التنفيذ في ملف build.gradle لتطبيقك أو وحدتك:

متجر البيانات المفضّلة

رائع

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation "androidx.datastore:datastore-preferences:1.1.2"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.2"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.2"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.2"
    }
    

Kotlin

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation("androidx.datastore:datastore-preferences:1.1.2")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.2")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.2")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.2")
    }
    

Proto DataStore

رائع

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.2"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.2"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.1.2"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.2"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.2")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.2")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.1.2")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.2")
    }
    

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.1

الإصدار 1.1.2

15 كانون الثاني (يناير) 2025

تم تحرير androidx.datastore:datastore-*:1.1.2. يتضمّن الإصدار 1.1.2 عمليات الربط هذه.

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

  • تحسين وقت الاستجابة لقراءة البيانات المخزّنة (DataStore.data.first()) بمقدار 8 مرات (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 الآن لعمليات متعددة الوصول إلى الملف نفسه، مع إتاحة إمكانية المراقبة على مستوى العمليات.
  • تتيح لك واجهة "التخزين" الجديدة تخصيص طريقة تخزين نماذج البيانات أو تسلسلها.
  • يمكنك الآن استخدام DataStore في مشاريع Kotlin Multiplatform.

الإصدار 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 في بيئات Java Virtual Machine غير المتوافقة مع 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 على هذه المراجعات.

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

  • يتوفّر الآن Datastore 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 Native Targets (b/274786186، KT-57531).

الإصدار 1.1.0-alpha02

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

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

ملاحظة

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

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

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

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

  • إضافة InterProcessCoordinator إلى StorageConnection في واجهة datastore-core (I555bb)
  • غيِّر واجهات برمجة التطبيقات في datastore-core MultiProcessDataStoreFactory لاستخدام Storage. (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 على طُرق جديدة تقبل عنصر التخزين هذا.

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

  • غيِّر واجهات برمجة التطبيقات في datastore-core MultiProcessDataStoreFactory لاستخدام Storage. (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 وظائف التشغيل المتعدّد المتزامن وFlow في Kotlin لتخزين البيانات بشكل غير متزامن ومتّسق ومرتبط بالمعاملات.

الإصدار 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 عن طريق الخطأ إلى حزمة 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 على هذه المراجعات.

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

  • إزالة عمليات تحميل 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)
  • تُضيف دوالّ مساعدة للحصول على اسم الملف إذا لم تعُد تستخدِم مفوّض datastore أو context.createDataStore (I60f9a).
  • تم تعليق 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 التي تتيح لك إدخال 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 على هذه المراجعات.

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

  • تمت إضافة وحدات التفاف RxJava لواجهة DataStore. تحتوي عناصر datastore-rxjava2/3 على أدوات تغليف لواجهات برمجة التطبيقات الأساسية في DataStore (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)
  • نسمح الآن (ولكن لا نشترط) بإغلاق OutputStream الذي تم تمريره إلى 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 خالص لـ datastore للسماح بعمليات تجميع أسرع. يحتوي حِزم 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)

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

  • يتعطل 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. تؤدي عملية التحويل إلى إيقاف استخدام "مستودع البيانات" للمستخدمين الذين يستخدمون "مستودع البيانات" بأنواع غير "proto" أو غير "الإعدادات المفضّلة" (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. يستند DataStore إلى وحدات معالجة المهام المتزامنة وFlow في Kotlin، ويقدّم طريقتَي تنفيذ مختلفتَين:

  • ‫Proto DataStore، التي تتيح لك تخزين عناصر من النوع المحدّد (مدعومة من بروتوكول buffers)
  • Preferences DataStore، الذي يخزن أزواج المفتاح/القيمة

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