DataStore
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
|---|---|---|---|---|
| 22 Oktober 2025 | 1.1.7 | - | 1.2.0-beta01 | - |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada DataStore, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.
Ada dua implementasi DataStore: Preferensi dan Proto. Pilih salah satu. Anda juga dapat menambahkan dependensi bebas Android ke salah satu implementasi tersebut.
Tambahkan dependensi untuk implementasi yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
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") }
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.2
Versi 1.2.0-beta01
22 Oktober 2025
androidx.datastore:datastore-*:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.
Perubahan API
- Jadikan
CorruptionHandlerpublik. (I9ac35, b/452406457) - Gunakan
androidx.core.util.FunctiondiGuavaDataStore. (I71eae, b/448563999) - Tambahkan overload untuk
GuavaDataStore.fromyang menggunakan Executor, bukanCoroutineContext. (I989fa, b/448563183)
Perbaikan Bug
- Memperbaiki
java.lang.UnsatisfiedLinkErrorsaat menggunakanDataStoredi aplikasi yang dioptimalkan dengan R8, tetapi tidak menggunakangetDefaultProguardFile('android-proguard-optimize.txt'). (I27d0d, b/434696293) - Memperbaiki masalah saat operasi
GuavaDataStoredapat berjalan secara tidak benar di thread panggilan (misalnya, thread utama) dan bukan di dispatcher IO yang ditentukan. (Ic91ea,b/441801112)
Versi 1.2.0-alpha02
7 Mei 2025
androidx.datastore:datastore-*:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.
Perubahan API
- Menambahkan dukungan multiproses di
GuavaDataStore. (e0d608a). - Menambahkan metode helper untuk membuat
GuavaDataStoredariDataStore. (9af26f4) - Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan. (Idb6b5)
- Ganti overload
datastoreyang ada dengan metode delegasi untuk menginisialisasi DataStore yang akan digunakan selama direct boot. (If71b9)
Versi 1.2.0-alpha01
26 Maret 2025
androidx.datastore:datastore-*:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.
Fitur Baru
- Menambahkan modul
datastore-guavauntuk mengekspos API yang cocok untuk pengguna Java dan GuavaListenableFuturemelaluiGuavaDataStore. (Iadd5e0) - Penggunaan
DataStoreselama modeDirectBootkini didukung. Untuk membuat datastore yang akan digunakan selama mode booting langsung, datastore tersebut harus dibuat dalam penyimpanan yang Dilindungi Perangkat. Hal ini dapat dicapai dengan APIDataStorebaru berikut:createInDeviceProtectedStorage()diDataStoreFactorydandeviceProtectedDataStore()diDataStoreDelegate. (Ib90e56)
Perubahan API
- Menambahkan
PreferencesFileSerializeryang menerapkan antarmukaandroidx.datastore.core.Serializeruntuk digunakan denganFileStorage. (I4c71f3)
Perbaikan Bug
- Menyelesaikan masalah
FileNotFoundExceptiondiOkioStoragesaat startup dengan menambahkan percobaan kedua untuk membaca data jika terjadi kondisi persaingan. (I43b3fb, b/337870543) - Menentukan konstruktor default untuk
ReplaceFileCorruptionHandleruntuk penggunaan kode umum. (I795b05, b/358138957)
Versi 1.1
Versi 1.1.7
20 Mei 2025
androidx.datastore:datastore-*:1.1.7 dirilis. Versi 1.1.7 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah aturan Proguard yang tidak ada dalam artefak Android
datastore-preferences-core. (3f3f6e, b/413078297)
Versi 1.1.6
7 Mei 2025
androidx.datastore:datastore-*:1.1.6 dirilis. Versi 1.1.6 berisi commit ini.
Perbaikan Bug
- Menyelesaikan masalah metadata Gradle yang rusak di versi
1.1.5. Masalah ini disebabkan oleh bug di DSL plugin KMP AGP baru yang mencegah metadata untuk semua platform target disertakan secara otomatis. Bug ini menyebabkan beberapa metode DataStore Android tidak lagi terlihat di build klien. Perbaikan ini melibatkan penggunaan DSLandroidyang lebih lama dibuild.gradle, bukanandroidLibrary. (7801abf)
Versi 1.1.5
23 April 2025
androidx.datastore:datastore-*:1.1.5 dirilis. Versi 1.1.5 berisi commit ini.
Perbaikan Bug
- Untuk mengurangi masalah
CorruptionExceptiondiPreferencesDataStore, Penyimpanan default telah diubah dariOkioStoragemenjadiFileStorage. Perubahan ini diterapkan dengan memperkenalkanPreferencesFileSerializer. b/346197747
Versi 1.1.4
26 Maret 2025
androidx.datastore:datastore-*:1.1.4 dirilis. Versi 1.1.4 berisi commit ini.
Perbaikan Bug
- Ganti penyimpanan default dari
OkioStoragemenjadiFileStorageuntuk meningkatkan keandalan dengan mengurangiCorruptionException. (I71181, b/346197747)
Versi 1.1.3
26 Februari 2025
androidx.datastore:datastore-*:1.1.3 dirilis. Versi 1.1.3 berisi commit ini.
Perbaikan Bug
- Menyelesaikan masalah
FileNotFoundExceptiondiOkioStorageyang terjadi saat aplikasi dimulai. Jika upaya pembacaan file awal tidak berhasil, upaya kedua akan dilakukan jika terjadi kondisi persaingan karena file dibuat oleh proses yang berbeda selama pembacaan awal. (I43b3f, b/337870543)
Versi 1.1.2
15 Januari 2025
androidx.datastore:datastore-*:1.1.2 dirilis. Versi 1.1.2 berisi commit ini.
Perbaikan Bug
- Meningkatkan latensi baca hangat (
DataStore.data.first()) hingga 8x. (22b8a40) ReplaceFileCorruptionHandlerdapat dibuat dari kode umum KMP. (7632e839)
Versi 1.1.1
1 Mei 2024
androidx.datastore:datastore-*:1.1.1 dirilis. Versi 1.1.1 berisi commit ini.
Perbaikan Bug
- Mengurangi alarm palsu Linux pada error "Resource deadlock would occur" dalam kasus sudut ketika beberapa instance
DataStoremencoba menulis dari proses yang berbeda dengan melepaskan kunci file.
Versi 1.1.0
17 April 2024
androidx.datastore:datastore-*:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.
Perubahan utama sejak rilis versi 1.0.0
Tinjau catatan rilis dari versi alfa dan beta 1.1.0 untuk mengetahui info selengkapnya. Beberapa update utama di 1.1.0 adalah:
- DataStore kini mendukung beberapa proses yang mengakses file yang sama, dengan dukungan untuk kemampuan pengamatan di seluruh proses.
- Antarmuka Storage baru memungkinkan Anda menyesuaikan cara menyimpan atau menyerialkan model data.
- Anda kini dapat menggunakan DataStore di project Multiplatform Kotlin.
Versi 1.1.0-rc01
3 April 2024
androidx.datastore:datastore-*:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.
Perbaikan Bug
- Memperbaiki penurunan performa saat panggilan
updateDatatidak mengoptimalkan penulisan disk jika data baru sama dengan data lama (d64cfb5) - Memperbaiki kondisi race saat
MultiProcessDataStoremungkin kehilangan pembatalan validasi selama inisialisasi. ((b/326141553),(094c2dd))
Versi 1.1.0-beta02
6 Maret 2024
androidx.datastore:datastore-*:1.1.0-beta02 dirilis. Versi 1.1.0-beta02 berisi commit ini.
Perbaikan Bug
- Peningkatan performa pada
DataStorehanya mengumpulkan notifikasi update saat diamati. (b/267792241)- Perhatikan bahwa perubahan ini dapat memicu
UncompletedCoroutinesErrordalam pengujian Anda jika Anda menggunakan library pengujian Coroutine. Pastikan Anda meneruskanTestScope.backgroundScopesaat menginisialisasiDataStoredalam pengujian untuk menghindari masalah ini.
- Perhatikan bahwa perubahan ini dapat memicu
- Memperbaiki masalah panggilan
updateDatabertingkat pada instance yang sama yang akan mengalami kebuntuan. (b/241760537) - Membuat
DataStoretidak lagi memunculkanIOExceptionsjika gagal menghapusSharedPreferencesselama migrasi. (b/195553816) - Memperbaiki masalah saat penggantian nama file gagal selama
updateDatadi lingkungan JVM non-Android. (b/203087070) - Memperbaiki masalah saat
CorruptionExceptiontidak ditangani setelah inisialisasiDataStore. (b/289582516)
Versi 1.1.0-beta01
10 Januari 2024
androidx.datastore:datastore-*:1.1.0-beta01 dirilis tanpa perubahan sejak 1.1.0-alpha07. Versi 1.1.0-beta01 berisi commit berikut.
Versi 1.1.0-alpha07
29 November 2023
androidx.datastore:datastore-*:1.1.0-alpha07 dirilis. Versi 1.1.0-alpha07 berisi commit ini.
Perubahan API
- Metode
MultiProcessDataStoreFactorytidak lagi bersifat eksperimental.Anotasi@ExperimentalMultiProcessDataStoretelah dihapus sepenuhnya. (Ieee54, I8e607)
Perbaikan Bug
- Meluncurkan penghapusan anotasi
@ExperimentalMultiProcessDataStoreke 1.1.0-alpha07. (I8e607)
Versi 1.1.0-alpha06
1 November 2023
androidx.datastore:datastore-*:1.1.0-alpha06 dirilis. Versi 1.1.0-alpha06 berisi commit ini.
Perubahan API
- Metode factory
createSingleProcessCoordinatorkini menerima jalur file (String,java.io.File, danokio.Path) agar konsisten dengancreateMultiProcessCoordinator. (I211c8, b/305755935)
Versi 1.1.0-alpha05
6 September 2023
androidx.datastore:datastore-*:1.1.0-alpha05 dirilis. Versi 1.1.0-alpha05 berisi commit ini.
Perubahan API
- Datastore
FileStoragekini tersedia secara publik, sehingga klien dapat memberikan parameter kustom. (Icb985) - Mengubah konstruktor
OkioStorageagar menerimaInterProcessCoordinatorsehingga dapat digunakan di Android denganMultiProcessCoordinator. (Iecea3)
Perbaikan Bug
- Memperbaiki
MultiProcessCoordinatoryang tidak dapat memantau beberapa file dalam direktori yang sama. - Memperbaiki masalah tidak dapat mendeteksi file duplikat jika jalur file tidak dinormalisasi.
- Memperbaiki nilai salah yang ditampilkan dari
RxDataStore#isDisposed. - Memperbaiki konfigurasi proguard yang tidak ada untuk artefak
datstore-preferences-core.
Versi 1.1.0-alpha04
5 April 2023
androidx.datastore:datastore-*:1.1.0-alpha04 dirilis. Versi 1.1.0-alpha04 berisi commit ini.
Perbaikan Bug
- Meningkatkan penerapan internal untuk menghindari kondisi persaingan saat alur data
DataStoredapat memancarkan nilai yang lebih lama setelah update.
Versi 1.1.0-alpha03
24 Maret 2023
androidx.datastore:datastore-*:1.1.0-alpha03 dirilis.
Perbaikan Bug
- Menghapus batasan dependensi dari artefak Maven untuk mengatasi masalah build di Target Native Kotlin (b/274786186, KT-57531).
Versi 1.1.0-alpha02
22 Maret 2023
androidx.datastore:datastore-*:1.1.0-alpha02 dirilis. Versi 1.1.0-alpha02 berisi commit ini.
Catatan
Perhatikan bahwa versi ini mencakup refaktor internal penting yang menggabungkan penerapan untuk penerapan DataStore proses tunggal dan multi-proses. Perhatikan kemungkinan perubahan perilaku yang tidak diinginkan (misalnya, waktu notifikasi update). Anda dapat menggunakan komponen pelacak masalah untuk melaporkan perubahan tersebut.
Fitur Baru
- Anda kini dapat menggunakan
DataStoredi project KMM. Perhatikan bahwa target non-Android DataStore masih bersifat eksperimental, tetapi kami memutuskan untuk menggabungkan versi agar developer lebih mudah mencobanya. - Fitur multi-proses dipindahkan dari
androidx.datastore.multiprocesskeandroidx.datastore.core. - Tambahkan metode factory baru di
androidx.datastore.core.MultiProcessDataStoreFactoryuntuk membuat instance DataStore dengan objekStorageuntuk operasi file. - Menambahkan antarmuka
InterProcessCoordinatorbaru yang membantu beberapa instance DataStore berkomunikasi di seluruh proses. Perhatikan bahwa penerapan Multi-ProsesInterProcessCoordinatorhanya tersedia di Android.
Perubahan API
- Menambahkan
InterProcessCoordinatorkeStorageConnectiondi antarmuka datastore-core (I555bb) - Mengubah API dalam datastore-core
MultiProcessDataStoreFactoryuntuk menggunakan Storage. (Iac02f) - Memindahkan API publik dalam datastore-multiprocess ke datastore-core (I76d7c)
- Mengekspos
PreferencesSerializerdari datastore-preferences-core (I4b788) - Menambahkan anotasi
@JvmDefaultWithCompatibility(I8f206)
Versi 1.1.0-alpha01
9 November 2022
androidx.datastore:datastore-*:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit ini.
Fitur Baru
- Mendukung kasus penggunaan multiproses tempat konsistensi data terjamin di antara instance
DataStoredi seluruh proses. TambahkanMultiProcessDataStoreFactory#createuntuk membuat instanceDataStoretersebut. - Antarmuka Storage baru yang memungkinkan mekanisme penyimpanan dasar agar
Datastoredialihkan. Implementasi untuk java.io dan okio tersedia. FactoryDataStorememiliki metode baru yang menerima objek Storage ini.
Perubahan API
- Mengubah API dalam datastore-core
MultiProcessDataStoreFactoryuntuk menggunakan Storage. (Iac02f) - Memindahkan API publik dalam datastore-multiprocess ke datastore-core (I76d7c)
- Mengekspos
PreferencesSerializerdari datastore-preferences-core (I4b788)
Versi 1.0.0
Versi 1.0.0
4 Agustus 2021
androidx.datastore:datastore-*:1.0.0 dirilis. Versi 1.0.0 berisi commit ini.
Fitur utama 1.0.0
Jetpack DataStore adalah solusi penyimpanan data yang memungkinkan Anda menyimpan key-value pair atau objek yang diketik dengan buffering protokol. DataStore menggunakan coroutine Kotlin dan Flow untuk menyimpan data secara asinkron, konsisten, dan transaksional.
Versi 1.0.0-rc02
21 Juli 2021
androidx.datastore:datastore-*:1.0.0-rc02 dirilis. Versi 1.0.0-rc02 berisi commit ini.
Perbaikan Bug
- Mengklarifikasi bahwa
SharedPreferencesMigrationtidak berjalan jika tidak ada kunci. (Icfa32, b/192824325) - Memperbaiki bug ketika
SharedPreferencesMigrationyang dibuat denganMIGRATE_ALL_KEYSakan memunculkan pengecualian jika kunci yang diminta belum ada. (Ie318a, b/192824325)
Versi 1.0.0-rc01
30 Juni 2021
androidx.datastore:datastore-*:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit berikut ini.
Perbaikan Bug
- Memperbaiki bug yang menyebabkan file .java tidak sengaja ditambahkan ke JAR final (I65d96, b/188985637)
Versi 1.0.0-beta02
16 Juni 2021
androidx.datastore:datastore-*:1.0.0-beta02 dirilis. Versi 1.0.0-beta02 berisi commit ini.
Perbaikan Bug
- Memperbaiki
ClassVerificationFailure(b/187450483)
Versi 1.0.0-beta01
21 April 2021
androidx.datastore:datastore-*:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.
Perubahan API
- Menghapus kelebihan JVM untuk metode khusus kotlin (I2adc7)
Perbaikan Bug
- Memperbaiki bug tempat delegasi datastore dapat menyebabkan kebocoran konteks (Ie96fc, b/184415662)
Versi 1.0.0-alpha08
10 Maret 2021
androidx.datastore:datastore-*:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit ini.
Perubahan API
- Sekarang Anda dapat menambahkan migrasi yang bergantung pada konteks ke delegasi properti
dataStoredanpreferencesDataStore. (I4ef69, b/173726702) - Menambahkan fungsi bantuan untuk mendapatkan nama file jika Anda tidak lagi menggunakan delegasi datastore atau context.createDataStore (I60f9a)
- Penserialisasi writeTo dan readFrom sekarang menjadi penangguhan. Jika telah menerapkan Penserialisasi, Anda harus memperbarui fungsi agar menjadi fungsi penangguhan. (I1e58e)
- Menambahkan delegasi properti untuk pengguna RxDataStore. (Ied768, b/173726702)
Perbaikan Bug
- Menerapkan batasan di penggunaan publik API eksperimental (I6aa29, b/174531520)
Versi 1.0.0-alpha07
24 Februari 2021
androidx.datastore:datastore-*:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit ini.
Perubahan API
Fungsi ekstensi
Context.createDataStoretelah dihapus dan diganti dengan delegasi properti globalDataStore. Panggil globalDataStore sekali di tingkat atas dalam file kotlin Anda. Contoh:val Context.myDataStore by dataStore(...)Letakkan ini di tingkat atas file kotlin Anda sehingga hanya ada satu instance. (I57215, b/173726702)
Fungsi RxDataStore sekarang berada di class RxDataStore, bukan fungsi ekstensi di DataStore. (Idccdb, b/177691248)
Jika ingin memigrasikan EncryptedSharedPreferences (atau booting langsung SharedPreferences) ke DataStore, kini Anda dapat melakukannya dengan konstruktor SharedPreferencesMigration baru yang memungkinkan Anda untuk memasukkan SharedPreferences. (I8e04e, b/177278510)
Perbaikan Bug
- DataStore sekarang akan memberikan pengecualian jika ada beberapa DataStore aktif untuk file yang sama. Jika Anda tidak mengelola DataStore sebagai Singleton atau tidak memastikan bahwa tidak ada dua instance DataStore yang aktif secara bersamaan untuk suatu file, maka Anda dapat melihat pengecualian saat membaca atau menulis ke DataStore. Hal ini dapat diperbaiki dengan mengelola DataStore Anda sebagai Singleton. (Ib43f4, b/177691248)
- Perbaiki perilaku pembatalan saat cakupan pemanggil dibatalkan. (I2c7b3)
Versi 1.0.0-alpha06
13 Januari 2021
androidx.datastore:datastore-*:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit ini.
Fitur Baru
- Menambahkan wrapper RxJava untuk DataStore. Artefak
datastore-rxjava2/3berisi wrapper untuk DataStore API inti (RxDataStore,RxDataStoreBuilder, danRxDataMigration). Artefakdatastore-preferences-rxjava2/3berisi builder untuk menyusun Preference DataStore.
Perubahan API
- Menyembunyikan antarmuka CorruptionHandler. Tidak ada alasan untuk menampilkannya ke publik karena factory DataStore hanya menerima ReplaceFileCorruptionHandler. (I0b3b3, b/176032264)
- Metode
preferencesKey<T>(name: String): Key<T>telah dihapus dan diganti dengan metode khusus untuk setiap jenis yang didukung, misalnyapreferencesKey<Int>("int")sekarangintPreferencesKey("int")(Ibcfac, b/170311106)
Perbaikan Bug
- Memperbaiki dokumentasi di DataStoreFactory yang mengabaikan fakta bahwa file datastore dibuat di subdirektori "datastore/". (Ica222)
Versi 1.0.0-alpha05
2 Desember 2020
androidx.datastore:datastore-*:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.
Perbaikan Bug
- Menambahkan dokumentasi dan pengecualian yang lebih baik seputar penulisan serentak dari datastore. (Ia98a2, b/173522155, b/173726702)
- Kini kami mengizinkan (tetapi tidak mengharuskan) OutputStream diteruskan ke
Serializer.writeTo()untuk ditutup. (I5c9bf, b/173037611)
Versi 1.0.0-alpha04
17 November 2020
androidx.datastore:datastore-*:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah paket yang menyebabkan error berikut di Preference Datastore
1.0.0-alpha03:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- Error ini awalnya dilaporkan di sini: b/173036843
- (I4712d, b/173036843)
Versi 1.0.0-alpha03
11 November 2020
androidx.datastore:datastore-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut ini.
Fitur Baru
- Preferensi kini mendukung nilai ganda (yang berguna jika Anda lebih memerlukan presisi daripada float) (I5be8f, b/169471808)
Perubahan API
- Membuat dependensi kotlin murni untuk datastore guna memungkinkan kompilasi yang lebih cepat.
androidx.datastore:datastore-coreberisi API khusus kotlin inti danandroidx.datastore:datastoreberisi API yang bergantung pada android (termasuk konstruktorSharedPreferencesMigrationdanContext.createDataStore.)(I42d75, b/168512698) - Memisahkan target untuk penyimpanan data preferensi agar kompilasi kotlin lebih cepat (Ia3c19)
Penserialisasi kini memerlukan properti baru untuk nilai default yang akan digunakan jika tidak ada data pada disk. Hal ini mempermudah implementasi penserialisasi kustom sehingga pengguna tidak harus memperlakukan aliran data input kosong sebagai kasus khusus (aliran data input kosong tidak diurai dengan json).
- Selain itu, kini juga terdapat pemeriksaan untuk mengonfirmasi bahwa aliran data output yang diberikan ke writeTo() tidak ditutup, dan jika ditutup, akan ada pengecualian (I16e29)
Membuat konstruktor untuk internal SharedPreferencesView. Ini awalnya bersifat publik untuk mengizinkan pengujian. Sebagai gantinya, pengujian harus membuat SharedPreferencesMigration dan melakukan pengujian terhadapnya. (I93891)
Perbaikan Bug
- Parameter
produceFilepadaDataStoreFactorydanPreferenceDataStoreFactorykini menjadi parameter terakhir dalam daftar sehingga memungkinkan Anda menggunakan sintaksis lambda akhir kotlin. (Ibe7f1, b/169425442) - Mengikuti persyaratan API eksplisit baru untuk kotlin (I5ae1e)
Masalah Umum
- Preference Datastore mengalami error dengan
java.lang.NoClassDefFoundError. (b/173036843)
Versi 1.0.0-alpha02
14 Oktober 2020
androidx.datastore:datastore-core:1.0.0-alpha02 dan androidx.datastore:datastore-preferences:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perbaikan Bug
- Menambahkan pengamanan terhadap mutasi di datastore-core. Mutasi akan menyebabkan gangguan pada penggunaan datastore untuk orang yang menggunakan datastore dengan jenis non-proto/non-preferences (I6aa84)
- Menambahkan metode
toStringke Preferences.kt agar status saat ini mudah di-debug (I96006) - Menambahkan pengecualian agar tidak terjadi penyalahgunaan
DataStore.Preferences(I1134d) - Memperbaiki bug yang akan menyebabkan aplikasi mengalami error saat memulai (I69237, b/168580258)
Versi 1.0.0-alpha01
2 September 2020
androidx.datastore:datastore-core:1.0.0-alpha01 dan androidx.datastore:datastore-preferences:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
Jetpack DataStore adalah solusi penyimpanan data baru dan telah disempurnakan yang ditujukan untuk mengganti SharedPreferences. Di-build pada coroutine Kotlin dan Flow, DataStore menyediakan dua implementasi yang berbeda:
- Proto DataStore, yang memungkinkan Anda menyimpan objek yang diketik (didukung oleh buffering protokol)
- Menjadikan DataStore sebagai preferensi, yang menyimpan key-value pair
Data disimpan secara asinkron, konsisten, dan transaksional, yang mengatasi sebagian besar kelemahan SharedPreferences.