DataStore

אחסון נתונים באופן אסינכררוני, עקבי ועסקאותי, כדי להתגבר על חלק מהחסרונות של SharedPreferences
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
15 בינואר 2025 1.1.2 - - -

הצהרת יחסי תלות

כדי להוסיף יחסי תלות ל-DataStore, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.

יש שתי הטמעות של DataStore: Preferences ו-Proto. בוחרים באחת מהאפשרויות. אפשר גם להוסיף יחסי תלות ללא Android לכל אחת מההטמעות.

מוסיפים את יחסי התלות של ההטמעה הנדרשת בקובץ build.gradle של האפליקציה או המודול:

Preferences DataStore

Groovy

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

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.2"

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

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.2"
    }
    

Kotlin

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

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.2")

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

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.2")
    }
    

Proto DataStore

Groovy

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.2"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.2"

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

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.2"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.2")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.2")

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

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.2")
    }
    

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.1

גרסה 1.1.2

15 בינואר 2025

androidx.datastore:datastore-*:1.1.2 משוחרר. גרסה 1.1.2 כוללת את ההוספות האלה.

תיקוני באגים

  • שיפור של פי 8 בזמן האחזור של קריאה מהירה (DataStore.data.first()). (22b8a40)
  • אפשר ליצור את ReplaceFileCorruptionHandler מקוד משותף של KMP. (7632e839)

גרסה 1.1.1

1 במאי 2024

androidx.datastore:datastore-*:1.1.1 משוחרר. גרסה 1.1.1 מכילה את ההוספות האלה.

תיקוני באגים

  • ביטול התראות שווא ב-Linux על השגיאה 'Resource deadlock would occur' במקרה קיצוני שבו מספר מכונות DataStore מנסו לכתוב מתהליכים שונים על ידי ביטול נעילת הקובץ.

גרסה 1.1.0

17 באפריל 2024

androidx.datastore:datastore-*:1.1.0 משוחרר. גרסה 1.1.0 כוללת את ההוספות האלה.

שינויים משמעותיים מאז הגרסה 1.0.0

מידע נוסף זמין בהערות הגרסה של גרסאות האלפא והבטא של 1.1.0. חלק מהעדכונים העיקריים בגרסה 1.1.0 הם:

  • DataStore תומך עכשיו בכמה תהליכים שיכולים לגשת לאותו קובץ, עם תמיכה ביכולת התצפית על פני תהליכים.
  • ממשק האחסון החדש מאפשר לכם להתאים אישית את האופן שבו אתם מאחסנים או מסדרים את מודלי הנתונים שלכם.
  • מעכשיו אפשר להשתמש ב-DataStore בפרויקטים של Kotlin Multiplatform.

גרסה 1.1.0-rc01

3 באפריל 2024

androidx.datastore:datastore-*:1.1.0-rc01 משוחרר. גרסת 1.1.0-rc01 כוללת את ההוספות האלה.

תיקוני באגים

  • תוקנה פגיעה בביצועים במקרים שבהם קריאות ל-updateData לא בוצעה אופטימיזציה של כתיבת נתונים בדיסק אם הנתונים החדשים זהים לנתונים הישנים (d64cfb5)
  • תוקן מצב מרוץ שבו MultiProcess DataStore עלול לפספס ביטולים במהלך האתחול. ‎((b/326141553),(094c2dd))‎

גרסה 1.1.0-beta02

6 במרץ 2024

androidx.datastore:datastore-*:1.1.0-beta02 משוחרר. גרסת 1.1.0-beta02 כוללת את ההוספות האלה.

תיקוני באגים

  • התכונה 'שיפור הביצועים' ב-DataStore אוספת התראות על עדכונים רק כשהיא מזהה אותם. (b/267792241)
    • הערה: אם אתם משתמשים בספריית הבדיקה של Coroutines, יכול להיות שהשינוי הזה יגרום להפעלה של UncompletedCoroutinesError בבדיקות. כדי למנוע את הבעיה הזו, חשוב להעביר את TestScope.backgroundScope בזמן שמפעילים את DataStore בבדיקות.
  • ​תוקנה בעיה שבה קריאות updateData בתצוגת עץ באותו מופע היו מובילות לנעילה מרובת משתמשים. (b/241760537)
  • DataStore לא יגרום יותר להפעלת IOExceptions אם לא ניתן למחוק את SharedPreferences במהלך ההעברה. (b/195553816)
  • תוקנה בעיה שבה שינוי שם הקובץ נכשל במהלך updateData בסביבות JVM שאינן Android. (b/203087070)
  • תוקנה בעיה שבה CorruptionException לא מטופל אחרי האיניציאליזציה של DataStore. (b/289582516)

גרסה 1.1.0-beta01

10 בינואר 2024

androidx.datastore:datastore-*:1.1.0-beta01 פורסם ללא שינויים מאז 1.1.0-alpha07. גרסה 1.1.0-beta01 כוללת את השמירות האלה.

גרסה 1.1.0-alpha07

29 בנובמבר 2023

androidx.datastore:datastore-*:1.1.0-alpha07 משוחרר. גרסה 1.1.0-alpha07 מכילה את ההוספות האלה.

שינויים ב-API

  • השיטות של MultiProcessDataStoreFactory כבר לא נחשבות לניסיוניות.ההערה @ExperimentalMultiProcessDataStore הוסרה לחלוטין. (Ieee54, ‏ I8e607)

תיקוני באגים

  • השקת ההסרה של הערות @ExperimentalMultiProcessDataStore בגרסה 1.1.0-alpha07. (I8e607)

גרסה 1.1.0-alpha06

1 בנובמבר 2023

androidx.datastore:datastore-*:1.1.0-alpha06 משוחרר. גרסה 1.1.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • שיטת המפעל createSingleProcessCoordinator מקבלת עכשיו נתיב קובץ (String, ‏ java.io.File ו-okio.Path) כדי להיות עקבית עם createMultiProcessCoordinator. (I211c8, ‏ b/305755935)

גרסה 1.1.0-alpha05

6 בספטמבר 2023

androidx.datastore:datastore-*:1.1.0-alpha05 משוחרר. גרסה 1.1.0-alpha05 מכילה את ההוספות האלה.

שינויים ב-API

  • מאגר הנתונים FileStorage זמין עכשיו לכולם, כך שלקוחות יכולים לספק פרמטרים מותאמים אישית. (Icb985)
  • שינינו את ה-constructor של OkioStorage כך שיקבל InterProcessCoordinator, כדי שניתן יהיה להשתמש בו ב-Android עם MultiProcessCoordinator. (Iecea3)

תיקוני באגים

  • תיקון MultiProcessCoordinator לא ניתן לעקוב אחרי כמה קבצים באותה ספרייה.
  • תיקון של בעיה שבה לא ניתן לזהות קבצים כפולים אם נתיבי הקבצים לא רגילים.
  • מתקנים את הערכים השגויים שמוחזרים מ-RxDataStore#isDisposed.
  • תיקון הגדרת Proguard חסרה לארטיפקט datstore-preferences-core.

גרסה 1.1.0-alpha04

5 באפריל 2023

androidx.datastore:datastore-*:1.1.0-alpha04 משוחרר. גרסה 1.1.0-alpha04 מכילה את ההוספות האלה.

תיקוני באגים

  • שיפור ההטמעה הפנימית כדי למנוע מצב של תחרות (race condition), שבו זרימת הנתונים של DataStore עשויה להפיק ערך ישן יותר אחרי עדכון.

גרסה 1.1.0-alpha03

24 במרץ 2023

androidx.datastore:datastore-*:1.1.0-alpha03 משוחרר.

תיקוני באגים

  • הסרנו אילוצים של יחסי תלות מפריטי Maven כדי לעקוף בעיה ב-build ב-Kotlin Native Targets (b/274786186, ‏ KT-57531).

גרסה 1.1.0-alpha02

22 במרץ 2023

androidx.datastore:datastore-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.

הערה

שימו לב שהגרסה הזו כוללת שינוי פנימי חשוב שממזג את הטמעות DataStore לתהליך יחיד ולתהליכים מרובים. חשוב לעקוב אחרי שינויים בלתי רצויים בהתנהגות (למשל, תזמון ההתראות על עדכונים). אפשר להשתמש ברכיב למעקב אחר בעיות כדי לדווח על שינויים כאלה.

תכונות חדשות

  • עכשיו אפשר להשתמש ב-DataStore בפרויקטים של KMM. חשוב לזכור שהיעדים של DataStore שאינם ל-Android עדיין נמצאים בגרסת ניסיון, אבל החלטנו למזג את הגרסאות כדי שיהיה קל יותר למפתחים לנסות אותן.
  • התכונות של תהליכים מרובים הועברו מ-androidx.datastore.multiprocess אל androidx.datastore.core.
  • מוסיפים שיטה חדשה של מפעל ב-androidx.datastore.core.MultiProcessDataStoreFactory כדי ליצור מכונות של DataStore עם אובייקטים של Storage לפעולות הקשורות לקובצים.
  • הוספת ממשק חדש InterProcessCoordinator שעוזר למספר מכונות DataStore לתקשר בין תהליכים. שימו לב שהטמעה של InterProcessCoordinator במספר תהליכים זמינה רק ב-Android.

שינויים ב-API

  • הוספת InterProcessCoordinator ל-StorageConnection בממשק datastore-core (I555bb)
  • משנים את ממשקי ה-API ב-datastore-core MultiProcessDataStoreFactory כך שישתמשו ב-Storage. (Iac02f)
  • העברת ממשקי API ציבוריים מ-datastore-multiprocess אל datastore-core (I76d7c)
  • חשיפה של PreferencesSerializer מ-datastore-preferences-core‏ (I4b788)
  • הוספת הערה @JvmDefaultWithCompatibility (I8f206)

גרסה 1.1.0-alpha01

9 בנובמבר 2022

androidx.datastore:datastore-*:1.1.0-alpha01 משוחרר. גרסה 1.1.0-alpha01 כוללת את ההוספות האלה.

תכונות חדשות

  • תמיכה בתרחישי שימוש עם תהליכים מרובים, שבהם עקביות הנתונים מובטחת בין מכונות DataStore בתהליכים שונים. מוסיפים את MultiProcessDataStoreFactory#create כדי ליצור מכונות DataStore כאלה.
  • ממשק אחסון חדש שמאפשר להחליף את מנגנון האחסון הבסיסי של Datastore. יש הטמעות של java.io ו-okio. למפעלים של DataStore יש שיטות חדשות שמקבלות את אובייקט האחסון הזה.

שינויים ב-API

  • משנים את ממשקי ה-API ב-datastore-core MultiProcessDataStoreFactory כך שישתמשו ב-Storage. (Iac02f)
  • העברת ממשקי API ציבוריים מ-datastore-multiprocess אל datastore-core (I76d7c)
  • חשיפה של PreferencesSerializer מ-datastore-preferences-core‏ (I4b788)

גרסה 1.0.0

גרסה 1.0.0

4 באוגוסט 2021

androidx.datastore:datastore-*:1.0.0 משוחרר. גרסה 1.0.0 כוללת את ההצהרות האלה.

תכונות עיקריות בגרסה 1.0.0

Jetpack DataStore הוא פתרון לאחסון נתונים שמאפשר לאחסן צמדי מפתח-ערך או אובייקטים מסוגים שונים באמצעות מאגרי פרוטוקול. ב-DataStore נעשה שימוש ב-coroutines וב-Flow של Kotlin כדי לאחסן נתונים באופן אסינכרוני, עקבי ועסקאותי.

גרסה 1.0.0-rc02

21 ביולי 2021

androidx.datastore:datastore-*:1.0.0-rc02 משוחרר. גרסה 1.0.0-rc02 כוללת את ההצהרות האלה.

תיקוני באגים

  • צריך להבהיר ש-SharedPreferencesMigration לא פועל אם אין מפתחות. (Icfa32, ‏ b/192824325)
  • תיקון באג שבו SharedPreferencesMigration שנוצר באמצעות MIGRATE_ALL_KEYS היה גורם להפעלת חריגה אם המפתח המבוקש עדיין לא קיים. (Ie318a, ‏ b/192824325)

גרסה 1.0.0-rc01

30 ביוני 2021

androidx.datastore:datastore-*:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 כוללת את ההוספות האלה.

תיקוני באגים

  • תיקון באג שבו קובץ ‎ .java נוסף בטעות לקובץ ה-jar הסופי (I65d96, ‏ b/188985637)

גרסה 1.0.0-beta02

16 ביוני 2021

androidx.datastore:datastore-*:1.0.0-beta02 משוחרר. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.

תיקוני באגים

גרסה 1.0.0-beta01

21 באפריל 2021

androidx.datastore:datastore-*:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.

שינויים ב-API

  • הסרת עומסי יתר של JVM לשיטות של kotlin בלבד (I2adc7)

תיקוני באגים

  • תוקן באג שגרם לכך שיכול להיות שסמכויות גישה של מאגר נתונים יגרמו לדליפת הקשרים (Ie96fc, ‏ b/184415662)

גרסה 1.0.0-alpha08

10 במרץ 2021

androidx.datastore:datastore-*:1.0.0-alpha08 משוחרר. גרסה 1.0.0-alpha08 מכילה את ההצהרות האלה.

שינויים ב-API

  • עכשיו אפשר להוסיף העברה שתלויה בהקשר למעביר הגישה של הנכסים dataStore ו-preferencesDataStore. (I4ef69, ‏ b/173726702)
  • הוספת פונקציות עזר כדי לקבל את שם הקובץ אם כבר לא משתמשים ב-datastore delegate או ב-context.createDataStore (I60f9a)
  • הפונקציות writeTo ו-readFrom של ה-Serializer מושהות עכשיו. אם הטמעתם סריאליזטור, תצטרכו לעדכן את הפונקציות כך שיהיו פונקציות השהיה. (I1e58e)
  • נוספו גורמים מואצלים של נכסים למשתמשים ב-RxDataStore. (Ied768, ‏ b/173726702)

תיקוני באגים

  • אכיפה של הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, ‏ b/174531520)

גרסה 1.0.0-alpha07

24 בפברואר 2021

androidx.datastore:datastore-*:1.0.0-alpha07 משוחרר. גרסה 1.0.0-alpha07 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • פונקציית התוסף 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)
  • תיקון התנהגות הביטול כשהיקף הקריאה של מבצע הקריאה בוטל. (I2c7b3)

גרסה 1.0.0-alpha06

13 בינואר 2021

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/‎'. (Ica222)

גרסה 1.0.0-alpha05

2 בדצמבר 2020

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

17 בנובמבר 2020

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

גרסה 1.0.0-alpha03

11 בנובמבר 2020

androidx.datastore:datastore-*:1.0.0-alpha03 משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.

תכונות חדשות

  • ההעדפות תומכות עכשיו בערכים כפולים (שימושי אם אתם צריכים רמת דיוק גבוהה יותר מאשר ערכים צפים) (I5be8f, b/169471808)

שינויים ב-API

  • נוצרה תלות טהורה ב-Kotlin ל-datastore כדי לאפשר הידור מהיר יותר. androidx.datastore:datastore-core מכיל את ממשקי ה-API המרכזיים של Kotlin בלבד, ו-androidx.datastore:datastore מכיל את ממשקי ה-API שתלויים ב-Android (כולל ה-constructor של SharedPreferencesMigration ו-Context.createDataStore). (I42d75,‏ b/168512698)
  • חלוקה של יעדים למאגר נתוני ההעדפות כדי לאפשר הידור מהיר יותר של Kotlin (Ia3c19)
  • מעכשיו, Serializers דורשים מאפיין חדש לערך ברירת המחדל שישמש אם אין נתונים בדיסק. כך קל יותר להטמיע סריאליזציות בהתאמה אישית, כך שמשתמשים לא צריכים לטפל במקרים מיוחדים של מקורות קלט ריקים (מקורות קלט ריקים לא מנותחים באמצעות JSON).

    • בנוסף, יש עכשיו בדיקה כדי לוודא שזרם הפלט שסופק ל-writeTo() לא סגור, ואם הוא סגור, הוא יוצר חריגות (I16e29)
  • הפיכת המבנה של ה-constructor ל-SharedPreferencesView לפנימי. במקור הוא היה גלוי לכולם כדי לאפשר בדיקה. במקום זאת, צריך ליצור בבדיקה אובייקט SharedPreferencesMigration ולבדוק אותו. (I93891)

תיקוני באגים

  • הפרמטר produceFile ב-DataStoreFactory וב-PreferenceDataStoreFactory הוא עכשיו הפרמטר האחרון ברשימה, כך שאפשר להשתמש בסינטקס של lambda נגרר ב-Kotlin. (Ibe7f1, ‏ b/169425442)
  • בהתאם לדרישות החדשות של ממשקי API מפורשים ל-Kotlin (I5ae1e)

בעיות מוכרות

  • Preference Datastore קורס עם השגיאה java.lang.NoClassDefFoundError. (b/173036843)

גרסה 1.0.0-alpha02

14 באוקטובר 2020

androidx.datastore:datastore-core:1.0.0-alpha02 ו-androidx.datastore:datastore-preferences:1.0.0-alpha02 משוחררים. גרסה 1.0.0-alpha02 מכילה את ההצהרות האלה.

תיקוני באגים

  • נוספה הגנה מפני מוטציה ב-datastore-core. מוטציה משבשת את השימוש במאגר הנתונים של אנשים שמשתמשים במאגר נתונים עם סוגי נתונים שאינם proto או העדפות (I6aa84)
  • הוספנו שיטה toString לקובץ Preferences.kt כדי שיהיה קל לנפות באגים במצב הנוכחי (I96006)
  • נוספה החרגה כדי להגן מפני שימוש לרעה ב-DataStore.Preferences (I1134d)
  • תוקן באג שגרם לאפליקציה לקרוס בזמן ההפעלה (I69237, ‏ b/168580258)

גרסה 1.0.0-alpha01

2 בספטמבר 2020

androidx.datastore:datastore-core:1.0.0-alpha01 ו-androidx.datastore:datastore-preferences:1.0.0-alpha01 משוחררים. גרסה 1.0.0-alpha01 מכילה את ההצהרות האלה.

תכונות חדשות

Jetpack DataStore הוא פתרון חדש ומשופר לאחסון נתונים, שנועד להחליף את SharedPreferences. DataStore מבוסס על פונקציות קורוטין ו-Flow ב-Kotlin, ומספק שתי הטמעות שונות:

  • Proto DataStore, שמאפשר לאחסן אובייקטים מסוגים שונים (המגובים על ידי מאגרי פרוטוקול)
  • Preferences DataStore, שמאחסן צמדים של מפתח/ערך

הנתונים נשמרים באופן אסינכררוני, עקבי ועסקאותי, וכך מתגברים על רוב החסרונות של SharedPreferences.