DataStore
| جدیدترین بهروزرسانی | نسخه پایدار | نامزد انتشار | انتشار نسخه بتا | نسخه آلفا |
|---|---|---|---|---|
| ۲۱ اکتبر ۲۰۲۶ | ۱.۳.۰ | - | - | - |
اعلام وابستگیها
برای افزودن وابستگی به DataStore، باید مخزن Google Maven را به پروژهتان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.
DataStore گزینههای مختلفی برای سریالسازی ارائه میدهد، یکی از آنها را انتخاب کنید. همچنین میتوانید وابستگیهای بدون Android را به هریک از پیادهسازیها اضافه کنید.
وابستگیهای پیادهسازی موردنیازتان را در فایل build.gradle
برای برنامه یا واحدتان اضافه کنید:
Preferences DataStore
خطوط زیر را به بخش وابستگیهای فایل gradle خود اضافه کنید:
شیک
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation "androidx.datastore:datastore-preferences:1.3.0" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-preferences-core:1.3.0" }
کاتلین
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation("androidx.datastore:datastore-preferences:1.3.0") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-preferences-core:1.3.0") }
برای افزودن پشتیبانی اختیاری RxJava، وابستگیهای زیر را اضافه کنید:
شیک
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.3.0" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.3.0" }
کاتلین
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.3.0") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.3.0") }
DataStore
خطوط زیر را به بخش وابستگیهای فایل gradle خود اضافه کنید:
شیک
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation "androidx.datastore:datastore:1.3.0" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-core:1.3.0" }
کاتلین
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation("androidx.datastore:datastore:1.3.0") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-core:1.3.0") }
وابستگیهای اختیاری زیر را برای پشتیبانی RxJava اضافه کنید:
شیک
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.3.0" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.3.0" }
کاتلین
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.3.0") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.3.0") }
برای سریالسازی محتوا، وابستگیهایی را برای سریالسازی «بافرهای پروتکل» یا JSON اضافه کنید.
سریالسازی JSON
برای استفاده از سریالسازی JSON، موارد زیر را به فایل Gradle خود اضافه کنید:
شیک
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0" }
کاتلین
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") }
سریالسازی Protobuf
برای استفاده از سریالسازی Protobuf، موارد زیر را به فایل Gradle اضافه کنید:
شیک
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation "com.google.protobuf:protobuf-kotlin-lite:4.32.1" } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
کاتلین
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation("com.google.protobuf:protobuf-kotlin-lite:4.32.1") } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
بازخورد
بازخوردتان به بهبود Jetpack کمک میکند. اگر مشکل جدیدی پیدا کردید یا ایدهای برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبلاز ایجاد مشکل جدید، مشکلات موجود در این کتابخانه را بررسی کنید. با کلیک کردن روی دکمه ستاره میتوانید رأی خود را به مشکل موجود اضافه کنید.
برای اطلاعات بیشتر، سند Issue Tracker را ببینید.
نسخه ۱.۳
نسخه ۱.۳.۰
۲۱ اکتبر ۲۰۲۶
androidx.datastore:datastore-*:1.3.0 منتشر شده است. نسخه ۱.۳.۰ حاوی این ارسالها است.
تغییرات مهم از نسخه ۱.۲.۰:
ویژگیهای جدید
پشتیبانی از فضای ذخیرهسازی وب: گزینههای فضای ذخیرهسازی وب KMP معرفی شد که امکان پایداری دادههای انعطافپذیر را در اهداف وب فراهم میکند:
sessionStorage(WebSessionStorage): امکان پایداری موقت دادهها را در یک برگه مرورگر فراهم میکند.localStorage(WebLocalStorage): فضای ذخیرهسازی دائمی را با اعلانهای رویداد بینبرگهای و همگامسازی فعال میکند.- سیستم فایل خصوصی مبدأ (
WebOpfsStorage): پشتیبانی از سیستم فایل را ازطریق OPFS ارائه میدهد، که دارای ورودی/خروجی فایل ناهمگام و اعلانهای بینبرگهای است.
پشتیبانی از رمزگذاری (
datastore-tink): مصنوع جدیدandroidx.datastore:datastore-tinkاضافه شد که بااستفاده از کتابخانه Tink از رمزگذاری پشتیبانی میکند. این codelabAeadSerializerرا برای رمزگذاری و رمزگشایی کردن دادهها بااستفاده از «رمزگذاری اصالتسنجیشده با دادههای مرتبط» (AEAD) معرفی میکند.پشتیبانی از ردیابی: پشتیبانی از
androidx.tracingدر پلاتفرم هدف Android اضافه شد.میانای برنامهسازی کاربردی
DataStore.Builder:DataStore.Builder<T>بهعنوان جایگزین مدرن و مقیاسپذیر برایDataStoreFactoryمعرفی شد. برای همروندی ساختاریافته بهبودیافته، بهجایCoroutineScopeبهCoroutineContextنیاز دارد.نمایههای مبنا: نمایههای مبنا به
datastoreاضافه شد تا عملکرد راهاندازی بهبود یابد.
تغییرات میانای برنامهسازی کاربردی
- میاناهای برنامهسازی کاربردی
DataStore.Builder،ReThrowCorruptionHandler، وInterProcessCoordinatorبهpublicبهروزرسانی شدهاند.
رفع اشکالها و بهبودها
اطلاعات مسیر فایل اصلی به پیامهای
CorruptionExceptionاضافه شد تا اشکالزدایی درطول خرابیهای تجزیه بهبود یابد.با اعمال ترتیب سختگیرانه «خروج بهترتیب ورود» (FIFO) برای بهروزرسانیها، ازدست رفتن احتمالی دادهها در
GuavaDataStoreاصلاح شد.
نسخه 1.3.0-rc01
۱۲ اکتبر ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-rc01 منتشر شده است. نسخه 1.3.0-rc01 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
- استفاده از
WindowCompat#enableEdgeToEdge(Window)بهجایEdgeToEdge#enable()(Ibff3e)
رفع اشکالها
- وابستگی
androidx.lifecycle:lifecycle-runtimeبه نسخه ۲.۱۰.۰ بهروز شد. این نسخه برای اجرای بررسیهای lint زمان اجرای چرخه حیات بستهبندیشده با AGP نسخه 9.5.0-alpha04 یا جدیدتر لازم است. (I99bfd, b/556807521)
نسخه 1.3.0-alpha11
۹ سپتامبر ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha11 منتشر شده است. نسخه 1.3.0-alpha11 حاوی این موارد ثبت است.
رفع اشکالها
- مسیر فایل اصلی در پیامهای
CorruptionExceptionکه درطول خطاهای تجزیه اولویتDataStoreایجاد میشوند گنجانده نشده است. (Ia9e8f)
نسخه 1.3.0-alpha10
۲۹ ژوئیه ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha10 منتشر شده است. نسخه 1.3.0-alpha10 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
GeneralSecurityException in AeadSerializer is now wrapped in CorruptionException for better CorruptionHandler integration.(I26e56، b/514941919)
نسخه 1.3.0-alpha09
۶ مه ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha09 منتشر شده است. نسخه 1.3.0-alpha09 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
ReThrowCorruptionHandlerرا عمومی کنید. (I137bb، b/427722902)- چرخه حیات ردیابی را با ردیابی سیستم سازگار کنید. (Ib391b)
نسخه 1.3.0-alpha08
۲۲ آوریل ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha08 منتشر شده است. نسخه 1.3.0-alpha08 حاوی این ارسالها است.
ویژگیهای جدید
- پشتیبانی از Origin Private File System (OPFS) در DataStore برای پلاتفرمهای وب اضافه شد. این پیادهسازی
WebOpfsStorageرا معرفی میکند و شامل پشتیبانی معماری برای ورودی/خروجی فایل ناهمگام، اعلانهای بینبرگهای بااستفاده ازBroadcastChannelAPI، و قفل کردن توزیعشده ازطریقWeb Locks APIبومی برای دسترسی نوشتن انحصاری است. Id7f5807 b/316376114
تغییرات میانای برنامهسازی کاربردی
- میاناهای برنامهسازی کاربردی
WebLocalStorageوWebSessionStorageرا برای مدیریت صریح نوع فضای ذخیرهسازی در محیطهای وب معرفی کردیم. I35fa259b b/316376114
نسخه 1.3.0-alpha07
۱۱ مارس ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha07 منتشر شده است. نسخه 1.3.0-alpha07 حاوی این ارسالها است.
ویژگیهای جدید
- پشتیبانی از رمزگذاری: مصنوع جدید
androidx.datastore:datastore-tinkمعرفی شد که از رمزگذاری پایگاه داده شما بااستفاده از کتابخانه Tink پشتیبانی میکند. این ماژولAeadSerializerرا معرفی میکند که کلاس پوشاننده جدیدی است کهSerializer<T>را پیادهسازی میکند و از «رمزگذاری اصالتسنجیشده با دادههای مرتبط» (AEAD) در Tink برای رمزگذاری و رمزگشایی دادهها استفاده میکند.AeadSerializerبرای استفاده در پلاتفرمهای هدف JVM و Android دردسترس است. DataStoreBuilder API جدید:DataStore.Builder<T>بهعنوان جایگزین مقیاسپذیر برایDataStoreFactoryمعرفی شد. با این میانای برنامهسازی کاربردی جدید، کاربران اکنون میتوانند منطق خرابی خود را ازطریقsetCorruptionHandlerارائه دهند. علاوهبراین،BuilderAPI نیاز دارد کهDataStoreبااستفاده ازCoroutineContextبهجایCoroutineScopeمقداردهی اولیه شود، که این بهبودی برای همزمانی ساختاریافته است، زیرا به فراخوانندگان اجازه میدهد رفتار اجرا (مانند Dispatchers خاص) را بدون مجبور کردنDataStoreبه مدیریت نامناسب یا محدود شدن توسط چرخه عمر محدوده فراخواننده تعریف کنند.توجه: توصیه میکنیم همه کاربران از
DataStoreFactoryبه میاناهای برنامهسازی کاربردی جدیدDataStore.Builderمنتقل شوند. با الزامCoroutineContextبهجایCoroutineScope، میانای برنامهسازی کاربردی همزمانی ساختاریافته بهتری را اعمال میکند. این کار تضمین میکند که عملیات DataStore به چرخههای حیات کوتاه UI (مثلاًviewModelScope) محدود نمیشوند و از لغو زودهنگام و ازدست رفتن احتمالی دادهها جلوگیری میکند.هشدار: مطمئن شوید که
CoroutineContextارائهشده به Builder دارایJobباشد و در محدوده برنامه باشد. اگر زمینه لغو شود، عملیات داخلیDataStoreپیشاز موعد خاتمه مییابد.
تغییرات میانای برنامهسازی کاربردی
خروجی ساختاریافته جدید
androidx.datastore:datastore-tinkبرای پشتیبانی از رمزگذاریDataStoreمعرفی شد. (Ic106d، b/167697691)برای رمزگذاری دادهها بااستفاده از Tink، این مراحل را دنبال کنید:
ایجاد کلید بااستفاده از Tink APIs:
val keysetHandle = AndroidKeysetManager.Builder() .withSharedPref(applicationContext, "keyset", "keyset_prefs") .withKeyTemplate(KeyTemplate.createFrom(PredefinedAeadParameters.AES256_GCM)) .withMasterKeyUri("android-keystore://master_key") .build() .keysetHandleAeadSerializerایجاد کنید که سریالساز موجود را دربرگیرد:val aeadSerializer = AeadSerializer( // Use tink APIs to create an Aead object to encrypt/decrypt data. aead = keysetHandle.getPrimitive( RegistryConfiguration.get(), Aead::class.java, ), // AeadSerializer can wrap an existing serializer. wrappedSerializer = ExistingSerializer, // Specify a unique name to prevent a ciphertext swapping attack. associatedData = "settings.json".encodeToByteArray(), )هنگام ایجاد نمونه datastore، از این
aeadSerializerبهجای serializer خود استفاده کنید:val dataStore = dataStore( fileName = "settings.json", serializer = aeadSerializer, scope = scope, )
DataStore.Builder<T>بهعنوان جایگزین مدرن و مقیاسپذیر برایDataStoreFactoryمعرفی شد. (I3b110، b/267785821، b/400507108، b/368385681، b/427722902، b/370838564، b/167697691)
نسخه 1.3.0-alpha06
۲۵ فوریه ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha06 منتشر شده است. نسخه 1.3.0-alpha06 حاوی این ارسالها است.
ویژگیهای جدید
-
DataStoreاکنون ازandroidx.tracingدر پلاتفرم هدف Android پشتیبانی میکند. میتوانید با ارائه نمونهandroidx.tracing.Tracerبه تابعDataStoreFactory.createWithTracing()، یکDataStoreبا ردیابی ایجاد کنید. (I71bc2، b/427722902)
نسخه 1.3.0-alpha05
۲۸ ژانویه ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha05 منتشر شده است. نسخه 1.3.0-alpha05 حاوی این ارسالها است.
ویژگیهای جدید
- نمایههای مبنا به پایگاه داده اضافه شد. (3916245,b/469127532).
- Implement WASM/JS support in DataStore via
localStorage. این امر با فعال کردن اعلانهای رویداد و همگامسازی بینبرگهای، مزیت متمایزی نسبتبه پیادهسازیsessionStorageموجود ایجاد میکند. (I67246، b/441511612)
نسخه 1.3.0-alpha04
۱۴ ژانویه ۲۰۲۶
androidx.datastore:datastore-*:1.3.0-alpha04 منتشر شده است. نسخه 1.3.0-alpha04 حاوی این موارد ارسال است.
تغییرات میانای برنامهسازی کاربردی
- تابع کپی کاربردی اضافه شد که میتوان از آن برای بهروزرسانی دادههای «اولویتها»
DataStoreاستفاده کرد. (I70a18، b/467120382)
رفع اشکالها
- مشکلی را که در آن دادههای دودویی ممکن بود درطول ذخیرهسازی با جایگزین کردن مدیریت رشته UTF-8 با کدبندی Base64 برای وب بدشکل شوند برطرف کردیم. (Ie3178، b/473790107)
نسخه 1.3.0-alpha03
۱۷ دسامبر ۲۰۲۵
androidx.datastore:datastore-*:1.3.0-alpha03 منتشر شده است. نسخه 1.3.0-alpha03 حاوی این موارد ارسال است.
رفع اشکالها
- مشکل ناموفق بودن تغییر نام فایل ذخیرهسازی داده موقت برطرف شد. (I94f89، b/203087070)
- مشکل مربوط به جلوگیری از بهروزرسانیهای ازدسترفته درطول خواندن/نوشتن همزمان برطرف شد. ممکن است شرایط رقابتی بین جمعآورنده جدید در
DataStore.dataو تماس همزمانupdateDataرخ دهد و باعث شود جمعآورنده مقدار جدید را ازدست بدهد. (I6a427، b/431787506)
نسخه 1.3.0-alpha02
۳ دسامبر ۲۰۲۵
androidx.datastore:datastore-*:1.3.0-alpha02 منتشر شده است. نسخه 1.3.0-alpha02 حاوی این موارد ثبت است.
رفع اشکالها
- افزودن هدف js() به
androidx.datastore. (I1f62b، b/441511612) - ترتیب «خروج بهترتیب ورود» را در بهروزرسانیهای
GuavaDataStoreاعمال کنید. (I6fd00، b/451491257)
نسخه 1.3.0-alpha01
۱۹ نوامبر ۲۰۲۵
androidx.datastore:datastore-*:1.3.0-alpha01 منتشر شده است. نسخه 1.3.0-alpha01 حاوی این ارسالها است.
ویژگیهای جدید
- پشتیبانی از KMP Web در
DataStoreبااستفاده ازsessionStorageAPI اضافه شد. این ویژگی بهDataStoreاجازه میدهد دادهها را بهطور موقت در یک برگه مرورگر حفظ کند. (I60fad، b/316376114)
نسخه ۱.۲
نسخه ۱.۲.۱
۱۱ مارس ۲۰۲۶
androidx.datastore:datastore-*:1.2.1 منتشر شده است. نسخه ۱.۲.۱ حاوی این ارسالها است.
بدون تغییر
- این نسخهٔ پخش شامل رفع اشکالهای جزئی زیرساخت است و هیچ تغییر رفتاری یا میانای برنامهسازی کاربردی DataStore نسبتبه نسخه ۱.۲.۰ ندارد.
نسخه ۱.۲.۰
۱۹ نوامبر ۲۰۲۵
androidx.datastore:datastore-*:1.2.0 منتشر شده است. نسخه ۱.۲.۰ حاوی این ثبتها است.
تغییرات عمده از زمان انتشار نسخه ۱.۱.۰
پشتیبانی Java/Guava:
- ماژول جدید
datastore-guavaرا برای نمایش میاناهای برنامهسازی کاربردی سازگار با کاربران Java و GuavaListenableFutureازطریقGuavaDataStoreاضافه کردیم. - پشتیبانی چندفرایندی در
GuavaDataStoreاضافه شد. - یک سربارگذاری برای
GuavaDataStore.fromاضافه شد کهExecutorجاوا (بهجایCoroutineContext) را میپذیرد و ازandroidx.core.util.Functionاستفاده میکند.
پشتیبانی از راهاندازی مستقیم:
- اکنون استفاده از DataStore درحین حالت «راهاندازی مستقیم» پشتیبانی میشود. میاناهای برنامهسازی کاربردی جدیدی مثل
createInDeviceProtectedStorage()درDataStoreFactoryوdeviceProtectedDataStore()درDataStoreDelegateامکان ایجاد DataStore را در فضای ذخیرهسازی «محافظتشده دستگاه» فراهم میکنند.
تغییرات فضای ذخیرهسازی و میانای برنامهسازی کاربردی:
-
PreferencesFileSerializerاضافه شد کهandroidx.datastore.core.Serializerرا برای استفاده باFileStorageپیادهسازی میکند. - سازنده پیشفرض برای
ReplaceFileCorruptionHandlerرا برای استفاده از کد مشترک تعریف کرد.
رفع اشکالها:
java.lang.UnsatisfiedLinkErrorهنگام استفاده ازDataStoreدر برنامهای که با R8 بهینهسازی شده است اما از فایل ProGuard استاندارد استفاده نمیکند برطرف شد.- مشکلی که باعث میشد عملیات
GuavaDataStoreبهجای توزیعکننده IO مشخصشده، بهاشتباه در رشته تماس (مثلاً رشته اصلی) اجرا شود برطرف شد. - مشکل
FileNotFoundExceptionدرOkioStorageهنگام راهاندازی با افزودن تلاش دوم برای خواندن دادهها درصورت وجود شرایط رقابتی برطرف شد.
نسخه 1.2.0-rc01
۵ نوامبر ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-rc01 منتشر شده است. نسخه 1.2.0-rc01 حاوی این ارسالها است.
نسخه 1.2.0-beta01
۲۲ اکتبر ۲۰۲۵
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اضافه کنید که بهجایCoroutineContext، یک Executor دریافت کند. (I989fa، b/448563183)
رفع اشکالها
- رفع
java.lang.UnsatisfiedLinkErrorهنگام استفاده ازDataStoreدر برنامهای که با R8 بهینهسازی شده است، اما ازgetDefaultProguardFile('android-proguard-optimize.txt')استفاده نمیکند. (I27d0d، b/434696293) - مشکلی که باعث میشد عملیات
GuavaDataStoreبهجای توزیعکننده ورودی/خروجی مشخصشده، بهاشتباه در رشته فراخوان (مثلاً رشته اصلی) اجرا شود برطرف شد. (Ic91ea، b/441801112)
نسخه 1.2.0-alpha02
۷ مه ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-alpha02 منتشر شده است. نسخه 1.2.0-alpha02 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
- پشتیبانی چندفرایندی در
GuavaDataStoreاضافه شده است. (e0d608a). - روش کمکی برای ایجاد
GuavaDataStoreازDataStoreاضافه شد. (9af26f4) - پروژههای منتشرشده با Kotlin 2.0 برای استفاده به KGP 2.0.0 یا جدیدتر نیاز دارند. (Idb6b5)
- سرریز
datastoreموجود را با روش نماینده جایگزین کنید تا DataStore را برای استفاده درحین راهاندازی مستقیم مقداردهی اولیه کند. (If71b9)
نسخه 1.2.0-alpha01
۲۶ مارس ۲۰۲۵
androidx.datastore:datastore-*:1.2.0-alpha01 منتشر شده است. نسخه 1.2.0-alpha01 حاوی این commitها است.
ویژگیهای جدید
- ماژول
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)
نسخه ۱.۱
نسخه ۱.۱.۷
۲۰ مه ۲۰۲۵
androidx.datastore:datastore-*:1.1.7 منتشر شده است. نسخه ۱.۱.۷ حاوی این ثبتها است.
رفع اشکالها
- مشکل نبود قوانین Proguard در مصنوع Android
datastore-preferences-coreبرطرف شد. (3f3f6e، b/413078297)
نسخه ۱.۱.۶
۷ مه ۲۰۲۵
androidx.datastore:datastore-*:1.1.6 منتشر شده است. نسخه ۱.۱.۶ حاوی این ارسالها است.
رفع اشکالها
- مشکلی که در آن فراداده Gradle در نسخه
1.1.5خراب بود برطرف شد. این مشکل بهدلیل وجود اشکالی در DSL افزونه AGP KMP جدید بود که مانع از گنجاندن خودکار فراداده برای همه پلاتفرمهای هدف میشد. این اشکال باعث میشود برخیاز روشهای 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 منتشر شده است. نسخه ۱.۱.۴ حاوی این ثبتها است.
رفع اشکالها
- فضای ذخیرهسازی پیشفرض را از
OkioStorageبهFileStorageتغییر دهید تا با کاهشCorruptionException، قابلیت اطمینان بهبود یابد. (I71181، b/346197747)
نسخه ۱.۱.۳
۲۶ فوریه ۲۰۲۵
androidx.datastore:datastore-*:1.1.3 منتشر شده است. نسخه ۱.۱.۳ حاوی این ثبتها است.
رفع اشکالها
- مشکل
FileNotFoundExceptionدرOkioStorageکه هنگام راهاندازی برنامه پیش میآمد برطرف شد. اگر تلاش اولیه برای خواندن فایل ناموفق باشد، تلاش دومی انجام خواهد شد تا درصورت وقوع شرایط رقابتی بهدلیل ایجاد فایل توسط فرایند دیگری درطول خواندن اولیه، مشکل برطرف شود. (I43b3f، b/337870543)
نسخه ۱.۱.۲
۱۵ ژانویه ۲۰۲۵
androidx.datastore:datastore-*:1.1.2 منتشر شده است. نسخه ۱.۱.۲ حاوی این ثبتها است.
رفع اشکالها
- تأخیر خواندن گرم (
DataStore.data.first()) را ۸ برابر بهبود دهید. (22b8a40) ReplaceFileCorruptionHandlerرا میتوان از کد مشترک KMP ایجاد کرد. (7632e839)
نسخه ۱.۱.۱
۱ مه ۲۰۲۴
androidx.datastore:datastore-*:1.1.1 منتشر شده است. نسخه ۱.۱.۱ حاوی این ثبتها است.
رفع اشکالها
- هشدار کاذب Linux درباره خطای «بنبست منبع رخ خواهد داد» در یک مورد خاص که چند نمونه
DataStoreتلاش میکنند از فرایندهای مختلف با عقبنشینی از قفل فایل بنویسند، کاهش یافت.
نسخه ۱.۱.۰
۱۷ آوریل ۲۰۲۴
androidx.datastore:datastore-*:1.1.0 منتشر شده است. نسخه ۱.۱.۰ حاوی این ثبتها است.
تغییرات عمده از زمان انتشار نسخه ۱.۰.۰
برای اطلاعات بیشتر، لطفاً یادداشتهای انتشار نسخههای آلفا و بتای 1.1.0 را مرور کنید. برخیاز بهروزرسانیهای اصلی در 1.1.0 عبارتند از:
- DataStore اکنون از چندین فرایند که به یک فایل دسترسی دارند پشتیبانی میکند و از قابلیت مشاهده در سراسر فرایندها پشتیبانی میکند.
- میانای جدید «فضای ذخیرهسازی» به شما امکان میدهد نحوه ذخیره یا سریالسازی مدلهای دادهتان را سفارشیسازی کنید.
- اکنون میتوانید از DataStore در پروژههای Kotlin Multiplatform استفاده کنید.
نسخه 1.1.0-rc01
۳ آوریل ۲۰۲۴
androidx.datastore:datastore-*:1.1.0-rc01 منتشر شده است. نسخه 1.1.0-rc01 حاوی این commitها است.
رفع اشکالها
- افت عملکردی که در آن اگر دادههای جدید با دادههای قدیمی یکسان بود، فراخوانیهای
updateDataدر نوشتنهای دیسک بهینهسازی نمیشد برطرف شد (d64cfb5) - مشکل شرایط رقابتی که در آن
MultiProcessDataStoreممکن بود ابطالها را درطول مقداردهی اولیه ازدست بدهد برطرف شد. ((b/326141553),(094c2dd))
نسخه 1.1.0-beta02
۶ مارس ۲۰۲۴
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 غیرAndroid ناموفق باشد برطرف شد. (b/203087070) - مشکلی که باعث میشد
CorruptionExceptionپساز مقداردهی اولیهDataStoreمدیریت نشود برطرف شد. (b/289582516)
نسخه 1.1.0-beta01
۱۰ ژانویه ۲۰۲۴
androidx.datastore:datastore-*:1.1.0-beta01 بدون هیچ تغییری از 1.1.0-alpha07 منتشر شده است. نسخه 1.1.0-beta01 حاوی این commit-ها است.
نسخه 1.1.0-alpha07
۲۹ نوامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha07 منتشر شده است. نسخه 1.1.0-alpha07 حاوی این commit-ها است.
تغییرات میانای برنامهسازی کاربردی
- روشهای
MultiProcessDataStoreFactoryدیگر آزمایشی نیستند.حاشیهنویسی@ExperimentalMultiProcessDataStoreبهطور کامل برداشته شده است. (Ieee54، I8e607)
رفع اشکالها
- Rollout the removal of
@ExperimentalMultiProcessDataStoreannotations to 1.1.0-alpha07. (I8e607)
نسخه 1.1.0-alpha06
۱ نوامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha06 منتشر شده است. نسخه 1.1.0-alpha06 حاوی این commit-ها است.
تغییرات میانای برنامهسازی کاربردی
- روش کارخانه
createSingleProcessCoordinatorاکنون مسیر فایل (String،java.io.File، وokio.Path) را دریافت میکند تا باcreateMultiProcessCoordinatorسازگار باشد. (I211c8، b/305755935)
نسخه 1.1.0-alpha05
۶ سپتامبر ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha05 منتشر شده است. نسخه 1.1.0-alpha05 حاوی این commit-ها است.
تغییرات میانای برنامهسازی کاربردی
- Datastore
FileStorageاکنون بهطور عمومی دردسترس است، بنابراین مشتریان میتوانند پارامترهای سفارشی ارائه دهند. (Icb985) - سازنده
OkioStorageتغییر کرد تاInterProcessCoordinatorرا بپذیرد تا بتوان از آن در Android باMultiProcessCoordinatorاستفاده کرد. (Iecea3)
رفع اشکالها
- رفع مشکل
MultiProcessCoordinatorکه نمیتواند چندین فایل را در یک دایرکتوری نظارت کند. - اگر مسیرهای فایل نرمالسازی نشده باشد، مشکل عدم شناسایی فایلهای تکراری برطرف میشود.
- مقادیر اشتباه برگرداندهشده از
RxDataStore#isDisposedرا اصلاح کنید. - پیکربندی proguard ناموجود برای مصنوع
datstore-preferences-coreرا برطرف کنید.
نسخه 1.1.0-alpha04
۵ آوریل ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha04 منتشر شده است. نسخه 1.1.0-alpha04 حاوی این commit-ها است.
رفع اشکالها
- پیادهسازی داخلی را بهبود دهید تا از شرایط مسابقه که در آن جریان داده
DataStoreممکن است پساز بهروزرسانی مقدار قدیمیتری را منتشر کند جلوگیری شود.
نسخه 1.1.0-alpha03
۲۴ مارس ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha03 منتشر شده است.
رفع اشکالها
- محدودیتهای وابستگی از خروجیهای ساختاریافته Maven برداشته شد تا مشکل ساخت در Kotlin Native Targets (b/274786186، KT-57531) برطرف شود.
نسخه 1.1.0-alpha02
۲۲ مارس ۲۰۲۳
androidx.datastore:datastore-*:1.1.0-alpha02 منتشر شده است. نسخه 1.1.0-alpha02 حاوی این commit-ها است.
توجه
توجه داشته باشید که این نسخه شامل یک بازسازی کد داخلی مهم است که پیادهسازیهای 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برای استفاده از «فضای ذخیرهسازی». (Iac02f) - انتقال میاناهای برنامهسازی کاربردی عمومی در datastore-multiprocess به datastore-core (I76d7c)
- Exposed
PreferencesSerializerfrom datastore-preferences-core (I4b788) - درحال افزودن حاشیهنویسی
@JvmDefaultWithCompatibility(I8f206)
نسخه 1.1.0-alpha01
۹ نوامبر ۲۰۲۲
androidx.datastore:datastore-*:1.1.0-alpha01 منتشر شده است. نسخه 1.1.0-alpha01 حاوی این commitها است.
ویژگیهای جدید
- پشتیبانی از موارد استفاده چندفرایندی که در آن سازگاری دادهها بین نمونههای
DataStoreدر سراسر فرایندها تضمین میشود.MultiProcessDataStoreFactory#createرا اضافه کنید تا چنین نمونههایDataStoreایجاد شود. - میانای جدید «فضای ذخیرهسازی» که امکان تعویض سازوکار فضای ذخیرهسازی زیربنایی را برای
Datastoreفراهم میکند. پیادهسازیهای java.io و okio ارائه شده است. کارخانههایDataStoreروشهای جدیدی دارند که این شیء «فضای ذخیرهسازی» را میپذیرند.
تغییرات میانای برنامهسازی کاربردی
- تغییر میاناهای برنامهسازی کاربردی در datastore-core
MultiProcessDataStoreFactoryبرای استفاده از «فضای ذخیرهسازی». (Iac02f) - انتقال میاناهای برنامهسازی کاربردی عمومی در datastore-multiprocess به datastore-core (I76d7c)
- Exposed
PreferencesSerializerfrom datastore-preferences-core (I4b788)
نسخه ۱.۰.۰
نسخه ۱.۰.۰
۴ اوت ۲۰۲۱
androidx.datastore:datastore-*:1.0.0 منتشر شده است. نسخه ۱.۰.۰ حاوی این ارسالها است.
ویژگیهای اصلی نسخه ۱.۰.۰
Jetpack DataStore یک راهحل ذخیرهسازی داده است که به شما امکان میدهد جفتهای کلید-مقدار یا اشیاء تایپشده را با میانگیری پروتکل ذخیره کنید. DataStore از روالهای همزمان Kotlin و Flow برای ذخیره دادهها بهصورت ناهمگام، سازگار، و تراکنشی استفاده میکند.
نسخه 1.0.0-rc02
۲۱ ژوئیه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-rc02 منتشر شده است. نسخه 1.0.0-rc02 حاوی این commit-ها است.
رفع اشکالها
- Clarify that
SharedPreferencesMigrationdoes not run if there are no keys. (Icfa32، b/192824325) - رفع اشکالی که در آن
SharedPreferencesMigrationساختهشده باMIGRATE_ALL_KEYSدرصورت عدم وجود کلید درخواستی، استثنا ایجاد میکرد. (Ie318a، b/192824325)
نسخه 1.0.0-rc01
۳۰ ژوئن ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-rc01 منتشر شده است. نسخه 1.0.0-rc01 حاوی این commitها است.
رفع اشکالها
- اشکالی را برطرف میکند که در آن فایل java .بهطور ناخواسته به jar نهایی اضافه میشد (I65d96، b/188985637)
نسخه 1.0.0-beta02
۱۶ ژوئن ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-beta02 منتشر شده است. نسخه 1.0.0-beta02 شامل این commit-ها است.
رفع اشکالها
- رفع اشکال
ClassVerificationFailure(b/187450483)
نسخه 1.0.0-beta01
۲۱ آوریل ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-beta01 منتشر شده است. نسخه 1.0.0-beta01 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
- Remove JVM overloads for kotlin only methods (I2adc7)
رفع اشکالها
- اشکالی که در آن نمایندگان datastore میتوانستند منجر به نشت زمینهها شوند برطرف شد (Ie96fc، b/184415662)
نسخه 1.0.0-alpha08
۱۰ مارس ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha08 منتشر شده است. نسخه 1.0.0-alpha08 شامل این commit-ها است.
تغییرات میانای برنامهسازی کاربردی
- اکنون میتوانید انتقالی را که به بافت بستگی دارد به نماینده دارایی
dataStoreوpreferencesDataStoreخود اضافه کنید. (I4ef69، b/173726702) - توابع کمکی را برای دریافت نام فایل اضافه میکند، اگر دیگر از نماینده datastore یا context.createDataStore استفاده نمیکنید (I60f9a)
- Serializer writeTo و readFrom اکنون تعلیق میشوند. اگر «سریالساز» را پیادهسازی کردهاید، باید توابع خود را بهروز کنید تا به توابع تعلیق تبدیل شوند. (I1e58e)
- نمایندگان ویژگی برای کاربران RxDataStore اضافه شد. (Ied768، b/173726702)
رفع اشکالها
- Enforce restrictions on public usage of experimental APIs (I6aa29, b/174531520)
نسخه 1.0.0-alpha07
۲۴ فوریه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha07 منتشر شده است. نسخه 1.0.0-alpha07 حاوی این commit-ها است.
تغییرات میانای برنامهسازی کاربردی
تابع افزونه
Context.createDataStoreبرداشته شده است و نماینده ویژگی globalDataStore جایگزین آن شده است. globalDataStore را یکبار در سطح بالا در فایل kotlin خود فراخوانی کنید. برای مثال:val Context.myDataStore by dataStore(...)این را در سطح بالای فایل kotlin خود قرار دهید تا فقط یک نمونه از آن وجود داشته باشد. (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)
- Fix cancellation behavior when caller scope is cancelled. (I2c7b3)
نسخه 1.0.0-alpha06
۱۳ ژانویه ۲۰۲۱
androidx.datastore:datastore-*:1.0.0-alpha06 منتشر شده است. نسخه 1.0.0-alpha06 حاوی این commit-ها است.
ویژگیهای جدید
- پوشانندههای 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
۲ دسامبر ۲۰۲۰ (۱۲ آذر ۱۳۹۹)
androidx.datastore:datastore-*:1.0.0-alpha05 منتشر شده است. نسخه 1.0.0-alpha05 شامل این commit-ها است.
رفع اشکالها
- افزودن مستندات و استثناهای بهتر درباره نوشتن همزمان از انبارههای داده. (Ia98a2، b/173522155، b/173726702)
- اکنون اجازه میدهیم (اما الزامی نمیکنیم) OutputStream ارسالشده به
Serializer.writeTo()بسته شود. (I5c9bf، b/173037611)
نسخه 1.0.0-alpha04
۱۷ نوامبر ۲۰۲۰
androidx.datastore:datastore-*:1.0.0-alpha04 منتشر شده است. نسخه 1.0.0-alpha04 شامل این commit-ها است.
رفع اشکالها
- مشکل بستهبندی که باعث ازکارافتادن زیر در Preference Datastore
1.0.0-alpha03میشد برطرف شد:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- این خرابی در ابتدا در اینجا گزارش شده بود: b/173036843
- (I4712d، b/173036843)
نسخه 1.0.0-alpha03
۱۱ نوامبر ۲۰۲۰
androidx.datastore:datastore-*:1.0.0-alpha03 منتشر شده است. نسخه 1.0.0-alpha03 حاوی این commit-ها است.
ویژگیهای جدید
- «اولویتها» اکنون از مقادیر دوگانه پشتیبانی میکند (که اگر به دقت بیشتری نسبت به مقادیر اعشاری نیاز داشته باشید مفید است) (I5be8f، b/169471808)
تغییرات میانای برنامهسازی کاربردی
- وابستگی kotlin خالص برای datastore ایجاد شد تا کامپایل سریعتر انجام شود.
androidx.datastore:datastore-corecontains the core kotlin only APIs andandroidx.datastore:datastorecontains the APIs that depend on android (including theSharedPreferencesMigrationand theContext.createDataStoreconstructor.)(I42d75, b/168512698) - Splitting out targets for preferences data store for faster kotlin compilation (Ia3c19)
اکنون سریالسازها به ویژگی جدیدی برای مقدار پیشفرض نیاز دارند که درصورت نبود داده در دیسک استفاده خواهد شد. این کار پیادهسازی سریالسازهای سفارشی را آسانتر میکند تا کاربران مجبور نباشند جریانهای ورودی خالی را بهطور ویژه مدیریت کنند (جریانهای ورودی خالی با json تجزیه نمیشوند).
- همچنین اکنون بررسیای وجود دارد تا تأیید کند که جریان خروجی ارائهشده به writeTo() بسته نشده است، و اگر بسته شده باشد، استثناهایی را ایجاد میکند (I16e29)
Making the constructor for SharedPreferencesView internal. در ابتدا برای آزمایش عمومی بود. آزمایشها باید SharedPreferencesMigration را بسازند و درمقابل آن آزمایش کنند. (I93891)
رفع اشکالها
- پارامتر
produceFileدرDataStoreFactoryوPreferenceDataStoreFactoryاکنون آخرین پارامتر در فهرست است، بنابراین به شما امکان میدهد از نحو لامبدا دنبالهدار kotlin استفاده کنید. (Ibe7f1، b/169425442) - Following the new explicit API requirements for kotlin (I5ae1e)
مشکلات شناختهشده
- Preference Datastore با
java.lang.NoClassDefFoundErrorازکار میافتد. (b/173036843)
نسخه 1.0.0-alpha02
۱۴ اکتبر ۲۰۲۰
androidx.datastore:datastore-core:1.0.0-alpha02 و androidx.datastore:datastore-preferences:1.0.0-alpha02 منتشر شدهاند. نسخه 1.0.0-alpha02 حاوی این commit-ها است.
رفع اشکالها
- یک محافظ دربرابر جهش در datastore-core اضافه شد. جهش باعث میشود استفاده از datastore برای افرادی که از datastore با انواع غیرپروتو/غیرترجیحی استفاده میکنند مختل شود (I6aa84)
- Added a
toStringmethod to Preferences.kt to make current state easy to debug (I96006) - Added an exception to safeguard against misuse of
DataStore.Preferences(I1134d) - رفع اشکالی که باعث میشد برنامه هنگام راهاندازی ازکار بیفتد (I69237، b/168580258)
نسخه 1.0.0-alpha01
۲ سپتامبر ۲۰۲۰ (۱۲ شهریور ۱۳۹۹)
androidx.datastore:datastore-core:1.0.0-alpha01 و androidx.datastore:datastore-preferences:1.0.0-alpha01 منتشر شدهاند. نسخه 1.0.0-alpha01 حاوی این commit-ها است.
ویژگیهای جدید
Jetpack DataStore راهکار جدید و بهبودیافتهای برای ذخیرهسازی داده است که هدف آن جایگزینی SharedPreferences است. DataStore که بر روالهای مشترک Kotlin و Flow ساخته شده است، دو پیادهسازی مختلف ارائه میدهد:
- Proto DataStore که به شما امکان میدهد اشیای تایپشده را ذخیره کنید (با پشتیبانی میانگیرهای پروتکل)
- Preferences DataStore که جفتهای کلید-مقدار را ذخیره میکند
دادهها بهصورت ناهمگام، سازگار، و تراکنشی ذخیره میشوند و بر اکثر معایب SharedPreferences غلبه میکنند.