مخزن البيانات
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
1 مايو 2024 | 1.1.1 | - | - | - |
إعلان التبعيات
لإضافة تبعية إلى DataStore، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.
هناك نوعان من التنفيذين لـ DataStore: التفضيلات وProto: حدِّد أحد الخيارَين التاليَين: يمكنك أيضًا إضافة اعتماديات خالية من Android إلى التنفيذ.
أضِف الاعتماديات المتعلقة بعملية التنفيذ التي تحتاج إليها في ملف build.gradle
للتطبيق أو الوحدة:
الإعدادات المفضّلة في 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
- تم الإبلاغ عن العطل في الأصل هنا: 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) - تقسيم الأهداف في مخزن بيانات الإعدادات المفضّلة لتجميع لغة 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 نوعين مختلفين من التنفيذ:
- Proto DataStore، الذي يتيح لك تخزين الكائنات المكتوبة (المدعومة بالموارد الاحتياطية للبروتوكول)
- DataStore الذي يخزِّن أزواج المفتاح/القيمة
يتم تخزين البيانات بشكل غير متزامن ومتسق ومعاملة، للتغلب على معظم عيوب SharedPreferences.