DataStore
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 22 أكتوبر 2025 | 1.1.7 | - | 1.2.0-beta01 | - |
تحديد الاعتماديات
لإضافة اعتمادية على DataStore، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
هناك طريقتان لتنفيذ DataStore: Preferences وProto. اختَر إمّا حملات التطبيقات أو نوع حملة آخر. يمكنك أيضًا إضافة تبعيات لا تتضمّن Android إلى أي من عمليات التنفيذ.
أضِف الاعتماديات الخاصة بالتنفيذ الذي تحتاج إليه في ملف 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) - استخدِم
androidx.core.util.FunctionفيGuavaDataStore. (I71eae، b/448563999) - أضِف حمولة زائدة للدالة
GuavaDataStore.fromتأخذ Executor بدلاً منCoroutineContext. (I989fa، b/448563183)
إصلاح الأخطاء
- تم إصلاح الخطأ
java.lang.UnsatisfiedLinkErrorعند استخدامDataStoreفي تطبيق تم تحسينه باستخدام R8، ولكنّه لا يستخدمgetDefaultProguardFile('android-proguard-optimize.txt'). (I27d0d، b/434696293) - تم إصلاح مشكلة كان من الممكن أن تؤدي إلى تنفيذ عمليات
GuavaDataStoreبشكلٍ غير صحيح على سلسلة التعليمات التي يتم استدعاؤها (مثل سلسلة التعليمات الرئيسية) بدلاً من أداة توزيع الإدخال/الإخراج المحدّدة. (Ic91ea،b/441801112)
الإصدار 1.2.0-alpha02
7 مايو 2025
تم طرح androidx.datastore:datastore-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة إمكانية استخدام عمليات متعددة في
GuavaDataStore. (e0d608a). - تمت إضافة طريقة مساعدة لإنشاء
GuavaDataStoreمنDataStore. (9af26f4) - تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (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) - أصبح من الممكن الآن استخدام
DataStoreأثناء وضعDirectBoot. لإنشاء مخزن بيانات سيتم استخدامه أثناء وضع "التشغيل المباشر"، يجب إنشاؤه في مساحة التخزين المحمية على الجهاز. يمكن تحقيق ذلك من خلال واجهات برمجة التطبيقات الجديدة التاليةDataStore:createInDeviceProtectedStorage()فيDataStoreFactoryوdeviceProtectedDataStore()فيDataStoreDelegate. (Ib90e56)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
PreferencesFileSerializerالتي تنفّذ واجهةandroidx.datastore.core.Serializerلاستخدامها معFileStorage. (I4c71f3)
إصلاح الأخطاء
- تم حلّ المشكلة
FileNotFoundExceptionفيOkioStorageعند بدء التشغيل من خلال إضافة محاولة ثانية لقراءة البيانات في حال حدوث حالة تزامن. (I43b3fb، b/337870543) - تم تحديد الدالة الإنشائية التلقائية لـ
ReplaceFileCorruptionHandlerمن أجل الاستخدام الشائع للرموز. (I795b05، b/358138957)
الإصدار 1.1
الإصدار 1.1.7
20 مايو 2025
تم طرح androidx.datastore:datastore-*:1.1.7. يتضمّن الإصدار 1.1.7 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة عدم توفّر قواعد Proguard في عنصر Android من
datastore-preferences-core. (3f3f6e، b/413078297)
الإصدار 1.1.6
7 مايو 2025
تم طرح androidx.datastore:datastore-*:1.1.6. يتضمّن الإصدار 1.1.6 هذه التعديلات.
إصلاح الأخطاء
- تم حلّ مشكلة تلف البيانات الوصفية لـ Gradle في الإصدار
1.1.5. حدثت هذه المشكلة بسبب خطأ في DSL الخاص بمكوّن AGP KMP الإضافي الجديد الذي يمنع تضمين البيانات الوصفية تلقائيًا لجميع الأنظمة الأساسية المستهدَفة. يؤدي الخطأ إلى عدم ظهور بعض طرق DataStore Android في إصدارات العملاء. تتضمّن الخطوة استخدام لغة DSL القديمةandroidفيbuild.gradleبدلاً منandroidLibrary. (7801abf)
الإصدار 1.1.5
23 أبريل 2025
تم طرح androidx.datastore:datastore-*:1.1.5. يتضمّن الإصدار 1.1.5 هذه التعديلات.
إصلاح الأخطاء
- لحلّ مشاكل
CorruptionExceptionفيPreferencesDataStore، تم تغيير مساحة التخزين التلقائية من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 هذه التعديلات.
إصلاح الأخطاء
- تم حلّ مشكلة
FileNotFoundExceptionفيOkioStorageحدثت عند بدء تشغيل التطبيق. إذا لم تنجح محاولة قراءة الملف الأولية، سيتم إجراء محاولة ثانية في حال حدوث حالة تزامن بسبب إنشاء الملف بواسطة عملية مختلفة أثناء القراءة الأولية. (I43b3f، b/337870543)
الإصدار 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) - تم إصلاح مشكلة التزامن التي قد تؤدي إلى عدم رصد عمليات الإبطال أثناء عملية الإعداد في
MultiProcessDataStore. ((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) - لم يعُد الأمر Made يعرض الخطأ
IOExceptionsفي حال تعذّر حذفSharedPreferencesأثناء نقل البيانات.DataStore(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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أصبحت خدمة 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 ذات العمليات المتعدّدة. يُرجى الانتباه إلى أي تغييرات محتملة في السلوك غير المقصود (مثل توقيت إشعارات التحديث). يمكنك استخدام مكوّن "أداة تتبُّع المشاكل" للإبلاغ عن هذه التغييرات.
الميزات الجديدة
- يمكنك الآن استخدام
DataStoreفي مشاريع KMM. يُرجى العِلم أنّ إصدارات DataStore غير المخصّصة لنظام التشغيل Android لا تزال تجريبية، ولكن قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين لها. - تم نقل ميزات العمليات المتعددة من
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على طرق جديدة تقبل عنصر Storage هذا.
تغييرات واجهة برمجة التطبيقات
- تغيير واجهات برمجة التطبيقات في 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 إجراءات 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 عن غير قصد إلى ملف 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) - إضافة دوال مساعدة للحصول على اسم الملف إذا لم تعُد تستخدم وكيل مساحة تخزين البيانات أو context.createDataStore (I60f9a)
- أصبحت الدالتان writeTo وreadFrom في Serializer معلّقتَين الآن. إذا كنت قد نفّذت Serializer، عليك تعديل الدوال لتصبح دوال تعليق. (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 property delegate. استدعِ globalDataStore مرة واحدة على مستوى أعلى في ملف Kotlin. مثلاً:val Context.myDataStore by dataStore(...)ضَع هذا الرمز في المستوى الأعلى من ملف Kotlin ليكون هناك مثيل واحد فقط منه. (I57215، b/173726702)
أصبحت دوال RxDataStore الآن في فئة RxDataStore بدلاً من دوال الإضافة في DataStore. (Idccdb، b/177691248)
إذا أردت نقل EncryptedSharedPreferences (أو direct boot SharedPreferences) إلى DataStore، يمكنك الآن إجراء ذلك باستخدام الدالة الإنشائية الجديدة SharedPreferencesMigration التي تتيح لك إدخال SharedPreferences. (I8e04e، b/177278510)
إصلاح الأخطاء
- سيُصدر DataStore الآن استثناءً إذا كانت هناك عدة DataStore نشطة للملف نفسه. إذا لم تكن تدير DataStore ككائن Singleton أو لم تكن تتأكّد من عدم تفعيل مثيلَين من DataStore في الوقت نفسه لملف، قد تظهر لك الآن استثناءات عند القراءة من DataStore أو الكتابة إليه. يمكن حلّ هذه المشاكل من خلال إدارة DataStore ككائن Singleton. (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 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في التغليف تتسبّب في حدوث عطل في 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 خالصة لـ 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. تؤدي عملية التغيير إلى إيقاف استخدام Datastore للمستخدمين الذين يستخدمون Datastore مع أنواع غير أولية أو غير مفضّلة (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، المستندة إلى إجراءات Kotlin الفرعية وFlow، طريقتَي تنفيذ مختلفتَين:
- Proto DataStore، الذي يتيح لك تخزين عناصر مكتوبة (مدعومة بواسطة مخازن البروتوكول)
- Preferences DataStore، الذي يخزّن أزواج المفتاح/القيمة
يتم تخزين البيانات بشكل غير متزامن ومتّسق ومعاملاتي، ما يؤدي إلى التغلّب على معظم عيوب SharedPreferences.