DataStore
آخر تعديل | الإصدار الثابت | إصدار مرشح | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
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
- تم الإبلاغ عن العُطل في الأساس على الرابط التالي: 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. تؤدي عملية التحويل إلى إيقاف استخدام "مستودع البيانات" للمستخدمين الذين يستخدمون "مستودع البيانات" بأنواع غير "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.