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 содержит три интерфейса, которые определяют низкоуровневые API SQLite : 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 )