DataStore
التعديل الأخير | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | إصدار ألفا |
---|---|---|---|---|
1 أيار (مايو) 2024 | 1.1.1 | - | - | - |
إعلان التبعيات
لإضافة تبعية إلى DataStore، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.
هناك عمليّتا تنفيذ لـ DataStore: الإعدادات المفضّلة و"النموذج الأوّلي". عليك تحديد أحد الخيارَين. يمكنك أيضًا إضافة اعتماديات خالية من Android إلى أي من عمليات التنفيذ.
أضِف التبعيات اللازمة للتنفيذ الذي تحتاج إليه في ملف build.gradle
لتطبيقك أو الوحدة:
الإعدادات المفضّلة في DataStore
رائع
// 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
رائع
// 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 الآن العديد من العمليات للوصول إلى الملف نفسه، مع إتاحة إمكانية الملاحظة على مستوى العمليات.
- تسمح لك واجهة Storage الجديدة بتخصيص طريقة تخزين نماذج البيانات أو ترتيبها بشكل تسلسلي.
- يمكنك الآن استخدام 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
في اختباراتك إذا كنت تستخدم مكتبة اختبار الكوروتينات. تأكَّد من اجتيازTestScope.backgroundScope
عند إعدادDataStore
في اختباراتك لتجنُّب هذه المشكلة.
- لاحظ أن هذا التغيير قد يؤدي إلى تشغيل
- تم إصلاح مشكلة طلبات
updateData
المتداخلة على الجهاز نفسه التي قد تؤدي إلى الإيقاف المؤقت. (b/241760537) - تم جعل
DataStore
لم يعد يعرض الخطأIOExceptions
في حال تعذُّر حذفSharedPreferences
أثناء نقل البيانات. (b/195553816) - تم إصلاح المشكلة المتمثلة في تعذُّر إعادة تسمية الملف أثناء
updateData
في البيئات التي لا تستخدم نظام التشغيل Android JVM. (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) - نقل واجهات برمجة التطبيقات العامة في عمليات تخزين البيانات المتعددة العمليات إلى وحدة تخزين البيانات الأساسية (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) - نقل واجهات برمجة التطبيقات العامة في عمليات تخزين البيانات المتعددة العمليات إلى وحدة تخزين البيانات الأساسية (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) - إضافة دوال المساعدة للحصول على اسم الملف إذا لم تعُد تستخدم تفويض مخزن البيانات أو السياق.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 (أو التشغيل المباشر لهذه الميزة) إلى DataStore، يمكنك الآن إجراء ذلك باستخدام الدالة الإنشائية SharedPreferencesMigrate الجديدة التي تسمح لك بإدخال "SharedPreferences". (I8e04e، b/177278510)
إصلاح الأخطاء
- سيعرض 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 API الأساسية (RxDataStore
وRxDataStoreBuilder
وRxDataMigration
). تحتوي عناصرdatastore-preferences-rxjava2/3
على أداة إنشاء لإنشاء الإعدادات المفضّلة في DataStore.
تغييرات واجهة برمجة التطبيقات
- إخفاء واجهة CorruptionHandler ولم يكن هناك سبب ليكون متاحًا للجميع لأنّ المصنع في DataStore لا يقبل إلا استبدال ReFileCorruptionHandler. (I0b3b3، b/176032264)
- تمت إزالة الطريقة
preferencesKey<T>(name: String): Key<T>
واستبدالها بطرق خاصة بكل نوع متوافق، على سبيل المثالpreferencesKey<Int>("int")
أصبح الآنintPreferencesKey("int")
(Ibcfac، b/170311106)
إصلاح الأخطاء
- يعمل على إصلاح الوثائق الموجودة في DataStoreProduct التي لم تستثني حقيقة إنشاء ملف مخزن البيانات في الدليل الفرعي "datastore/ ". (Ica222)
الإصدار 1.0.0-alpha05
2 كانون الأول (ديسمبر) 2020
تم طرح "androidx.datastore:datastore-*:1.0.0-alpha05
". يحتوي الإصدار 1.0.0-alpha05 على هذه الالتزامات.
إصلاح الأخطاء
- يمكنك إضافة مستندات واستثناءات أفضل حول عمليات الكتابة المتزامنة من مخازن البيانات. (Ia98a2 وb/173522155 وb/173726702)
- نسمح الآن (ولكننا لا نشترط) بإغلاق OUTstream التي تم تمريرها إلى
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 لمخزن البيانات للسماح بالتجميع بشكل أسرع. يحتوي
androidx.datastore:datastore-core
على واجهات برمجة التطبيقات الأساسية في Kotlin فقط، بينما يحتويandroidx.datastore:datastore
على واجهات برمجة التطبيقات التي تعتمد على android (بما في ذلكSharedPreferencesMigration
والأداة الإنشائيةContext.createDataStore
.)(I42d75، b/168512698) - تقسيم أهداف مخزن بيانات الإعدادات المفضَّلة لتجميع بيانات لغة البرمجة كورتلين بشكل أسرع (Ia3c19)
تتطلب البرامج التسلسلية الآن خاصية جديدة للقيمة التلقائية التي سيتم استخدامها في حال عدم توفّر بيانات على القرص. يسهّل ذلك تنفيذ المتسلسلات المخصّصة بحيث لا يضطر المستخدمون إلى استخدام ساحات مشاركات فارغة بحالة خاصة (لا يتم تحليل ساحات الإدخال الفارغة باستخدام تنسيق json).
- كما توجد الآن عملية تحقق للتأكد من أن ساحة مشاركات الإخراج المقدمة إلى writeTo() لم يتم إغلاقها، وإذا تم إغلاقها، فإنها تعرض استثناءات (I16e29)
جعل الدالة الإنشائية لـ SharedPreferencesView داخلية. وقد تم في الأصل نشره بشكل عام للسماح بالاختبار. وبدلاً من ذلك، يجب أن تنشئ الاختبارات SharedPreferences Migration وتُجري الاختبارات استنادًا إلى ذلك. (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 على هذه الالتزامات.
إصلاح الأخطاء
- تمت إضافة حماية ضد التغيير في جوهر تخزين البيانات. يؤدي التبديل إلى إيقاف استخدام مخزن البيانات للأشخاص الذين يستخدمون مخزن البيانات بأنواع غير 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 إلى الكوروتينات والتدفق في Kotlin، ويوفر عمليتين مختلفتين:
- Proto DataStore، الذي يتيح لك تخزين الكائنات المكتوبة (تدعمها مخازن مؤقتة للبروتوكول)
- التفضيلات DataStore، الذي يخزِّن أزواج المفتاح/القيمة
يتم تخزين البيانات بشكل غير متزامن ومتسق ومعامل، للتغلّب على معظم عيوب SharedPreferences.