SQLite
androidx.sqlite
содержит абстрактные интерфейсы, а также базовые реализации, которые можно использовать для создания собственных библиотек, обращающихся к SQLite.Возможно, вам стоит рассмотреть возможность использования библиотеки Room , которая обеспечивает уровень абстракции поверх SQLite, что позволяет обеспечить более надежный доступ к базе данных и при этом использовать всю мощь SQLite.
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
18 июня 2025 г. | 2.5.2 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от SQLite, необходимо добавить репозиторий Google Maven в свой проект. Прочитайте репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { def sqlite_version = "2.5.2" // Java language implementation implementation "androidx.sqlite:sqlite:$sqlite_version" // Kotlin implementation "androidx.sqlite:sqlite-ktx:$sqlite_version" // Implementation of the AndroidX SQLite interfaces via the Android framework APIs. implementation "androidx.sqlite:sqlite-framework:$sqlite_version" }
Котлин
dependencies { val sqlite_version = "2.5.2" // Java language implementation implementation("androidx.sqlite:sqlite:$sqlite_version") // Kotlin implementation("androidx.sqlite:sqlite-ktx:$sqlite_version") // Implementation of the AndroidX SQLite interfaces via the Android framework APIs. implementation("androidx.sqlite:sqlite-framework:$sqlite_version") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 2.5
Версия 2.5.2
18 июня 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.2
. Версия 2.5.2 содержит эти коммиты .
Исправление ошибок
- Добавить отсутствующие правила R8 / Proguard, чтобы предотвратить обфусцирование JNI / внешних функций. ( b/421626199 )
- Исправлена ошибка, из-за которой начальные комментарии в SQL-запросе приводили к выполнению операторов так, как если бы они были нечитаемыми запросами. ( b/413061402 )
Версия 2.5.1
7 мая 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.1
. Версия 2.5.1 содержит эти коммиты .
Изменения API
- Разрешить
androidx.sqlite:sqlite-bundled
загружать свой собственный компонент из указанного пути через системное свойство с именемandroidx.sqlite.driver.bundled.path
. b/381282544
Версия 2.5.0
9 апреля 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0
. Версия 2.5.0 содержит эти коммиты .
Важные изменения по сравнению с версией 2.4.0
- Поддержка Kotlin Multi-Platform (KMP): с выпуском Room KMP версии 2.7.0 также были обновлены API
SQLite
, которые позволяют Room быть KMP. Пакетandriodx.sqlite
содержит три интерфейса, которые определяют низкоуровневые APISQLite
:SQLiteDriver
,SQLiteConnection
иSQLiteStatement
. Артефактandroidx.sqlite:sqlite-framework
предлагает реализацию интерфейсов для Android и iOS изначально, в то время какandroidx.sqlite:sqlite-bundled
предлагает реализацию, которая использует SQLite, скомпилированный из исходного кода (также известный как «связанный SQLite»). Для получения дополнительной информации об API драйвераSQLite
обратитесь к официальной документации SQLite KMP .
Версия 2.5.0-rc03
26 марта 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-rc03
. Версия 2.5.0-rc03 содержит эти коммиты .
Исправление ошибок
- Отменить несовместимое изменение двоичного кода, которое некорректно удалило API
SupportSQLiteCompat
, используемые другими библиотеками, такими как Room ( b/402796648 ).
Версия 2.5.0-rc02
12 марта 2025 г.
androidx.sqlite:sqlite-*:2.5.0-rc02
выпущен без каких-либо заметных изменений с момента последнего релиза. Версия 2.5.0-rc02 содержит эти коммиты .
Версия 2.5.0-rc01
26 февраля 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-rc01
. Версия 2.5.0-rc01 содержит эти коммиты .
Исправление ошибок
- Исправлены метаданные Gradle артефактов
androidx.sqlite
для JVM, из-за которых проекты JVM разрешали вариант Android и возникала ошибкаNoClassDefFoundError: androidx/sqlite/SQLiteDriver
( b/396148592 и b/396184120 ).
Версия 2.5.0-beta01
12 февраля 2025 г.
androidx.sqlite:sqlite-*:2.5.0-beta01
выпущен без заметных изменений с момента последней альфа-версии. Версия 2.5.0-beta01 содержит эти коммиты .
Версия 2.5.0-альфа13
29 января 2025 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha13
. Версия 2.5.0-alpha13 содержит эти коммиты .
Изменения API
- Удалить
androidx.sqlite.use
, который теперь заменен наAutoCloseable.use
Kotlin в stdlib. ( I470f0 , b/315461431 ) - Библиотека теперь скомпилирована с Kotlin 2.0 и для использования в проектах потребуется версия не ниже 2.0. ( I8efb0 , b/315461431 , b/384600605 )
Исправление ошибок
- Переместите загрузку собственной библиотеки
BundledSQLiteDriver
в режим ленивой загрузки при открытии первого соединения, чтобы избежать возможности выполнения ввода-вывода в основном потоке. ( I78e92 , b/363985585 )
Версия 2.5.0-альфа12
11 декабря 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha12
. Версия 2.5.0-alpha12 содержит эти коммиты .
Версия 2.5.0-альфа11
30 октября 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha11
. Версия 2.5.0-alpha11 содержит эти коммиты .
Версия 2.5.0-альфа10
16 октября 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha10
. Версия 2.5.0-alpha10 содержит эти коммиты .
Изменения API
- Добавьте
SQLiteStatement.getColumnType()
вместе с различными константами результатаSQLITE_DATA_*
, чтобы включить извлечение типа данных столбца. ( I1985c , b/369636251 )
Версия 2.5.0-альфа09
2 октября 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha09
. Версия 2.5.0-alpha09 содержит эти коммиты .
Версия 2.5.0-альфа08
18 сентября 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha08
. Версия 2.5.0-alpha08 содержит эти коммиты .
Версия 2.5.0-альфа07
21 августа 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha07
. Версия 2.5.0-alpha07 содержит эти коммиты .
Новые возможности
- Добавить поддержку Linux ARM 64 в JVM / Desktop-целях. ( b/358045505 )
Версия 2.5.0-альфа06
7 августа 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha06
. Версия 2.5.0-alpha06 содержит эти коммиты .
Новые возможности
- Добавить поддержку для
linuxArm64
Kotlin Multiplatform target ( I139d3 , b/338268719 )
Версия 2.5.0-альфа05
10 июля 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha05
. Версия 2.5.0-alpha05 содержит эти коммиты .
Изменения API
- Переименован
SQLiteKt
вSQLite
иBundledSQLiteKt
вBundledSQLite
. ( I8b501 )
Версия 2.5.0-альфа04
12 июня 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha04
. Версия 2.5.0-alpha04 содержит эти коммиты .
Изменения API
- Добавлен API перегрузки
open()
вBundledSQLiteDriver
для передачи флагов открытия при открытии соединения с базой данных. Полезно для открытия базы данных в режиме только для чтения или использования сериализованного потокобезопасного режима вместо многопоточного режима, с которым скомпилирован SQLite в комплекте ( b/340949940 ).
Исправление ошибок
- Исправлена проблема со связыванием в встроенном драйвере SQLite, которая могла приводить к возникновению
UnsatisfiedLinkError
из-за отсутствия атомарных символов на устройствах Android с ARM32. ( b/341639198 ) - Исправлена проблема в драйверах, из-за которой привязка массива байтов нулевой длины к столбцу приводила к получению нулевого значения при чтении из него.
Версия 2.5.0-альфа03
29 мая 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha03
. Версия 2.5.0-alpha03 содержит эти коммиты .
Исправление ошибок
- Исправлена проблема с
BundledSQLiteDriver
, из-за которой базы данных, созданные с его помощью, содержали символ нулевого завершения C. ( b/340822359 )
Версия 2.5.0-альфа02
14 мая 2024 г.
androidx.sqlite:sqlite-*:2.5.0-alpha02
выпущен без существенных изменений с 2.5.0-alpha01. Версия 2.5.0-alpha02 содержит эти коммиты .
Версия 2.5.0-альфа01
1 мая 2024 г.
Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha01
. Версия 2.5.0-alpha01 содержит эти коммиты .
Новые возможности
- Поддержка Kotlin Multi-Platform (KMP) : с выпуском Room 2.7.0-alpha01, который является первым выпуском Room KMP, также были обновлены API
SQLite
, которые позволяют Room быть KMP. Пакетandriodx.sqlite
содержит три интерфейса, которые определяют низкоуровневые API SQLite:SQLiteDriver
,SQLiteConnection
иSQLiteStatement
. Артефактandroidx.sqlite:sqlite-framework
предлагает реализацию интерфейсов для Android и iOS Natively, в то время какandroidx.sqlite:sqlite-bundled
предлагает реализацию, которая используетSQLite
скомпилированный из исходного кода (также известный как «связанный SQLite»). Для получения дополнительной информации об API драйвера SQLite обратитесь к официальной документации SQLite KMP .
Версия 2.4
Версия 2.4.0
18 октября 2023 г.
Выпущены androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
и androidx.sqlite:sqlite-ktx:2.4.0
. Версия 2.4.0 содержит эти коммиты.
Важные изменения по сравнению с версией 2.3.0
- Добавлены различные исправления ошибок.
Версия 2.4.0-rc01
20 сентября 2023 г.
Выпущены androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
и androidx.sqlite:sqlite-ktx:2.4.0-rc01
. Версия 2.4.0-rc01 содержит эти коммиты.
Версия 2.4.0-beta01
23 августа 2023 г.
Выпущены androidx.sqlite:sqlite:2.4.0-beta01
, androidx.sqlite:sqlite-framework:2.4.0-beta01
и androidx.sqlite:sqlite-ktx:2.4.0-beta01
. Версия 2.4.0-beta01 содержит эти коммиты.
Версия 2.4.0-альфа03
9 августа 2023 г.
Выпущены androidx.sqlite:sqlite:2.4.0-alpha03
, androidx.sqlite:sqlite-framework:2.4.0-alpha03
и androidx.sqlite:sqlite-ktx:2.4.0-alpha03
. Версия 2.4.0-alpha03 содержит эти коммиты.
Версия 2.4.0-альфа02
21 июня 2023 г.
androidx.sqlite:sqlite:2.4.0-alpha02
, androidx.sqlite:sqlite-framework:2.4.0-alpha02
и androidx.sqlite:sqlite-ktx:2.4.0-alpha02
выпущены без изменений. Версия 2.4.0-alpha02 содержит эти коммиты.
Версия 2.4.0-альфа01
22 марта 2023 г.
Выпущены androidx.sqlite:sqlite:2.4.0-alpha01
, androidx.sqlite:sqlite-framework:2.4.0-alpha01
и androidx.sqlite:sqlite-ktx:2.4.0-alpha01
. Версия 2.4.0-alpha01 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка
NullPointerException
, которая могла возникнуть вSupportSQLiteQueryBuilder
. ( 5df8698 )
Версия 2.3.1
Версия 2.3.1
22 марта 2023 г.
Выпущены androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
и androidx.sqlite:sqlite-ktx:2.3.1
. Версия 2.3.1 содержит эти коммиты.
Исправление ошибок
- Избежать проблемы фреймворка, когда запросы SQL не становились недействительными после изменения схемы во время миграций.
FrameworkSupportSQLiteOpenHelper
теперь будет устанавливать минимальный кэш операторов SQL во время миграций, чтобы избежать этой проблемы. ( 0ad2a8f ) - Исправлена ошибка, из-за которой каталог кэша мог быть недоступен для использования
SupportSQLiteLock
, поэтому нулевой файл должен обрабатываться корректно. ( 9d177dc ) - Исправлена ошибка, из-за которой
attachedDbs
не возвращал полный список присоединенных баз данных. ( 5f008e1 )
Версия 2.3.0
Версия 2.3.0
11 января 2023 г.
Выпущены androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
и androidx.sqlite:sqlite-ktx:2.3.0
. Версия 2.3.0 содержит эти коммиты.
Важные изменения по сравнению с 2.2.0
- Группа библиотек
androidx.sqlite
sources была преобразована из Java в Kotlin. Имейте в виду, что посколькуandroidx.sqlite
отсутствовали некоторые аннотации nullability, вы можете столкнуться с ошибками несовместимости исходного кода, если ваши исходные коды написаны на Kotlin, а код выводит неправильную nullability. Более того, некоторые методы getter были преобразованы в свойства, требующие синтаксиса доступа к свойствам в файлах Kotlin. Пожалуйста, сообщите об ошибке, если есть какие-либо существенные несовместимости. ( b/240707042 ) - Добавьте API в конфигурацию
SupportSQLite's
, чтобы разрешить потерю данных во время восстановления. ( I1b830 , b/215592732 ) - Добавлен API для многопроцессорной блокировки и использования на уровне
FrameworkSQLite*
для защиты многопроцессорных процессов создания и миграции баз данных в первый раз. ( Ied267 , b/193182592 )
Версия 2.3.0-rc01
7 декабря 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-rc01
, androidx.sqlite:sqlite-framework:2.3.0-rc01
и androidx.sqlite:sqlite-ktx:2.3.0-rc01
. Версия 2.3.0-rc01 содержит эти коммиты.
Исправление ошибок
- Устранение проблемы NPE в
SupportSQLiteQueryBuilder
для столбцов, допускающих значение NULL. ( Ica8f5 )
Версия 2.3.0-beta02
9 ноября 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
и androidx.sqlite:sqlite-ktx:2.3.0-beta02
. Версия 2.3.0-beta02 содержит эти коммиты.
- Исправлены различные API, которые переводят аргументы запроса из инвариантных (
Array<Any?>
) в контравариантные (Array<out Any?>
), чтобы соответствовать поведению массивов Java. ( b/253531073 )
Версия 2.3.0-beta01
5 октября 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
и androidx.sqlite:sqlite-ktx:2.3.0-beta01
. Версия 2.3.0-beta01 содержит эти коммиты.
Изменения API
- Все исходники android.sqlite были преобразованы из Java в Kotlin. b/240707042
- Одним из заметных изменений преобразования является то, что следующие функции-геттеры стали свойствами:
- В
SupportSQLiteDatabase
: -
attachedDbs
-
isDatabaseIntegrityOk
-
isDbLockedByCurrentThread
-
isOpen
-
isReadOnly
-
isWriteAheadLoggingEnabled
-
maximumSize
-
pageSize
-
path
-
version
- В
SupportSQLiteOpenHelper
: -
databaseName
-
readableDatabase
-
writableDatabase
- В
Версия 2.3.0-альфа05
24 августа 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
и androidx.sqlite:sqlite-ktx:2.3.0-alpha05
. Версия 2.3.0-alpha05 содержит эти коммиты.
Изменения API
- Группа библиотек androidx.sqlite источники были преобразованы из Java в Kotlin. Имейте в виду, что поскольку androidx.sqlite имел некоторые отсутствующие аннотации nullability, вы можете столкнуться с ошибками несовместимости источника, если ваши источники находятся в Kotlin и код выводит неправильную nullability. Пожалуйста, сообщите об ошибке, если есть какие-либо существенные несовместимости. ( b/240707042 )
Версия 2.3.0-альфа04
10 августа 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
и androidx.sqlite:sqlite-ktx:2.3.0-alpha04
. Версия 2.3.0-alpha04 содержит эти коммиты.
Изменения API
- Обновлена возможность значения NULL ( I29fbd )
Версия 2.3.0-альфа03
1 июня 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-alpha03
, androidx.sqlite:sqlite-framework:2.3.0-alpha03
и androidx.sqlite:sqlite-ktx:2.3.0-alpha03
. Версия 2.3.0-alpha03 содержит эти коммиты.
Изменения API
- Сделать
androidx.sqlite.ProcessLock
ограниченным. API ограничен своей функцией вandroidx.sqlite
и не должен использоваться в качестве многопроцессорной блокировки общего назначения. ( I1643f )
Версия 2.3.0-альфа02
6 апреля 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-alpha02
, androidx.sqlite:sqlite-framework:2.3.0-alpha02
и androidx.sqlite:sqlite-ktx:2.3.0-alpha02
. Версия 2.3.0-alpha02 содержит эти коммиты.
- Никаких существенных изменений с версии 2.3.0-alpha01
Версия 2.3.0-альфа01
23 февраля 2022 г.
Выпущены androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
и androidx.sqlite:sqlite-ktx:2.3.0-alpha01
. Версия 2.3.0-alpha01 содержит эти коммиты.
Изменения API
- Добавьте API в конфигурацию SupportSQLite, чтобы разрешить потерю данных во время восстановления. ( I1b830 , b/215592732 )
- Добавлен API для многопроцессорной блокировки и использования на уровне FrameworkSQLite* для защиты многопроцессорных процессов создания и миграции баз данных в первый раз. ( Ied267 , b/193182592 )
Версия 2.2.0
Версия 2.2.0
15 декабря 2021 г.
Выпущены androidx.sqlite:sqlite:2.2.0
, androidx.sqlite:sqlite-framework:2.2.0
и androidx.sqlite:sqlite-ktx:2.2.0
. Версия 2.2.0 содержит эти коммиты.
Важные изменения по сравнению с 2.1.0
Добавить метод по умолчанию для execPerConnectionSQL()
в SupportSQLiteDatabase
.
Версия 2.2.0-rc01
1 декабря 2021 г.
Выпущены androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
и androidx.sqlite:sqlite-ktx:2.2.0-rc01
. Версия 2.2.0-rc01 содержит эти коммиты.
Никаких существенных изменений по сравнению с 2.2.0-beta01.
Версия 2.2.0-beta01
13 октября 2021 г.
Выпущены androidx.sqlite:sqlite:2.2.0-beta01
, androidx.sqlite:sqlite-framework:2.2.0-beta01
и androidx.sqlite:sqlite-ktx:2.2.0-beta01
. Версия 2.2.0-beta01 содержит эти коммиты.
- Никаких изменений по сравнению с предыдущей альфа-версией.
Версия 2.2.0-альфа02
21 июля 2021 г.
Выпущены androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
и androidx.sqlite:sqlite-ktx:2.2.0-alpha02
. Версия 2.2.0-alpha02 содержит эти коммиты.
Никаких существенных изменений с 2.2.0-alpha01. Этот релиз просто для согласования с релизом Room 2.4.0-alpha04
.
Версия 2.2.0-альфа01
16 июня 2021 г.
Выпущены androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
и androidx.sqlite:sqlite-ktx:2.2.0-alpha01
. Версия 2.2.0-alpha01 содержит эти коммиты.
Изменения API
- Добавить метод по умолчанию для
execPerConnectionSQL()
в SupportSQLiteDatabase ( I86326 , b/172270145 )
Версия 2.1.0
Версия 2.1.0
22 января 2020 г.
androidx.sqlite:sqlite:2.1.0
, androidx.sqlite:sqlite-framework:2.1.0
и androidx.sqlite:sqlite-ktx:2.1.0
выпущены без изменений с 2.1.0-rc01
. Версия 2.1.0 содержит эти коммиты .
Важные изменения по сравнению с версией 2.0.1
- Поддержка
useNoBackupDirectory
, которая может использоваться для указания того, что база данных должна быть создана в каталоге без резервного копирования при использованииSupportSQLiteOpenHelper
.
Версия 2.1.0-rc01
8 января 2020 г.
Выпущен androidx.sqlite:sqlite-*:2.1.0-rc01
. Версия 2.1.0-rc01 содержит эти коммиты .
Этот выпуск идентичен 2.1.0-beta01
.
Версия 2.1.0-beta01
4 декабря 2019 г.
androidx.sqlite:sqlite:2.1.0-beta01
, androidx.sqlite:sqlite-framework:2.1.0-beta01
и androidx.sqlite:sqlite-ktx:2.1.0-beta01
выпущены без изменений с 2.1.0-alpha01
. Версия 2.1.0-beta01 содержит эти коммиты .
Версия 2.1.0-альфа01
7 ноября 2019 г.
Выпущены androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
и androidx.sqlite:sqlite-ktx:2.1.0-alpha01
. Версия 2.1.0-alpha01 содержит эти коммиты .
Изменения API
- Добавлено новое свойство в
SupportSQLiteOpenHelper.Configuration
с именемuseNoBackupDirectory
, указывающее, что следует создать файловую базу данных и разместить ее в каталоге без резервного копирования.
Версия 2.0.1
Версия 2.0.1
13 марта 2019 г.
Выпущена версия 2.0.1 группы артефактов androidx.sqlite
с двумя исправлениями ошибок.
Исправление ошибок
- Исправлены две проблемы, из-за которых
FrameworkSQLiteOpenHelper
не мог правильно восстановиться после поврежденной базы данных или неудачной миграции во время инициализации. ( b/111504749 и b/111519144 )