DataStore
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 20 במאי 2025 | 1.1.7 | - | - | 1.2.0-alpha02 |
הצהרת יחסי תלות
כדי להוסיף יחסי תלות ל-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.7" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.7" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.7" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.7" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.7") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.7") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.7") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.7") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.7" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.7" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.7" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.7" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.7") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.7") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.7") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.7") }
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 1.2
גרסה 1.2.0-alpha02
7 במאי 2025
androidx.datastore:datastore-*:1.2.0-alpha02 משוחרר. הגרסה 1.2.0-alpha02 מכילה את ההוספות האלה.
שינויים ב-API
- נוספה תמיכה במספר תהליכים ב-
GuavaDataStore. (e0d608a). - נוספה שיטה מסייעת ליצירת
GuavaDataStoreמ-DataStore. (9af26f4) - כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך להשתמש ב-KGP 2.0.0 ואילך. (Idb6b5)
- מחליפים את עומס יתר הקיים של
datastoreבשיטת הענקת גישה (delegate) כדי לאתחל את DataStore לשימוש במהלך אתחול ישיר. (If71b9)
גרסה 1.2.0-alpha01
26 במרץ 2025
androidx.datastore:datastore-*:1.2.0-alpha01 משוחרר. גרסת 1.2.0-alpha01 כוללת את ההוספות האלה.
תכונות חדשות
- הוספנו את המודול
datastore-guavaכדי לחשוף ממשקי API ידידותיים למשתמשי Java ו-GuavaListenableFutureדרךGuavaDataStore. (Iadd5e0) - עכשיו יש תמיכה בשימוש ב-
DataStoreבמהלך מצבDirectBoot. כדי ליצור מאגר נתונים לשימוש במצב אתחול ישיר, צריך ליצור אותו באחסון המוגן של המכשיר. אפשר לעשות זאת באמצעות ממשקי ה-API החדשים הבאים שלDataStore:createInDeviceProtectedStorage()ב-DataStoreFactoryו-deviceProtectedDataStore()ב-DataStoreDelegate. (Ib90e56)
שינויים ב-API
- נוספה
PreferencesFileSerializerשמטמיעה את ממשקandroidx.datastore.core.Serializerלשימוש עםFileStorage. (I4c71f3)
תיקוני באגים
- פתרון בעיה ב-
FileNotFoundExceptionב-OkioStorageבזמן ההפעלה על ידי הוספת ניסיון שני לקריאת נתונים במקרה של תנאי מרוץ. (I43b3fb, b/337870543) - הגדרת ה-constructor שמוגדר כברירת מחדל ל-
ReplaceFileCorruptionHandlerלשימוש נפוץ בקוד. (I795b05, b/358138957)
גרסה 1.1
גרסה 1.1.7
20 במאי 2025
androidx.datastore:datastore-*:1.1.7 משוחרר. גרסה 1.1.7 מכילה את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה של כללי Proguard חסרים בארטיפקט של Android ב-
datastore-preferences-core. (3f3f6e, b/413078297)
גרסה 1.1.6
7 במאי 2025
androidx.datastore:datastore-*:1.1.6 משוחרר. גרסת 1.1.6 מכילה את ההוספות האלה.
תיקוני באגים
- נפתרה בעיה שבה המטא-נתונים של Gradle היו שבורים בגרסה
1.1.5. הבעיה נגרמה בגלל באג ב-DSL החדש של הפלאגין AGP KMP, שגרם לכך שלא כל המטא-נתונים של כל פלטפורמות היעד נכללו באופן אוטומטי. הבאג גורם לכך שחלק מהשיטות של DataStore ל-Android כבר לא מוצגות ב-builds של הלקוחות. התיקון כולל שימוש ב-DSL הקודם שלandroidב-build.gradleבמקום ב-androidLibrary. (7801abf)
גרסה 1.1.5
23 באפריל 2025
androidx.datastore:datastore-*:1.1.5 משוחרר. גרסה 1.1.5 מכילה את ההוספות האלה.
תיקוני באגים
- כדי לצמצם בעיות ב-
CorruptionExceptionב-PreferencesDataStore, סוג האחסון שמוגדר כברירת מחדל השתנה מ-OkioStorageל-FileStorage. השינוי הזה יושם באמצעותPreferencesFileSerializer. b/346197747
גרסה 1.1.4
26 במרץ 2025
androidx.datastore:datastore-*:1.1.4 משוחרר. גרסה 1.1.4 מכילה את ההוספות האלה.
תיקוני באגים
- כדי לשפר את האמינות, מחליפים את אחסון ברירת המחדל מ-
OkioStorageל-FileStorageעל ידי צמצוםCorruptionException. (I71181, b/346197747)
גרסה 1.1.3
26 בפברואר 2025
androidx.datastore:datastore-*:1.1.3 משוחרר. גרסת 1.1.3 מכילה את ההוספות האלה.
תיקוני באגים
- נפתרה בעיה ב-
FileNotFoundExceptionב-OkioStorageשנתקלה בהפעלת האפליקציה. אם ניסיון הקריאה הראשוני של הקובץ נכשל, יתבצע ניסיון שני למקרה שהתרחש מצב מרוץ (race condition) בגלל שהקובץ נוצר על ידי תהליך אחר במהלך הקריאה הראשונית. (I43b3f, b/337870543)
גרסה 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) - תוקן מצב מרוץ שבו
MultiProcessDataStoreעלול לפספס ביטולים במהלך האתחול. ((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בבדיקות.
- הערה: אם אתם משתמשים בספריית הבדיקה של Coroutines, השינוי הזה עלול להפעיל את
- תוקנה בעיה שבה קריאות
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 מכילה את ההוספות האלה.
תיקוני באגים
- שיפור ההטמעה הפנימית כדי למנוע מצב מרוץ שבו זרימת הנתונים של
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 כוללת את ההצהרות האלה על ביצוע שינויים (commits).
תכונות עיקריות בגרסה 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 מכילה את ההצהרות האלה.
תיקוני באגים
- תיקון
ClassVerificationFailure(b/187450483)
גרסה 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 מכילה את ההצהרות האלה.
שינויים ב-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מכילים בונה ליצירת מאגר של העדפות.
שינויים ב-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- הדיווח המקורי על הקריסה פורסם כאן: b/173036843
- (I4712d, b/173036843)
גרסה 1.0.0-alpha03
11 בנובמבר 2020
androidx.datastore:datastore-*:1.0.0-alpha03 משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.
תכונות חדשות
- עכשיו אפשר להשתמש בערכים מסוג double בהעדפות (הדבר שימושי אם אתם צריכים רמת דיוק גבוהה יותר מאשר ערכים מסוג float) (I5be8f, b/169471808)
שינויים ב-API
- נוצרה תלות טהורה ב-Kotlin ל-datastore כדי לאפשר הידור מהיר יותר.
androidx.datastore:datastore-coreמכיל את ממשקי ה-API של הליבה של Kotlin בלבד, ו-androidx.datastore:datastoreמכיל את ממשקי ה-API שתלויים ב-Android (כולל המבנהSharedPreferencesMigrationוהמבנה הגנרטיביContext.createDataStore). (I42d75, b/168512698) - חלוקה של יעדים למאגר נתוני ההעדפות כדי לאפשר הידור מהיר יותר של Kotlin (Ia3c19)
מעכשיו, סריאליזרים דורשים מאפיין חדש עבור ערך ברירת המחדל שישמש אם אין נתונים בדיסק. כך קל יותר להטמיע סריאליזציות בהתאמה אישית, כדי שמשתמשים לא יצטרכו לטפל במקרים מיוחדים של מקורות קלט ריקים (מקורות קלט ריקים לא מנותחים באמצעות JSON).
- בנוסף, יש עכשיו בדיקה כדי לוודא שזרם הפלט שסופק ל-writeTo() לא סגור, ואם הוא סגור, הוא יוצר חריגות (I16e29)
הפיכת המבנה הגנרטיבי של 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.