מאגר נתונים
העדכון האחרון | גרסה יציבה | מועמד לפרסום | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
1 במאי 2024 | 1.1.1 | - | - | - |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-DataStore, עליכם להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.
יש שתי הטמעות של DataStore: העדפות ו-Proto. בוחרים באחת משתי האפשרויות. אפשר גם להוסיף יחסי תלות ללא Android יישום בפועל.
צריך להוסיף את יחסי התלות להטמעה שדרושה לך בקובץ build.gradle
של האפליקציה או המודול:
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.1" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.1") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.1" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.1") }
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.
מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.
גרסה 1.1
גרסה 1.1.1
1 במאי 2024
androidx.datastore:datastore-*:1.1.1
משוחרר. גרסה 1.1.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- התראת שווא ב-Linux שהוחלה על "מבוי סתום של משאבים" בתרחיש פינתי, מספר מכונות של
DataStore
מנסות לכתוב מתהליכים שונים על ידי גיבוי של נעילת הקובץ.
גרסה 1.1.0
17 באפריל 2024
androidx.datastore:datastore-*:1.1.0
משוחרר. גרסה 1.1.0 כוללת את ההתחייבויות האלה.
שינויים משמעותיים מאז גרסה 1.0.0
מידע נוסף זמין בנתוני הגרסה בגרסאות אלפא ובטא של 1.1.0. אלה חלק מהעדכונים העיקריים בגרסה 1.1.0:
- ב-DataStore יש עכשיו תמיכה בתהליכים מרובים שניגשים לאותו קובץ, עם תמיכה בניראות (observability) בין תהליכים.
- ממשק האחסון החדש מאפשר להתאים אישית את האופן שבו לאחסן את המודלים של הנתונים או ליצור סריאליזציה שלהם.
- עכשיו אפשר להשתמש ב-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)- לתשומת ליבך, השינוי הזה עשוי להפעיל את
UncompletedCoroutinesError
בבדיקות שלך אם משתמשים בספריית הבדיקות של Coroutines. כדי להימנע מהבעיה הזו, חשוב להקפיד לעבור אתTestScope.backgroundScope
בזמן אתחולDataStore
בבדיקות.
- לתשומת ליבך, השינוי הזה עשוי להפעיל את
- תוקנה הבעיה של קריאות
updateData
בתצוגת עץ באותו מכונה שגרמה לנעילה. (b/241760537) DataStore
לא גורם יותר לזרוקIOExceptions
אם המחיקה שלSharedPreferences
נכשלה במהלך ההעברה. (b/195553816)- תוקנה הבעיה שבה שינוי שם של קובץ נכשל במהלך
updateData
בסביבות שאינן Android JVM. (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
- Datastore
FileStorage
זמין עכשיו באופן ציבורי, כך שהלקוחות יכולים לספק פרמטרים מותאמים אישית. (Icb985) - constructor של
OkioStorage
השתנה כדי לקבלInterProcessCoordinator
כדי שניתן יהיה להשתמש בו ב-Android עםMultiProcessCoordinator
. (Iecea3)
תיקוני באגים
- פתרון בעיות ב-
MultiProcessCoordinator
כאשר לא ניתן לעקוב אחר קבצים מרובים באותה ספרייה. - תיקון הבעיה שלא ניתן לזהות קבצים כפולים אם נתיבי הקבצים לא מנורמלים.
- תיקון ערכים שגויים שהוחזרו מ-
RxDataStore#isDisposed
. - צריך לתקן הגדרה חסרה של Protected עבור פריט מידע שנוצר בתהליך הפיתוח (Artifact) מסוג
datstore-preferences-core
.
גרסה 1.1.0-alpha04
5 באפריל 2023
androidx.datastore:datastore-*:1.1.0-alpha04
משוחרר. גרסה 1.1.0-alpha04 מכילה את התחייבויות אלה.
תיקוני באגים
- כדאי לשפר את ההטמעה הפנימית כדי למנוע מרוץ תהליכים שבו זרימת הנתונים של
DataStore
עשויה לפלוט ערך ישן אחרי עדכון.
גרסה 1.1.0-alpha03
24 במרץ 2023
androidx.datastore:datastore-*:1.1.0-alpha03
משוחרר.
תיקוני באגים
- הוסרו מגבלות התלות מפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של 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
בממשק ליבה של מאגר נתונים (I555bb) - שינוי ממשקי ה-API בליבת מאגר הנתונים
MultiProcessDataStoreFactory
כדי להשתמש באחסון. (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 בליבה של מאגר הנתונים
MultiProcessDataStoreFactory
כדי להשתמש באחסון. (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 משתמשים בקורוטינים וב-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 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תיקון באג שבו קובץ .JavaScript נוסף בטעות לצנצנת סופית (I65d96, b/188985637)
גרסה 1.0.0-beta02
16 ביוני 2021
androidx.datastore:datastore-*:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את התחייבויות אלה.
תיקוני באגים
- תיקון
ClassVerificationFailure
(b/187450483)
גרסה 1.0.0-beta01
21 באפריל 2021
androidx.datastore:datastore-*:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- הסרת עומסי יתר של JVM ל-methods של 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) - הוספת פונקציות מסייעות לקבלת שם הקובץ אם אתם כבר לא משתמשים בהרשאת גישה למאגר הנתונים או בהקשר.createDataStore (I60f9a)
- האפשרויות 'כתיבה אל' ו-'ReadFrom' מושהות עכשיו. אם הטמעתם מכשיר סריאליזציה, תצטרכו לעדכן את הפונקציות כדי להגדיר פונקציות השעיה. 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 מכילה את התחייבויות אלה.
שינויים ב-API
פונקציית התוסף
Context.createDataStore
הוסרה והוחלפה בהרשאה לנכס מסוג globalDataStore. קוראים ל-globalDataStore פעם אחת ברמה העליונה בקובץ ה-kotlin לדוגמה:val Context.myDataStore by dataStore(...)
שים את הקובץ ברמה העליונה של קובץ Kotlin כדי שיהיה רק מופע אחד שלו. (I57215, b/173726702)
הפונקציות של RxDataStore נמצאות עכשיו במחלקה RxDataStore במקום בפונקציות של תוספים ב-DataStore. (Idccdb, b/177691248)
אם רוצים להעביר את EncryptedSharedPreferences (או לבצע הפעלה ישירה של SharedPreferences) ל-DataStore, אפשר לעשות זאת כעת באמצעות ה-constructor החדש של SharedPreferencesmigration, שמאפשר להחדיר את SharedPreferences. (I8e04e, b/177278510)
תיקוני באגים
- DataStore יוסיף עכשיו חריגת אם יש מספר מאגרי נתונים פעילים עבור אותו קובץ. אם לא ביצעתם ניהול של מאגר הנתונים כ-Singleton או שלא וידאתם שאין שני מופעים של DataStore פעילים בו-זמנית בקובץ מסוים, ייתכן שיופיעו חריגים בקריאה או כתיבה ל-DataStore. אפשר לתקן את השגיאות על ידי ניהול מאגר הנתונים כ-Singleton. (Ib43f4, b/177691248)
- צריך לתקן את התנהגות הביטול כשהיקף המתקשר מבוטל. (I2c7b3)
גרסה 1.0.0-alpha06
13 בינואר 2021
androidx.datastore:datastore-*:1.0.0-alpha06
משוחרר. גרסה 1.0.0-alpha06 מכילה את התחייבויות אלה.
תכונות חדשות
- נוספו wrappers של RxJava ל-DataStore. פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) של
datastore-rxjava2/3
מכילים את רכיבי ה-wrapper של ממשקי ה-API העיקריים של DataStore (RxDataStore
,RxDataStoreBuilder
ו-RxDataMigration
). פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) שלdatastore-preferences-rxjava2/3
מכילים builder ליצירת מאגר נתונים של העדפות.
שינויים ב-API
- הסתרת הממשק CorruptionHandler. לא הייתה סיבה לכך שהוא יהיה ציבורי, כי המפעל DataStore מקבל רק ExchangeFileCorruptionHandler. (I0b3b3, b/176032264)
- ה-method
preferencesKey<T>(name: String): Key<T>
הוסרה והוחלפה ב-methods ספציפיות לכל סוג נתמך. לדוגמה,preferencesKey<Int>("int")
נקראת עכשיוintPreferencesKey("int")
(Ibcfac, b/170311106)
תיקוני באגים
- מתקן תיעוד ב-DataStoreStore, שהשמט את העובדה שקובץ מאגר הנתונים נוצר בספריית המשנה '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
- הקריסה דווחה במקור כאן: b/173036843
- (I4712d, b/173036843)
גרסה 1.0.0-alpha03
11 בנובמבר 2020
androidx.datastore:datastore-*:1.0.0-alpha03
משוחרר. גרסה 1.0.0-alpha03 מכילה את התחייבויות אלה.
תכונות חדשות
- ההעדפות תומכות עכשיו בערכים כפולים (שימושי במקרה של דיוק רב יותר מאשר צפים) (I5be8f, b/169471808)
שינויים ב-API
- נוצרה תלות טהור ב-Kotlin למאגר נתונים כדי לאפשר הידור מהיר יותר.
androidx.datastore:datastore-core
מכיל את ממשקי ה-API העיקריים של Kotlin בלבד, ו-androidx.datastore:datastore
מכיל את ממשקי ה-API שתלויים ב-Android (כולל אתSharedPreferencesMigration
ואת ה-constructor שלContext.createDataStore
.)(I42d75, b/168512698) - פיצול יעדים למאגר הנתונים של העדפות כדי להדר מהר יותר של kotlin (Ia3c19)
למכשירים עם יציאה טורית נדרשת עכשיו מאפיין חדש עבור ערך ברירת המחדל שישמש אם אין נתונים בדיסק. כך קל יותר להטמיע מכשירים סידוריים מותאמים אישית, כך שלא יהיה צורך להשתמש בזרמי קלט ריקים עם אותיות רישיות (למשל, זרמי קלט ריקים לא מנתחים באמצעות JSON).
- בנוסף, יש עכשיו בדיקה שמוודאת שזרם הפלט שסופק ל-WriteTo() אינו סגור, ואם הוא סגור הוא גורם חריגות (I16e29)
הגדרת ה-constructor של SharedPreferencesView לשימוש פנימי. במקור הוא היה ציבורי כדי לאפשר בדיקה. במקום זאת, הבדיקות צריכות ליצור SharedPreferencesMigration (העברה) ולבדוק זאת על סמך הנתונים האלה. (I93891)
תיקוני באגים
- הפרמטר
produceFile
ב-DataStoreFactory
וב-PreferenceDataStoreFactory
הוא עכשיו הפרמטר האחרון ברשימה, ולכן הוא מאפשר להשתמש בתחביר lambda אחרי kotlin. (Ibe7f1, b/169425442) - עמידה בדרישות החדשות המפורשות לגבי API עבור Kotlin (I5ae1e)
בעיות מוכרות
- העדפות 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 מובנה ב-Kotlin וב-Flow, והוא מספק שתי הטמעות שונות:
- Proto DataStore, מאפשר לאחסן אובייקטים מוקלדים (מגובים על ידי מאגרי פרוטוקולים)
- העדפות DataStore, לאחסון צמדי מפתח-ערך
הנתונים מאוחסנים באופן אסינכרוני, בעקביות ובאופן טרנזקציות, וכך מתגברים על רוב החסרונות של SharedPreferences.