Хранилище данных
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
20 мая 2025 г. | 1.1.7 | - | - | 1.2.0-альфа02 |
Объявление зависимостей
Чтобы добавить зависимость от DataStore, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.
Существуют две реализации DataStore: Preferences и Proto . Выберите одну из них. Вы также можете добавить зависимости Android-free к любой из реализаций.
Добавьте зависимости для необходимой вам реализации в файл build.gradle
вашего приложения или модуля:
Настройки хранилища данных
классный
// 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" }
Котлин
// 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") }
Прото хранилище данных
классный
// 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" }
Котлин
// 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-альфа02
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
методом делегата для инициализации хранилища данных, которое будет использоваться во время прямой загрузки. ( If71b9 )
Версия 1.2.0-альфа01
26 марта 2025 г.
Выпущен androidx.datastore:datastore-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит эти коммиты .
Новые возможности
- Добавлен модуль
datastore-guava
для предоставления API, дружественных пользователям Java и GuavaListenableFuture
черезGuavaDataStore
. ( Iadd5e0 ) - Теперь поддерживается использование
DataStore
в режимеDirectBoot
. Чтобы создать хранилище данных для использования в режиме прямой загрузки, его необходимо создать в хранилище Device Protected. Этого можно добиться с помощью следующих новых APIDataStore
:createInDeviceProtectedStorage()
вDataStoreFactory
иdeviceProtectedDataStore()
вDataStoreDelegate
. ( Ib90e56 )
Изменения API
- Добавлен
PreferencesFileSerializer
, который реализует интерфейсandroidx.datastore.core.Serializer
для использования сFileStorage
. ( I4c71f3 )
Исправление ошибок
- Решена проблема
FileNotFoundException
вOkioStorage
при запуске путем добавления второй попытки чтения данных в случае состояния гонки. ( I43b3fb , b/337870543 ) - Определен конструктор по умолчанию для
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
. Эта проблема была вызвана ошибкой в новом плагине AGP KMP DSL, которая не позволяла автоматически включать метаданные для всех целевых платформ. Ошибка приводит к тому, что некоторые методы DataStore Android больше не видны в клиентских сборках. Исправление заключается в использовании старого DSLandroid
в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
, возникавшая при запуске приложения. Если первоначальная попытка чтения файла не удалась, будет предпринята вторая попытка в случае возникновения состояния гонки из-за того, что файл был создан другим процессом во время первоначального чтения. ( I43b3f , b/337870543 )
Версия 1.1.2
15 января 2025 г.
Выпущен androidx.datastore:datastore-*:1.1.2
. Версия 1.1.2 содержит эти коммиты .
Исправление ошибок
- Уменьшить задержку горячего чтения (
DataStore.data.first()
) в 8 раз. ( 22b8a40 ) -
ReplaceFileCorruptionHandler
можно создать из общего кода KMP. ( 7632e839 )
Версия 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 теперь поддерживает несколько процессов, обращающихся к одному и тому же файлу, с поддержкой наблюдения между процессами.
- Новый интерфейс хранилища позволяет вам настраивать способ хранения или сериализации ваших моделей данных.
- Теперь вы можете использовать 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
в средах 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-альфа07
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-альфа06
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-альфа05
6 сентября 2023 г.
Выпущен androidx.datastore:datastore-*:1.1.0-alpha05
. Версия 1.1.0-alpha05 содержит эти коммиты.
Изменения API
- Хранилище данных
FileStorage
теперь доступно публично, поэтому клиенты могут предоставлять собственные параметры. ( Icb985 ) - Изменен конструктор
OkioStorage
для принятияInterProcessCoordinator
, чтобы его можно было использовать на Android сMultiProcessCoordinator
. ( Iecea3 )
Исправление ошибок
- Исправлена ошибка, из-за которой
MultiProcessCoordinator
не мог отслеживать несколько файлов в одном каталоге. - Исправлена ошибка, из-за которой не удавалось обнаружить дубликаты файлов, если пути к файлам не нормализованы.
- Исправлены неверные значения, возвращаемые
RxDataStore#isDisposed
. - Исправлена отсутствующая конфигурация proguard для артефакта
datstore-preferences-core
.
Версия 1.1.0-альфа04
5 апреля 2023 г.
Выпущен androidx.datastore:datastore-*:1.1.0-alpha04
. Версия 1.1.0-alpha04 содержит эти коммиты.
Исправление ошибок
- Улучшить внутреннюю реализацию, чтобы избежать состояния гонки, при котором поток данных
DataStore
может выдавать старое значение после обновления.
Версия 1.1.0-альфа03
24 марта 2023 г.
Выпущена версия androidx.datastore:datastore-*:1.1.0-alpha03
.
Исправление ошибок
- Удалены ограничения зависимостей из артефактов Maven для обхода проблемы сборки в Kotlin Native Targets ( b/274786186 , KT-57531 ).
Версия 1.1.0-альфа02
22 марта 2023 г.
Выпущен 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
для Multi-Process доступна только на Android.
Изменения API
- Добавьте
InterProcessCoordinator
вStorageConnection
в интерфейсе datastore-core ( I555bb ) - Измените API в ядре хранилища данных
MultiProcessDataStoreFactory
для использования хранилища. ( Iac02f ) - Переместить публичные API из datastore-multiprocess в datastore-core ( I76d7c )
- Выведенный
PreferencesSerializer
из datastore-preferences-core ( I4b788 ) - Добавление аннотации
@JvmDefaultWithCompatibility
( I8f206 )
Версия 1.1.0-альфа01
9 ноября 2022 г.
Выпущен androidx.datastore:datastore-*:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Новые возможности
- Поддержка многопроцессных вариантов использования, где гарантируется согласованность данных между экземплярами
DataStore
в разных процессах. ДобавьтеMultiProcessDataStoreFactory#create
для создания таких экземпляровDataStore
. - Новый интерфейс Storage, который позволяет переключать базовый механизм хранения для
Datastore
. Предоставляются реализации для java.io и okio. ФабрикиDataStore
имеют новые методы, которые принимают этот объект Storage.
Изменения 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 использует сопрограммы Kotlin и Flow для асинхронного, последовательного и транзакционного хранения данных.
Версия 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-альфа08
10 марта 2021 г.
Выпущен androidx.datastore:datastore-*:1.0.0-alpha08
. Версия 1.0.0-alpha08 содержит эти коммиты.
Изменения API
- Теперь вы можете добавить миграцию, которая зависит от контекста, к делегату свойств
dataStore
иpreferencesDataStore
. ( I4ef69 , b/173726702 ) - Добавляет вспомогательные функции для получения имени файла, если вы больше не используете делегат хранилища данных или context.createDataStore ( I60f9a )
- Serializer writeTo и readFrom теперь приостанавливают работу. Если вы реализовали Serializer, вам нужно будет обновить свои функции, чтобы они стали приостанавливающими функциями. ( I1e58e )
- Добавлены делегаты свойств для пользователей RxDataStore. ( Ied768 , b/173726702 )
Исправление ошибок
- Ввести ограничения на публичное использование экспериментальных API ( I6aa29 , b/174531520 )
Версия 1.0.0-альфа07
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-альфа06
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-альфа05
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-альфа04
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 , б/173036843 )
Версия 1.0.0-альфа03
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
и конструкторContext.createDataStore
.) ( I42d75 , b/168512698 ) - Разделение целей для хранилища данных настроек для более быстрой компиляции Kotlin ( Ia3c19 )
Сериализаторам теперь требуется новое свойство для значения по умолчанию, которое будет использоваться, если на диске нет данных. Это упрощает реализацию пользовательских сериализаторов, так что пользователям не нужно специально обрабатывать пустые входные потоки (пустые входные потоки не анализируются с помощью json).
- Также теперь есть проверка, подтверждающая, что выходной поток, предоставленный writeTo(), не закрыт, и если он закрыт, то выдаются исключения ( I16e29 ).
Создание внутреннего конструктора для SharedPreferencesView. Изначально он был публичным, чтобы обеспечить возможность тестирования. Вместо этого тесты должны создавать SharedPreferencesMigration и тестировать его. ( I93891 )
Исправление ошибок
- Параметр
produceFile
вDataStoreFactory
иPreferenceDataStoreFactory
теперь является последним параметром в списке, что позволяет использовать синтаксис завершающих лямбда-выражений Kotlin. ( Ibe7f1 , b/169425442 ) - Следуя новым явным требованиям API для Kotlin ( I5ae1e )
Известные проблемы
- Preference Datastore аварийно завершает работу с ошибкой
java.lang.NoClassDefFoundError
. ( b/173036843 )
Версия 1.0.0-альфа02
14 октября 2020 г.
Выпущены androidx.datastore:datastore-core:1.0.0-alpha02
и androidx.datastore:datastore-preferences:1.0.0-alpha02
. Версия 1.0.0-alpha02 содержит эти коммиты.
Исправление ошибок
- Добавлена защита от мутации в datastore-core. Мутация нарушает использование хранилища данных для людей, использующих хранилище данных с типами non-proto/non-preferences ( I6aa84 )
- Добавлен метод
toString
в Preferences.kt для упрощения отладки текущего состояния ( I96006 ). - Добавлено исключение для защиты от неправильного использования
DataStore.Preferences
( I1134d ) - Исправлена ошибка, приводившая к сбою приложения при запуске ( I69237 , b/168580258 ).
Версия 1.0.0-альфа01
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, позволяющий хранить типизированные объекты (с поддержкой буферов протоколов )
- Preferences DataStore, в котором хранятся пары ключ-значение
Данные хранятся асинхронно, последовательно и транзакционно, что позволяет преодолеть большинство недостатков SharedPreferences.