فروشگاه داده
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۲۲ اکتبر ۲۰۲۵ | ۱.۱.۷ | - | ۱.۲.۰-بتا۰۱ | - |
اعلام وابستگیها
برای افزودن وابستگی به DataStore، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven گوگل را مطالعه کنید.
دو پیادهسازی برای DataStore وجود دارد: Preferences و Proto . یکی از آنها را انتخاب کنید. همچنین میتوانید وابستگیهای بدون اندروید را به هر دو پیادهسازی اضافه کنید.
وابستگیهای لازم برای پیادهسازی مورد نیاز را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
فروشگاه داده تنظیمات
گرووی
// 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" }
کاتلین
// 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") }
فروشگاه داده پروتو
گرووی
// 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" }
کاتلین
// 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 کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۲
نسخه ۱.۲.۰-بتا۰۱
۲۲ اکتبر ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 شامل این کامیتها است.
تغییرات API
-
CorruptionHandlerعمومی کنید. ( I9ac35 ، b/452406457 ) - از
androidx.core.util.FunctionدرGuavaDataStoreاستفاده کنید. ( I71eae ، b/448563999 ) - یک overload برای
GuavaDataStore.fromاضافه کنید که به جایCoroutineContext، یک Executor دریافت کند ( I989fa ، b/448563183 ).
رفع اشکالات
- رفع خطای
java.lang.UnsatisfiedLinkErrorهنگام استفاده ازDataStoreدر برنامهای که با R8 بهینه شده است، اما ازgetDefaultProguardFile('android-proguard-optimize.txt')استفاده نمیکند. ( I27d0d ، b/434696293 ) - مشکلی که باعث میشد عملیات
GuavaDataStoreبه جای توزیعکننده IO مشخص شده، به اشتباه روی نخ فراخوان (مثلاً نخ اصلی) اجرا شوند، برطرف شد. ( Ic91ea ، b/441801112 )
نسخه ۱.۲.۰-آلفا۰۲
۷ مه ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این کامیتها است.
تغییرات API
- پشتیبانی از چندپردازشی در
GuavaDataStoreاضافه شد. ( e0d608a ). - یک متد کمکی برای ایجاد یک
GuavaDataStoreاز یکDataStoreاضافه شد. ( 9af26f4 ) - پروژههایی که با کاتلین ۲.۰ منتشر شدهاند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( IDb6b5 )
- اضافه بار موجود
datastoreرا با یک متد نماینده جایگزین کنید تا یک پایگاه داده (DataStore) برای استفاده در هنگام بوت مستقیم مقداردهی اولیه شود. ( If71b9 )
نسخه ۱.۲.۰-آلفا۰۱
۲۶ مارس ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- ماژول
datastore-guavaاضافه شد تا APIهای سازگار با جاوا و کاربران GuavaListenableFutureاز طریقGuavaDataStoreدر دسترس قرار گیرند. ( Iadd5e0 ) - استفاده
DataStoreدر حالتDirectBootاکنون پشتیبانی میشود. برای ایجاد یک Datastore که در حالت بوت مستقیم استفاده شود، باید آن را در فضای ذخیرهسازی Device Protected ایجاد کرد. این کار را میتوان با APIهایDataStoreجدید زیر انجام داد:createInDeviceProtectedStorage()درDataStoreFactoryوdeviceProtectedDataStore()درDataStoreDelegate. ( Ib90e56 )
تغییرات API
-
PreferencesFileSerializerاضافه شد که رابطandroidx.datastore.core.Serializerرا برای استفاده باFileStorageپیادهسازی میکند. ( I4c71f3 )
رفع اشکالات
- مشکل
FileNotFoundExceptionدرOkioStorageهنگام راهاندازی با اضافه کردن تلاش دوم برای خواندن دادهها در صورت وجود شرایط رقابتی (Race Condition) حل شد. ( I43b3fb , b/337870543 ) - سازنده پیشفرض برای
ReplaceFileCorruptionHandlerبرای استفاده از کد رایج تعریف شده است. ( I795b05 ، b/358138957 )
نسخه ۱.۱
نسخه ۱.۱.۷
۲۰ مه ۲۰۲۵
androidx.datastore:datastore-*:1.1.7 منتشر شد. نسخه ۱.۱.۷ شامل این کامیتها است.
رفع اشکالات
- مشکل از دست رفتن قوانین Proguard در فایل اندروید مربوط به
datastore-preferences-core( 3f3f6e ، b/413078297 ) برطرف شد.
نسخه ۱.۱.۶
۷ مه ۲۰۲۵
androidx.datastore:datastore-*:1.1.6 منتشر شد. نسخه ۱.۱.۶ شامل این کامیتها است.
رفع اشکالات
- مشکلی که باعث میشد متادیتای Gradle در نسخه
1.1.5دچار مشکل شود، برطرف شد. این مشکل ناشی از اشکالی در افزونه جدید AGP KMP به نام DSL بود که مانع از درج خودکار متادیتای همه پلتفرمهای هدف میشد. این اشکال منجر به این میشود که برخی از متدهای DataStore Android دیگر در نسخههای کلاینت قابل مشاهده نباشند. این رفع اشکال شامل استفاده از DSL قدیمیترandroidدرbuild.gradleبه جایandroidLibraryاست. ( 7801abf )
نسخه ۱.۱.۵
۲۳ آوریل ۲۰۲۵
androidx.datastore:datastore-*:1.1.5 منتشر شد. نسخه ۱.۱.۵ شامل این کامیتها است.
رفع اشکالات
- برای کاهش مشکلات
CorruptionExceptionدرPreferencesDataStore، فضای ذخیرهسازی پیشفرض ازOkioStorageبهFileStorageتغییر یافته است. این تغییر با معرفی یکPreferencesFileSerializerپیادهسازی شده است. b/346197747
نسخه ۱.۱.۴
۲۶ مارس ۲۰۲۵
androidx.datastore:datastore-*:1.1.4 منتشر شد. نسخه ۱.۱.۴ شامل این کامیتها است.
رفع اشکالات
- برای بهبود قابلیت اطمینان با کاهش
CorruptionException، حافظه پیشفرضOkioStorageرا بهFileStorageتغییر دهید. ( I71181 , b/346197747 )
نسخه ۱.۱.۳
۲۶ فوریه ۲۰۲۵
androidx.datastore:datastore-*:1.1.3 منتشر شد. نسخه ۱.۱.۳ شامل این کامیتها است.
رفع اشکالات
- مشکل
FileNotFoundExceptionدرOkioStorageکه هنگام راهاندازی برنامه با آن مواجه میشد، حل شد. اگر تلاش اولیه برای خواندن فایل ناموفق باشد، در صورتی که به دلیل ایجاد فایل توسط فرآیندی متفاوت در طول خواندن اولیه، شرایط رقابتی رخ داده باشد، تلاش دوم انجام خواهد شد. ( I43b3f , b/337870543 )
نسخه ۱.۱.۲
۱۵ ژانویه ۲۰۲۵
androidx.datastore:datastore-*:1.1.2 منتشر شد. نسخه ۱.۱.۲ شامل این کامیتها است.
رفع اشکالات
- تأخیر خواندن گرم (
DataStore.data.first()) را 8 برابر بهبود بخشید. ( 22b8a40 ) -
ReplaceFileCorruptionHandlerمیتوان از کد رایج KMP ایجاد کرد. ( 7632e839 )
نسخه ۱.۱.۱
۱ مه ۲۰۲۴
androidx.datastore:datastore-*:1.1.1 منتشر شد. نسخه ۱.۱.۱ شامل این کامیتها است.
رفع اشکالات
- هشدار اشتباه لینوکس در مورد خطای "وقفه منابع رخ میدهد" در یک مورد خاص که چندین نمونه
DataStoreبا حذف قفل فایل، سعی در نوشتن از فرآیندهای مختلف دارند، کاهش یافت.
نسخه ۱.۱.۰
۱۷ آوریل ۲۰۲۴
androidx.datastore:datastore-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیتها است.
تغییرات عمده از زمان انتشار نسخه ۱.۰.۰
برای اطلاعات بیشتر، لطفاً یادداشتهای انتشار نسخههای آلفا و بتای ۱.۱.۰ را بررسی کنید. برخی از بهروزرسانیهای اصلی در ۱.۱.۰ عبارتند از:
- DataStore اکنون از چندین فرآیند که به یک فایل واحد دسترسی دارند، پشتیبانی میکند و از قابلیت مشاهده در بین فرآیندها نیز پشتیبانی میکند.
- رابط کاربری جدید Storage به شما امکان میدهد نحوه ذخیره یا سریالسازی مدلهای داده خود را سفارشی کنید.
- اکنون میتوانید از DataStore در پروژههای چند پلتفرمی کاتلین استفاده کنید.
نسخه ۱.۱.۰-rc01
۳ آوریل ۲۰۲۴
androidx.datastore:datastore-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیتها است.
رفع اشکالات
- مشکل افت عملکرد که باعث میشد فراخوانیهای
updateDataدر نوشتن روی دیسک، در صورتی که دادههای جدید مشابه دادههای قدیمی باشند ( d64cfb5 ) بهینهسازی نشوند، برطرف شد. - مشکل رقابتی که باعث میشد
MultiProcessDataStoreدر هنگام مقداردهی اولیه، نامعتبرسازیها را از دست بدهد، برطرف شد. (( b/326141553 ),( 094c2dd ))
نسخه ۱.۱.۰-بتا۰۲
۶ مارس ۲۰۲۴
androidx.datastore:datastore-*:1.1.0-beta02 منتشر شد. نسخه 1.1.0-beta02 شامل این کامیتها است.
رفع اشکالات
- بهبود عملکرد در
DataStoreفقط اعلانهای بهروزرسانی را هنگام مشاهده جمعآوری میکند. ( b/267792241 )- توجه داشته باشید که اگر از کتابخانه تست Coroutines استفاده میکنید، این تغییر ممکن است باعث ایجاد
UncompletedCoroutinesErrorدر تستهای شما شود. برای جلوگیری از این مشکل، هنگام مقداردهی اولیهDataStoreدر تستهای خود، مطمئن شوید کهTestScope.backgroundScopeرا ارسال میکنید.
- توجه داشته باشید که اگر از کتابخانه تست Coroutines استفاده میکنید، این تغییر ممکن است باعث ایجاد
- مشکل فراخوانیهای تو در تو
updateDataدر یک نمونه که منجر به بنبست میشد، برطرف شد. ( b/241760537 ) - باعث شد
DataStoreدیگر در صورت عدم موفقیت در حذفSharedPreferencesدر حین مهاجرت،IOExceptionsصادر نکند. ( b/195553816 ) - مشکل عدم موفقیت تغییر نام فایل در حین
updateDataدر محیطهای JVM غیر اندروید برطرف شد. ( b/203087070 ) - مشکلی که باعث میشد
CorruptionExceptionپس از مقداردهی اولیهDataStoreمدیریت نشود، برطرف شد. ( b/289582516 )
نسخه ۱.۱.۰-بتا۰۱
۱۰ ژانویه ۲۰۲۴
androidx.datastore:datastore-*:1.1.0-beta01 بدون هیچ تغییری از زمان 1.1.0-alpha07 منتشر شده است. نسخه 1.1.0-beta01 شامل این کامیتها است.
نسخه ۱.۱.۰-آلفا۰۷
۲۹ نوامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha07 منتشر شد. نسخه 1.1.0-alpha07 شامل این کامیتها است.
تغییرات API
- متدهای
MultiProcessDataStoreFactoryدیگر آزمایشی نیستند. حاشیهنویسی@ExperimentalMultiProcessDataStoreبه طور کامل حذف شده است. ( Ieee54 ، I8e607 )
رفع اشکالات
- حذف حاشیهنویسیهای
@ExperimentalMultiProcessDataStoreرا به نسخه ۱.۱.۰-alpha07 اضافه کنید. ( I8e607 )
نسخه ۱.۱.۰-alpha06
۱ نوامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha06 منتشر شد. نسخه 1.1.0-alpha06 شامل این کامیتها است.
تغییرات API
- متد فاکتوری
createSingleProcessCoordinatorاکنون یک مسیر فایل (String،java.io.Fileوokio.Path) دریافت میکند تا باcreateMultiProcessCoordinatorسازگار باشد. ( I211c8 ، b/305755935 )
نسخه ۱.۱.۰-آلفا۰۵
۶ سپتامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha05 منتشر شد. نسخه 1.1.0-alpha05 شامل این کامیتها است.
تغییرات API
- Datastore
FileStorageاکنون به صورت عمومی در دسترس است، بنابراین کلاینتها میتوانند پارامترهای سفارشی ارائه دهند. ( Icb985 ) - سازنده
OkioStorageتغییر کرد تا یکInterProcessCoordinatorبپذیرد تا بتوان از آن در اندروید باMultiProcessCoordinatorاستفاده کرد. ( Iecea3 )
رفع اشکالات
- رفع مشکل عدم توانایی
MultiProcessCoordinatorدر نظارت بر چندین فایل در یک دایرکتوری. - رفع مشکل عدم شناسایی فایلهای تکراری در صورت نرمالسازی نشدن مسیر فایلها.
- مقادیر اشتباه برگردانده شده از
RxDataStore#isDisposedاصلاح کنید. - پیکربندی proguard از دست رفته برای
datstore-preferences-coreartifact برطرف شد.
نسخه ۱.۱.۰-آلفا۰۴
۵ آوریل ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha04 منتشر شد. نسخه 1.1.0-alpha04 شامل این کامیتها است.
رفع اشکالات
- پیادهسازی داخلی را بهبود دهید تا از شرایط رقابتی که در آن جریان داده
DataStoreممکن است پس از بهروزرسانی، مقدار قدیمیتری را منتشر کند، جلوگیری شود.
نسخه ۱.۱.۰-آلفا۰۳
۲۴ مارس ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha03 منتشر شد.
رفع اشکالات
- محدودیتهای وابستگی از مصنوعات Maven حذف شد تا یک مشکل ساخت در Kotlin Native Targets ( b/274786186 , KT-57531 ) حل شود.
نسخه ۱.۱.۰-آلفا۰۲
۲۲ مارس ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha02 منتشر شد. نسخه 1.1.0-alpha02 شامل این کامیتها است.
توجه داشته باشید
توجه داشته باشید که این نسخه شامل یک اصلاحکننده داخلی مهم است که پیادهسازیها را برای پیادهسازیهای DataStore تکپردازشی و چندپردازشی ادغام میکند. لطفاً مراقب تغییرات رفتاری ناخواسته احتمالی (مثلاً زمان اعلانهای بهروزرسانی) باشید. میتوانید از مؤلفه ردیاب مشکل برای گزارش چنین تغییراتی استفاده کنید.
ویژگیهای جدید
- اکنون میتوانید
DataStoreدر پروژههای KMM استفاده کنید. توجه داشته باشید که اهداف غیراندرویدی DataStore هنوز آزمایشی هستند، اما ما تصمیم گرفتیم نسخهها را ادغام کنیم تا توسعهدهندگان راحتتر بتوانند آنها را امتحان کنند. - ویژگیهای چند پردازشی از
androidx.datastore.multiprocessبهandroidx.datastore.coreمنتقل شدهاند. - یک متد factory جدید در
androidx.datastore.core.MultiProcessDataStoreFactoryاضافه کنید تا نمونههای DataStore را با اشیاءStorageبرای عملیات فایل ایجاد کنید. - یک رابط جدید
InterProcessCoordinatorاضافه کنید که به چندین نمونه DataStore کمک میکند تا بین فرآیندها ارتباط برقرار کنند. توجه داشته باشید که پیادهسازی چند فرآیندیInterProcessCoordinatorفقط در اندروید موجود است.
تغییرات API
- اضافه کردن
InterProcessCoordinatorبهStorageConnectionدر رابط datastore-core ( I555bb ) - APIها را در
MultiProcessDataStoreFactory-core datastore تغییر دهید تا از Storage استفاده کنند. ( Iac02f ) - انتقال APIهای عمومی از datastore-multiprocess به datastore-core ( I76d7c )
-
PreferencesSerializerاز datastore-preferences-core ( I4b788 ) در معرض نمایش قرار گرفت - اضافه کردن حاشیهنویسی
@JvmDefaultWithCompatibility( I8f206 )
نسخه ۱.۱.۰-آلفا۰۱
۹ نوامبر ۲۰۲۲
androidx.datastore:datastore-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- از موارد استفاده چند فرآیندی پشتیبانی کنید که در آنها سازگاری دادهها بین نمونههای
DataStoreدر فرآیندها تضمین میشود. برای ایجاد چنین نمونههایDataStoreMultiProcessDataStoreFactory#createاضافه کنید. - رابط ذخیرهسازی جدید که امکان تغییر مکانیزم ذخیرهسازی زیربنایی برای
Datastoreرا فراهم میکند. پیادهسازیهایی برای java.io و okio ارائه شده است. کارخانههایDataStoreمتدهای جدیدی دارند که این شیء Storage را میپذیرند.
تغییرات API
- APIها را در
MultiProcessDataStoreFactory-core datastore تغییر دهید تا از Storage استفاده کنند. ( Iac02f ) - انتقال APIهای عمومی از datastore-multiprocess به datastore-core ( I76d7c )
-
PreferencesSerializerاز datastore-preferences-core ( I4b788 ) در معرض نمایش قرار گرفت
نسخه ۱.۰.۰
نسخه ۱.۰.۰
۴ آگوست ۲۰۲۱
androidx.datastore:datastore-*:1.0.0 منتشر شد. نسخه ۱.۰.۰ شامل این کامیتها است.
ویژگیهای اصلی نسخه ۱.۰.۰
Jetpack DataStore یک راهکار ذخیرهسازی داده است که به شما امکان میدهد جفتهای کلید-مقدار یا اشیاء تایپشده را با بافرهای پروتکل ذخیره کنید. DataStore از کوروتینهای کاتلین و Flow برای ذخیره دادهها به صورت غیرهمزمان، سازگار و تراکنشی استفاده میکند.
نسخه ۱.۰.۰-rc02
۲۱ ژوئیه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-rc02 منتشر شد. نسخه 1.0.0-rc02 شامل این کامیتها است.
رفع اشکالات
- روشن کنید که
SharedPreferencesMigrationدر صورت عدم وجود کلید اجرا نمیشود. ( Icfa32 , b/192824325 ) - رفع اشکالی که باعث میشد
SharedPreferencesMigrationساخته شده باMIGRATE_ALL_KEYSدر صورت عدم وجود کلید درخواستی، استثنا ایجاد کند. ( Ie318a ، b/192824325 )
نسخه ۱.۰.۰-rc01
۳۰ ژوئن ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیتها است.
رفع اشکالات
- اشکالی که باعث میشد فایل .java سهواً به فایل jar نهایی اضافه شود ( I65d96 ، b/188985637 ) برطرف شد.
نسخه ۱.۰.۰-بتا۰۲
۱۶ ژوئن ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 شامل این کامیتها است.
رفع اشکالات
- رفع
ClassVerificationFailure( b/187450483 )
نسخه ۱.۰.۰-بتا۰۱
۲۱ آوریل ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیتها است.
تغییرات API
- حذف اورلودهای JVM برای متدهای فقط کاتلین ( I2adc7 )
رفع اشکالات
- اشکالی که باعث میشد نمایندگان ذخیرهساز داده منجر به نشت محتوا شوند، برطرف شد ( Ie96fc ، b/184415662 )
نسخه ۱.۰.۰-آلفا۰۸
۱۰ مارس ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 شامل این کامیتها است.
تغییرات API
- اکنون میتوانید یک migration وابسته به context به نمایندهی ویژگی
dataStoreوpreferencesDataStoreخود اضافه کنید. ( I4ef69 , b/173726702 ) - اگر دیگر از datastore delegate یا context.createDataStore ( I60f9a ) استفاده نمیکنید، توابع کمکی برای دریافت نام فایل اضافه میکند.
- توابع writeTo و readFrom سریالایزر اکنون به حالت تعلیق در میآیند. اگر از سریالایزر استفاده کردهاید، باید توابع خود را بهروزرسانی کنید تا به حالت تعلیق درآیند. ( I1e58e )
- نمایندگان املاک برای کاربران RxDataStore اضافه شد. ( Ied768 ، b/173726702 )
رفع اشکالات
- اعمال محدودیتهایی بر استفاده عمومی از APIهای آزمایشی ( I6aa29 ، b/174531520 )
نسخه ۱.۰.۰-آلفا۰۷
۲۴ فوریه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha07 منتشر شد. نسخه 1.0.0-alpha07 شامل این کامیتها است.
تغییرات API
تابع الحاقی
Context.createDataStoreحذف شده و با نماینده ویژگی globalDataStore جایگزین شده است. یک بار در بالاترین سطح فایل کاتلین خود، globalDataStore را فراخوانی کنید. برای مثال:val Context.myDataStore by dataStore(...)این را در بالاترین سطح فایل کاتلین خود قرار دهید تا فقط یک نمونه از آن وجود داشته باشد. ( I57215 ، b/173726702 )
توابع RxDataStore اکنون به جای توابع افزونه در DataStore، در یک کلاس RxDataStore قرار دارند. ( Idccdb , b/177691248 )
اگر میخواهید EncryptedSharedPreferences (یا SharedPreferences بوت مستقیم) را به DataStore منتقل کنید، اکنون میتوانید این کار را با سازنده جدید SharedPreferencesMigration انجام دهید که به شما امکان تزریق SharedPreferences را میدهد. ( I8e04e ، b/177278510 )
رفع اشکالات
- اگر چندین DataStore فعال برای یک فایل وجود داشته باشد، DataStore اکنون یک استثنا ایجاد میکند. اگر DataStore خود را به عنوان Singleton مدیریت نمیکردید یا مطمئن نمیشدید که هیچ دو نمونه DataStore به طور همزمان برای یک فایل فعال نیستند، اکنون ممکن است هنگام خواندن یا نوشتن در DataStore با استثناهایی مواجه شوید. این موارد را میتوان با مدیریت DataStore خود به عنوان Singleton برطرف کرد. ( Ib43f4 , b/177691248 )
- رفع مشکل لغو شدن ارتباط هنگام لغو محدوده تماس گیرنده ( I2c7b3 )
نسخه ۱.۰.۰-alpha06
۱۳ ژانویه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha06 منتشر شد. نسخه 1.0.0-alpha06 شامل این کامیتها است.
ویژگیهای جدید
- بستههای RxJava برای DataStore اضافه شد. آرتیفکتهای
datastore-rxjava2/3شامل بستههای مربوط به APIهای اصلی DataStore (RxDataStore،RxDataStoreBuilderوRxDataMigration) هستند. آرتیفکتهایdatastore-preferences-rxjava2/3شامل یک سازنده برای ساخت Preferences DataStore هستند.
تغییرات API
- رابط CorruptionHandler را مخفی کنید. دلیلی برای عمومی بودن آن وجود نداشت زیرا کارخانه DataStore فقط یک ReplaceFileCorruptionHandler را میپذیرد. ( I0b3b3 , b/176032264 )
- متد
preferencesKey<T>(name: String): Key<T>حذف شده و با متدهای مختص به هر نوع پشتیبانی شده جایگزین شده است، برای مثالpreferencesKey<Int>("int")اکنونintPreferencesKey("int")تبدیل شده است ( Ibcfac , b/170311106 )
رفع اشکالات
- مستندات مربوط به DataStoreFactory که این واقعیت را که فایل datastore در زیرشاخهی “datastore/” ایجاد میشود، از قلم انداخته بود، اصلاح شد. ( Ica222 )
نسخه ۱.۰.۰-آلفا۰۵
۲ دسامبر ۲۰۲۰
androidx.datastore:datastore-*:1.0.0-alpha05 منتشر شد. نسخه 1.0.0-alpha05 شامل این کامیتها است.
رفع اشکالات
- مستندات و استثنائات بهتری در مورد نوشتنهای همزمان از انبارهای داده اضافه کنید. ( Ia98a2 ، b/173522155 ، b/173726702 )
- اکنون اجازه میدهیم (اما الزامی نداریم) که OutputStream ارسال شده به
Serializer.writeTo()بسته شود. ( I5c9bf , b/173037611 )
نسخه ۱.۰.۰-آلفا۰۴
۱۷ نوامبر ۲۰۲۰
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 )
نسخه ۱.۰.۰-آلفا۰۳
۱۱ نوامبر ۲۰۲۰
androidx.datastore:datastore-*:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- تنظیمات اکنون از مقادیر double پشتیبانی میکند (که اگر به دقت بیشتری نسبت به اعداد اعشاری نیاز دارید، مفید است) ( I5be8f ، b/169471808 )
تغییرات API
- یک وابستگی خالص کاتلین برای datastore ایجاد کردم تا کامپایل سریعتر انجام شود.
androidx.datastore:datastore-coreشامل APIهای هسته کاتلین است وandroidx.datastore:datastoreشامل APIهایی است که به اندروید وابسته هستند (از جملهSharedPreferencesMigrationو سازندهContext.createDataStore.)( I42d75 , b/168512698 ) - تقسیم اهداف برای ذخیره دادههای ترجیحی برای کامپایل سریعتر کاتلین ( Ia3c19 )
سریالایزرها اکنون به یک ویژگی جدید برای مقدار پیشفرض نیاز دارند که در صورت عدم وجود داده روی دیسک استفاده خواهد شد. این امر پیادهسازی سریالایزرهای سفارشی را آسانتر میکند، بنابراین کاربران مجبور نیستند جریانهای ورودی خالی را به صورت خاص در نظر بگیرند (جریانهای ورودی خالی با json تجزیه نمیشوند).
- همچنین اکنون بررسیای وجود دارد تا تأیید شود که جریان خروجی ارائه شده به writeTo() بسته نشده است و اگر بسته باشد، استثنائاتی ( I16e29 ) ایجاد میکند.
ساخت سازنده برای SharedPreferencesView به صورت داخلی. در ابتدا برای امکان آزمایش، عمومی بود. در عوض، آزمایشها باید یک SharedPreferencesMigration بسازند و آن را آزمایش کنند. ( I93891 )
رفع اشکالات
- پارامتر
produceFileدرDataStoreFactoryوPreferenceDataStoreFactoryاکنون آخرین پارامتر در لیست است، بنابراین به شما امکان میدهد از سینتکس لامبدا دنبالهدار کاتلین استفاده کنید. ( Ibe7f1 ، b/169425442 ) - پیروی از الزامات صریح API جدید برای کاتلین ( I5ae1e )
مشکلات شناخته شده
- پایگاه داده Preference با خطای
java.lang.NoClassDefFoundErrorاز کار میافتد. ( b/173036843 )
نسخه ۱.۰.۰-آلفا۰۲
۱۴ اکتبر ۲۰۲۰
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 ) برطرف شد.
نسخه ۱.۰.۰-آلفا۰۱
۲ سپتامبر ۲۰۲۰
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 ساخته شده است، دو پیادهسازی متفاوت ارائه میدهد:
- Proto DataStore، که به شما امکان میدهد اشیاء تایپشده را ذخیره کنید (با پشتیبانی بافرهای پروتکل )
- انبار داده تنظیمات، که جفتهای کلید-مقدار را ذخیره میکند
دادهها به صورت غیرهمزمان، مداوم و تراکنشی ذخیره میشوند و بر اکثر معایب SharedPreferences غلبه میکنند.