DataStore

داده‌ها را به‌صورت ناهمگام، سازگار، و تراکنشی ذخیره می‌کند و بر برخی‌از معایب SharedPreferences غلبه می‌کند
جدیدترین به‌روزرسانی نسخه پایدار نامزد انتشار انتشار نسخه بتا نسخه آلفا
‫۱۲ اکتبر ۲۰۲۶ ۱.۲.۱ 1.3.0-rc01 - -

اعلام وابستگی‌ها

برای افزودن وابستگی به DataStore، باید مخزن Google Maven را به پروژه‌تان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.

DataStore گزینه‌های مختلفی برای سریال‌سازی ارائه می‌دهد، یکی از آن‌ها را انتخاب کنید. همچنین می‌توانید وابستگی‌های بدون Android را به هریک از پیاده‌سازی‌ها اضافه کنید.

وابستگی‌های پیاده‌سازی موردنیازتان را در فایل build.gradle برای برنامه یا مدول خود اضافه کنید:

‫Preferences DataStore

خطوط زیر را به بخش وابستگی‌های فایل gradle خود اضافه کنید:

شیک

    dependencies {
        // Preferences DataStore (SharedPreferences like APIs)
        implementation "androidx.datastore:datastore-preferences:1.2.1"

        // Alternatively - without an Android dependency.
        implementation "androidx.datastore:datastore-preferences-core:1.2.1"
    }
    

کاتلین

    dependencies {
        // Preferences DataStore (SharedPreferences like APIs)
        implementation("androidx.datastore:datastore-preferences:1.2.1")

        // Alternatively - without an Android dependency.
        implementation("androidx.datastore:datastore-preferences-core:1.2.1")
    }
    

برای افزودن پشتیبانی اختیاری RxJava، وابستگی‌های زیر را اضافه کنید:

شیک

    dependencies {
        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.2.1"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.2.1"
    }
    

کاتلین

    dependencies {
        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.2.1")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.2.1")
    }
    

DataStore

خطوط زیر را به بخش وابستگی‌های فایل gradle خود اضافه کنید:

شیک

    dependencies {
        // Typed DataStore for custom data objects (for example, using Proto or JSON).
        implementation "androidx.datastore:datastore:1.2.1"

        // Alternatively - without an Android dependency.
        implementation "androidx.datastore:datastore-core:1.2.1"
    }
    

کاتلین

    dependencies {
        // Typed DataStore for custom data objects (for example, using Proto or JSON).
        implementation("androidx.datastore:datastore:1.2.1")

        // Alternatively - without an Android dependency.
        implementation("androidx.datastore:datastore-core:1.2.1")
    }
    

وابستگی‌های اختیاری زیر را برای پشتیبانی RxJava اضافه کنید:

شیک

    dependencies {
        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.2.1"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.2.1"
    }
    

کاتلین

    dependencies {
        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.2.1")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.2.1")
    }
    

برای سریال‌سازی محتوا، وابستگی‌هایی را برای سریال‌سازی «بافرهای پروتکل» یا 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 را ببینید.

نسخه ۱.۳

نسخه 1.3.0-rc01

‫۱۲ اکتبر ۲۰۲۶

‫androidx.datastore:datastore-*:1.3.0-rc01 منتشر شد. نسخه 1.3.0-rc01 حاوی این موارد ثبت است.

تغییرات میانای برنامه‌سازی کاربردی

  • به‌جای EdgeToEdge#enable() از WindowCompat#enableEdgeToEdge(Window) استفاده کنید ‏ (Ibff3e)

رفع اشکال‌ها

  • ‫androidx.lifecycle:lifecycle-runtime پیش‌نیاز به نسخه ۲.۱۰.۰ به‌روزرسانی شد. این نسخه برای اجرای بررسی‌های لینت زمان اجرای چرخه حیات دسته‌ای با AGP نسخه ۹.۵.۰-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 را معرفی می‌کند و شامل پشتیبانی معماری برای ورودی/خروجی فایل ناهم‌زمان، اعلان‌های بین برگه‌ای بااستفاده از BroadcastChannel API، و قفل‌گذاری توزیع‌شده ازطریق 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 دردسترس است.
  • DataStore Builder API جدید: DataStore.Builder<T> به‌عنوان جایگزین مقیاس‌پذیر برای DataStoreFactory معرفی شد. با این میانای برنامه‌سازی کاربردی جدید، کاربران اکنون می‌توانند منطق خرابی خود را ازطریق setCorruptionHandler ارائه دهند. علاوه‌براین، Builder API ملزم می‌کند که DataStore بااستفاده از CoroutineContext به‌جای CoroutineScope مقداردهی اولیه شود، که این بهبود برای هم‌زمان‌سازی ساختاری است، زیرا به فراخوانندگان اجازه می‌دهد عملکرد اجرا (مانند «توزیع‌کنندگان» خاص) را بدون اجبار DataStore برای مدیریت نامناسب یا محدود شدن توسط چرخه حیات محدوده فراخواننده تعریف کنند.

    توجه: توصیه می‌کنیم همه کاربران از DataStoreFactory به میاناهای برنامه‌سازی کاربردی جدید DataStore.Builder منتقل شوند. با الزام CoroutineContext به‌جای CoroutineScope، میانای برنامه‌سازی کاربردی همزمانی ساختاریافته بهتری را اعمال می‌کند. این کار تضمین می‌کند که عملیات DataStore به چرخه‌های عمر رابط کاربری کوتاه‌مدت (مثلاً viewModelScope) محدود نشود و از لغو زودهنگام و ازدست رفتن احتمالی داده‌ها جلوگیری می‌کند.

    هشدار: مطمئن شوید که CoroutineContext ارائه‌شده به Builder دارای Job باشد و در محدوده برنامه باشد. اگر زمینه لغو شود، عملیات داخلی DataStore پیش‌از موعد خاتمه می‌یابد.

تغییرات میانای برنامه‌سازی کاربردی

  • مصنوع جدید androidx.datastore:datastore-tink برای پشتیبانی از رمزگذاری DataStore معرفی شد. (Ic106d، b/167697691)

    برای رمزگذاری داده‌ها بااستفاده از Tink، این مراحل را دنبال کنید:

    1. بااستفاده از میاناهای برنامه‌سازی کاربردی Tink، کلید ایجاد کنید:

      val keysetHandle =
          AndroidKeysetManager.Builder()
              .withSharedPref(applicationContext, "keyset", "keyset_prefs")
              .withKeyTemplate(KeyTemplate.createFrom(PredefinedAeadParameters.AES256_GCM))
              .withMasterKeyUri("android-keystore://master_key")
              .build()
              .keysetHandle
      
    2. AeadSerializer ایجاد کنید که سریال‌ساز موجود را دربرگیرد:

      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(),
      )
      
    3. هنگام ایجاد نمونه datastore، از این aeadSerializer به‌جای سریال‌سازتان استفاده کنید:

      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 حاوی این ارسال‌ها است.

ویژگی‌های جدید

  • نمایه‌های مبنا به datastore اضافه شد. (3916245،b/469127532).
  • پیاده‌سازی پشتیبانی WASM/JS در DataStore ازطریق 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)
  • ترتیب FIFO را در GuavaDataStore به‌روزرسانی اعمال کنید. (I6fd00,b/451491257)

نسخه 1.3.0-alpha01

‫۱۹ نوامبر ۲۰۲۵

‫androidx.datastore:datastore-*:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 حاوی این ارسال‌ها است.

ویژگی‌های جدید

  • بااستفاده از sessionStorage API، پشتیبانی از KMP Web در DataStore اضافه شد. این ویژگی به DataStore اجازه می‌دهد داده‌ها را به‌طور موقت در یک برگه مرورگر حفظ کند. (I60fad، b/316376114)

نسخه ۱.۲

نسخه ۱.۲.۱

۱۱ مارس ۲۰۲۶

‫androidx.datastore:datastore-*:1.2.1 منتشر شد. نسخه ۱.۲.۱ حاوی این ارسال‌ها است.

بدون تغییر

  • این نسخه رفع اشکال‌های جزئی زیرساخت را معرفی می‌کند و شامل هیچ‌گونه تغییرات رفتار یا DataStore API از نسخه ۱.۲.۰ نیست.

نسخه ۱.۲.۰

‫۱۹ نوامبر ۲۰۲۵

‫androidx.datastore:datastore-*:1.2.0 منتشر شد. نسخه ۱.۲.۰ حاوی این ثبت‌ها است.

تغییرات عمده از زمان انتشار نسخه ۱.۱.۰

پشتیبانی Java/Guava:

  • ماژول جدید datastore-guava را برای نمایش میاناهای برنامه‌سازی کاربردی سازگار با کاربران Java و Guava ListenableFuture ازطریق 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 به‌اشتباه در رشته فراخوان (برای نمونه، رشته اصلی) به‌جای توزیع‌کننده ورودی/خروجی مشخص‌شده اجرا شود.
  • مشکل 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، یک «اجراکننده» را دریافت کند. (I989fa، b/448563183)

رفع اشکال‌ها

  • رفع java.lang.UnsatisfiedLinkError هنگام استفاده از DataStore در برنامه‌ای که با R8 بهینه‌سازی شده است، اما از getDefaultProguardFile('android-proguard-optimize.txt') استفاده نمی‌کند. (I27d0d، b/434696293)
  • رفع مشکل مربوط به اینکه عملیات GuavaDataStore ممکن بود به‌جای توزیع‌کننده IO مشخص‌شده، به‌اشتباه در رشته فراخوانی (مثلاً رشته اصلی) اجرا شود. (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 شامل این تعهدات است.

ویژگی‌های جدید

  • ‫datastore-guava واحد اضافه شد تا میاناهای برنامه‌سازی کاربردی سازگار با کاربران Java و Guava ListenableFuture را ازطریق 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 خراب بود برطرف شد. این مشکل به‌دلیل اشکالی در افزایه جدید AGP KMP DSL ایجاد شده بود که از اضافه شدن خودکار فراداده برای همه پلاتفرم‌های هدف جلوگیری می‌کرد. این اشکال باعث می‌شود برخی‌از روش‌های DataStore Android دیگر در ساخت‌های مشتریان قابل‌مشاهده نباشد. اصلاح شامل استفاده از android DSL قدیمی‌تر در 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()) تا ۸ برابر. (22b8a40)
  • ‫ReplaceFileCorruptionHandler را می‌توان از کد مشترک KMP ایجاد کرد. (7632e839)

نسخه ۱.۱.۱

‫۱ مه ۲۰۲۴

‫androidx.datastore:datastore-*:1.1.1 منتشر شد. نسخه ۱.۱.۱ حاوی این ثبت‌ها است.

رفع اشکال‌ها

  • هشدار کاذب Linux درباره خطای «بن‌بست منبع رخ خواهد داد» در یک مورد خاص که چند نمونه DataStore تلاش می‌کنند از فرایندهای مختلف با عقب‌نشینی از قفل فایل بنویسند، کاهش یافت.

نسخه ۱.۱.۰

‫۱۷ آوریل ۲۰۲۴

‫androidx.datastore:datastore-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این تعهدات است.

تغییرات عمده از زمان انتشار نسخه ۱.۰.۰

برای اطلاعات بیشتر، لطفاً یادداشت‌های انتشار نسخه‌های آلفا و بتای ۱.۱.۰ را مرور کنید. برخی‌از به‌روزرسانی‌های اصلی در ۱.۱.۰ عبارت‌اند از:

  • DataStore اکنون از چندین فرایند که به یک فایل دسترسی دارند پشتیبانی می‌کند و از قابلیت مشاهده در سراسر فرایندها پشتیبانی می‌کند.
  • میانای جدید «فضای ذخیره‌سازی» به شما امکان می‌دهد نحوه ذخیره یا سریال‌سازی مدل‌های داده‌تان را سفارشی‌سازی کنید.
  • اکنون می‌توانید از DataStore در پروژه‌های Kotlin Multiplatform استفاده کنید.

نسخه 1.1.0-rc01

۳ آوریل ۲۰۲۴

‫androidx.datastore:datastore-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 حاوی این ارسال‌ها است.

رفع اشکال‌ها

  • افت عملکردی که در آن فراخوانی‌های updateData درصورت یکسان بودن داده‌های جدید با داده‌های قدیمی در نوشتن‌های دیسک بهینه‌سازی نمی‌شد برطرف شد (d64cfb5)
  • مشکل شرایط رقابتی که در آن MultiProcess DataStore ممکن بود درطول مقداردهی اولیه، ابطال‌ها را ازدست بدهد برطرف شد. ((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 را ارسال می‌کنید تا از این مشکل جلوگیری شود.
  • ​مشکل بن‌بست تماس‌های 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 شامل این ارسال‌ها است.

نسخه 1.1.0-alpha07

۲۹ نوامبر ۲۰۲۳

‫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

۱ نوامبر ۲۰۲۳

‫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

۶ سپتامبر ۲۰۲۳

‫androidx.datastore:datastore-*:1.1.0-alpha05 منتشر شد. نسخه 1.1.0-alpha05 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • Datastore FileStorage اکنون به‌طور عمومی دردسترس است، بنابراین مشتریان می‌توانند پارامترهای سفارشی ارائه دهند. (Icb985)
  • سازنده OkioStorage تغییر کرد تا InterProcessCoordinator را بپذیرد تا بتوان از آن در Android با MultiProcessCoordinator استفاده کرد. (Iecea3)

رفع اشکال‌ها

  • رفع مشکل MultiProcessCoordinator که نمی‌تواند چند فایل را در یک دایرکتوری پایش کند.
  • اگر مسیرهای فایل نرمال‌سازی نشده باشد، مشکل عدم شناسایی فایل‌های تکراری برطرف می‌شود.
  • مقادیر اشتباه برگشتی از RxDataStore#isDisposed را اصلاح کنید.
  • پیکربندی ProGuard را برای محصول datstore-preferences-core اصلاح کنید.

نسخه 1.1.0-alpha04

‫۵ آوریل ۲۰۲۳

‫androidx.datastore:datastore-*:1.1.0-alpha04 منتشر شد. نسخه 1.1.0-alpha04 شامل این تعهدات است.

رفع اشکال‌ها

  • پیاده‌سازی داخلی را بهبود دهید تا از شرایط مسابقه که در آن جریان داده DataStore ممکن است پس‌از به‌روزرسانی مقدار قدیمی‌تری را منتشر کند جلوگیری شود.

نسخه 1.1.0-alpha03

۲۴ مارس ۲۰۲۳

‫androidx.datastore:datastore-*:1.1.0-alpha03 منتشر شد.

رفع اشکال‌ها

  • محدودیت‌های وابستگی از عناصر Maven برداشته شد تا مشکل ساخت در «هدف‌های بومی Kotlin» دور زده شود (b/274786186، KT-57531).

نسخه 1.1.0-alpha02

۲۲ مارس ۲۰۲۳

‫androidx.datastore:datastore-*:1.1.0-alpha02 منتشر شد. نسخه 1.1.0-alpha02 شامل این تعهدها است.

توجه

توجه داشته باشید که این نسخه شامل یک بازسازی کد داخلی مهم است که پیاده‌سازی‌های DataStore تک‌فرایندی و چندفرایندی را ادغام می‌کند. لطفاً مراقب تغییرات احتمالی در رفتار ناخواسته باشید (برای نمونه، زمان‌بندی اعلان‌های به‌روزرسانی). می‌توانید از عنصر سامانه پیگیری مشکل برای گزارش دادن چنین تغییراتی استفاده کنید.

ویژگی‌های جدید

  • اکنون می‌توانید از DataStore در پروژه‌های KMM استفاده کنید. توجه داشته باشید که هدف‌های غیرAndroid مربوط به DataStore هنوز آزمایشی هستند اما تصمیم گرفتیم نسخه‌ها را ادغام کنیم تا امتحان کردن آن‌ها برای توسعه‌دهندگان آسان‌تر شود.
  • ویژگی‌های چندفرایندی از androidx.datastore.multiprocess به androidx.datastore.core منتقل شده‌اند.
  • روش کارخانه جدیدی در androidx.datastore.core.MultiProcessDataStoreFactory اضافه کنید تا نمونه‌های DataStore را با Storage شیء برای عملیات فایل ایجاد کنید.
  • افزودن میانای جدید InterProcessCoordinator که به چندین نمونه DataStore کمک می‌کند در سراسر فرایندها ارتباط برقرار کنند. توجه داشته باشید که پیاده‌سازی چندفرایندی InterProcessCoordinator فقط در Android دردسترس است.

تغییرات میانای برنامه‌سازی کاربردی

  • Add InterProcessCoordinator to StorageConnection in datastore-core interface (I555bb)
  • تغییر میاناهای برنامه‌سازی کاربردی در datastore-core MultiProcessDataStoreFactory برای استفاده از «فضای ذخیره‌سازی». (Iac02f)
  • انتقال میاناهای برنامه‌سازی کاربردی عمومی در datastore-multiprocess به datastore-core‏ (I76d7c)
  • Exposed PreferencesSerializer from 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)
  • انتقال APIهای عمومی در datastore-multiprocess به datastore-core (I76d7c)
  • Exposed PreferencesSerializer from 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 حاوی این تعهدها است.

رفع اشکال‌ها

  • Clarify that SharedPreferencesMigration does 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 حاوی این تعهدات است.

رفع اشکال‌ها

  • اشکالی را برطرف می‌کند که در آن فایل 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • برداشتن سربارهای JVM برای روش‌های فقط Kotlin (I2adc7)

رفع اشکال‌ها

  • اشکالی برطرف شد که در آن نمایندگان مخزن داده می‌توانستند منجر به نشت زمینه‌ها شوند (Ie96fc، b/184415662)

نسخه 1.0.0-alpha08

۱۰ مارس ۲۰۲۱

‫androidx.datastore:datastore-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 شامل این commit-ها است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون می‌توانید انتقالی را که به بافت بستگی دارد به نماینده دارایی dataStore و preferencesDataStore خود اضافه کنید. (I4ef69، b/173726702)
  • توابع کمکی را برای دریافت نام فایل اضافه می‌کند اگر دیگر از نماینده یا زمینه انبار داده استفاده نمی‌کنید.createDataStore (I60f9a)
  • ‫Serializer writeTo و readFrom اکنون درحال تعلیق هستند. اگر «سریال‌ساز» را پیاده‌سازی کرده‌اید، باید توابع خود را به‌روز کنید تا توابع تعلیق باشند. (I1e58e)
  • نمایندگان دارایی برای کاربران RxDataStore اضافه شد. (Ied768، b/173726702)

رفع اشکال‌ها

  • اعمال محدودیت‌ها بر استفاده عمومی از میاناهای برنامه‌سازی کاربردی آزمایشی (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 اکنون در کلاس RxDataStore قرار دارند، نه در کارکردهای افزونه در DataStore. (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 شامل این تعهدات است.

رفع اشکال‌ها

  • افزودن مستندات و استثناهای بهتر درباره نوشتن هم‌زمان از پایگاه‌های داده. (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 شامل این تعهدات است.

رفع اشکال‌ها

  • مشکل بسته‌بندی که باعث ازکارافتادن برنامه در «انبار داده اولویت» 1.0.0-alpha03 می‌شد برطرف شد: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

نسخه 1.0.0-alpha03

۱۱ نوامبر ۲۰۲۰

‫androidx.datastore:datastore-*:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 حاوی این commit-ها است.

ویژگی‌های جدید

  • «اولویت‌ها» اکنون از مقادیر دوگانه پشتیبانی می‌کند (که اگر به دقت بیشتری نسبت به مقادیر اعشاری نیاز داشته باشید مفید است) (I5be8f، b/169471808)

تغییرات میانای برنامه‌سازی کاربردی

  • وابستگی خالص kotlin برای datastore ایجاد شد تا امکان گردآوری سریع‌تر فراهم شود. androidx.datastore:datastore-core فقط حاوی میاناهای برنامه‌سازی کاربردی اصلی Kotlin است و androidx.datastore:datastore حاوی میاناهای برنامه‌سازی کاربردی است که به Android وابسته است (ازجمله SharedPreferencesMigration و سازنده Context.createDataStore).‏(I42d75،‏ b/168512698)
  • هدف‌های تقسیم‌شده برای فروشگاه داده‌های اولویت برای کامپایل سریع‌تر کاتلین (Ia3c19)
  • اکنون سریال‌سازها به دارایی جدیدی برای مقدار پیش‌فرض نیاز دارند که درصورت نبود داده در دیسک استفاده خواهد شد. این کار پیاده‌سازی سریال‌سازهای سفارشی را آسان‌تر می‌کند تا کاربران مجبور نباشند جریان‌های ورودی خالی را به‌طور ویژه مدیریت کنند (جریان‌های ورودی خالی با json تجزیه نمی‌شوند).

    • همچنین اکنون بررسی می‌شود که جاری‌سازی برونداد ارائه‌شده به writeTo() بسته نباشد، و اگر بسته باشد استثناهایی ایجاد می‌کند (I16e29)
  • درحال داخلی کردن سازنده SharedPreferencesView. این برنامه در ابتدا برای آزمایش عمومی بود. آزمایش‌ها باید به‌جای آن SharedPreferencesMigration را بسازند و درمقابل آن آزمایش کنند. (I93891)

رفع اشکال‌ها

  • پارامتر produceFile در DataStoreFactory و PreferenceDataStoreFactory اکنون آخرین پارامتر در فهرست است، بنابراین به شما امکان می‌دهد از دستورگان لامبدای پایانی Kotlin استفاده کنید. (Ibe7f1، b/169425442)
  • پس‌از الزامات جدید «میانای برنامه‌سازی کاربردی صریح» برای 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 اضافه شد. تغییر باعث می‌شود استفاده از مخزن داده برای افرادی که از مخزن داده با انواع غیرپروتکل/غیرترجیحات استفاده می‌کنند مختل شود (I6aa84)
  • روش toString به Preferences.kt اضافه شد تا اشکال‌زدایی وضعیت فعلی آسان شود (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 غلبه می‌کنند.