Sqlite

A biblioteca androidx.sqlite contém interfaces abstratas com implementações básicas que podem ser usadas para criar bibliotecas que acessam o SQLite.

É recomendado usar a biblioteca Room, que fornece uma camada de abstração para permitir um acesso mais robusto ao banco de dados, aproveitando toda a capacidade do SQLite.

Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
16 de julho de 2025 2.5.2 - - 2.6.0-alpha01

Declarar dependências

Para adicionar uma dependência ao SQLite, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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"
}

Kotlin

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")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 2.6

Versão 2.6.0-alpha01

16 de julho de 2025

Lançamento de androidx.sqlite:sqlite-*:2.6.0-alpha01. A versão 2.6.0-alpha01 contém estas confirmações.

Novos recursos

Mudanças na API

  • Adicione uma API para verificar se um SQLiteConnection tem uma transação ativa. Como as transações SQLite não são aninhadas, essa API pode ajudar os aplicativos a determinar se eles devem usar BEGIN / COMMIT ou SAVEPOINT / RELEASE. (I5bf5e, b/319627988)
  • Adicione uma API a SQLiteDriver para informar se ela tem um pool de conexões internamente ou não. (I52a51, b/408010324)

Versão 2.5

Versão 2.5.2

18 de junho de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.2. A versão 2.5.2 contém estas confirmações.

Correções de bugs

  • Adição de regras do R8 / Proguard ausentes para evitar a ofuscação de funções JNI / externas. (b/421626199)
  • Correção de um bug em que comentários iniciais em um SQL faziam com que as instruções fossem executadas como se fossem consultas não lidas. (b/413061402)

Versão 2.5.1

7 de maio de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.1. A versão 2.5.1 contém estas confirmações.

Mudanças na API

  • Permita que o androidx.sqlite:sqlite-bundled carregue o componente nativo de um caminho especificado usando a propriedade do sistema chamada androidx.sqlite.driver.bundled.path. b/381282544

Versão 2.5.0

9 de abril de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.0. A versão 2.5.0 contém estas confirmações.

Mudanças importantes desde a versão 2.4.0

  • Suporte ao Kotlin Multiplatform (KMP):com o lançamento da versão 2.7.0 do Room KMP, as APIs SQLite que permitem que o Room seja KMP também foram atualizadas. O pacote andriodx.sqlite contém três interfaces que definem APIs SQLite de baixo nível: SQLiteDriver, SQLiteConnection e SQLiteStatement. O artefato androidx.sqlite:sqlite-framework oferece implementação das interfaces para Android e iOS de forma nativa, enquanto o androidx.sqlite:sqlite-bundled oferece uma implementação que usa o SQLite compilado da origem (também conhecido como "SQLite agrupado"). Para mais informações sobre a API Driver SQLite, consulte a documentação oficial do SQLite KMP.

Versão 2.5.0-rc03

26 de março de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.0-rc03. A versão 2.5.0-rc03 contém estas confirmações.

Correções de bugs

  • Reverte uma mudança incompatível que quebra o binário e removeu incorretamente as APIs SupportSQLiteCompat usadas por outras bibliotecas, como o Room (b/402796648).

Versão 2.5.0-rc02

12 de março de 2025

androidx.sqlite:sqlite-*:2.5.0-rc02 é lançado sem mudanças significativas desde a última versão. A versão 2.5.0-rc02 contém estas confirmações.

Versão 2.5.0-rc01

26 de fevereiro de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.0-rc01. A versão 2.5.0-rc01 contém estas confirmações.

Correções de bugs

  • Correção dos metadados do Gradle dos artefatos androidx.sqlite para JVM, que fariam com que os projetos da JVM resolvessem a variante do Android e levariam a NoClassDefFoundError: androidx/sqlite/SQLiteDriver (b/396148592 e b/396184120).

Versão 2.5.0-beta01

12 de fevereiro de 2025

androidx.sqlite:sqlite-*:2.5.0-beta01 é lançado sem mudanças significativas desde a última versão Alfa. A versão 2.5.0-beta01 contém estas confirmações.

Versão 2.5.0-alpha13

29 de janeiro de 2025

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha13. A versão 2.5.0-alpha13 contém estas confirmações.

Mudanças na API

  • Remova androidx.sqlite.use, que agora é substituído por AutoCloseable.use do Kotlin na stdlib. (I470f0, b/315461431)
  • A biblioteca agora é compilada com o Kotlin 2.0 e exige pelo menos a versão 2.0 em projetos para ser usada. (I8efb0, b/315461431, b/384600605).

Correções de bugs

  • Mova o carregamento da biblioteca nativa de BundledSQLiteDriver para ser lento e quando a primeira conexão for aberta para evitar a possibilidade de realizar E/S na linha de execução principal. (I78e92, b/363985585)

Versão 2.5.0-alpha12

11 de dezembro de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha12. A versão 2.5.0-alpha12 contém estas confirmações.

Versão 2.5.0-alpha11

30 de outubro de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha11. A versão 2.5.0-alpha11 contém estas confirmações.

Versão 2.5.0-alpha10

16 de outubro de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha10. A versão 2.5.0-alpha10 contém estas confirmações.

Mudanças na API

  • Adicione SQLiteStatement.getColumnType() junto com as várias constantes de resultado SQLITE_DATA_* para ativar a recuperação do tipo de dados de uma coluna. (I1985c, b/369636251)

Versão 2.5.0-alpha09

2 de outubro de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha09. A versão 2.5.0-alpha09 contém estas confirmações.

Versão 2.5.0-alpha08

18 de setembro de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha08. A versão 2.5.0-alpha08 contém estas confirmações.

Versão 2.5.0-alpha07

21 de agosto de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha07. A versão 2.5.0-alpha07 contém estas confirmações.

Novos recursos

  • Adição de suporte para Linux ARM 64 em destinos JVM / Desktop. (b/358045505)

Versão 2.5.0-alpha06

7 de agosto de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha06. A versão 2.5.0-alpha06 contém estas confirmações.

Novos recursos

  • Adição de suporte ao destino linuxArm64 do Kotlin Multiplatform (I139d3, b/338268719).

Versão 2.5.0-alpha05

10 de julho de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha05. A versão 2.5.0-alpha05 contém estas confirmações.

Mudanças na API

  • SQLiteKt foi renomeado como SQLite, e BundledSQLiteKt foi renomeado como BundledSQLite (I8b501).

Versão 2.5.0-alpha04

12 de junho de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha04. A versão 2.5.0-alpha04 contém estas confirmações.

Mudanças na API

  • Adicionada uma API de sobrecarga open() a BundledSQLiteDriver para transmitir flags abertas ao abrir uma conexão de banco de dados. Útil para abrir um banco de dados no modo somente leitura ou usar o modo serializado thread-safe em vez do modo multithread com que o SQLite é compilado (b/340949940).

Correções de bugs

  • Foi corrigido um problema de vinculação no driver SQLite agrupado que causava o lançamento de UnsatisfiedLinkError devido à falta de símbolos atômicos em dispositivos Android com um ARM32. (b/341639198)
  • Correção de um problema nos drivers em que a vinculação de uma matriz de bytes de comprimento zero a uma coluna resultava em um valor nulo ao ler dela.

Versão 2.5.0-alpha03

29 de maio de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha03. A versão 2.5.0-alpha03 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema com o BundledSQLiteDriver em que os bancos de dados criados com ele continham o caractere de terminação nula C. (b/340822359)

Versão 2.5.0-alpha02

14 de maio de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha02 sem mudanças significativas desde a versão 2.5.0-alpha01 . A versão 2.5.0-alpha02 contém estas confirmações.

Versão 2.5.0-alpha01

1º de maio de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha01. A versão 2.5.0-alpha01 contém estas confirmações.

Novos recursos

  • Suporte multiplataforma do Kotlin (KMP): com o lançamento do Room 2.7.0-alpha01, que é a primeira versão do Room KMP, as APIs SQLite que permitem que o Room seja KMP também foram atualizadas. O pacote andriodx.sqlite contém três interfaces que definem APIs SQLite de baixo nível: SQLiteDriver, SQLiteConnection e SQLiteStatement. O artefato androidx.sqlite:sqlite-framework oferece a implementação das interfaces para Android e iOS de forma nativa, enquanto androidx.sqlite:sqlite-bundled oferece uma implementação que usa SQLite compilado da origem (também conhecido como "SQLite agrupado"). Para mais informações sobre a API SQLite Driver, consulte a documentação oficial do SQLite KMP.

Versão 2.4

Versão 2.4.0

18 de outubro de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 e androidx.sqlite:sqlite-ktx:2.4.0. A versão 2.4.0 contém estas confirmações.

Mudanças importantes desde a versão 2.3.0

  • Várias correções de bugs foram adicionadas.

Versão 2.4.0-rc01

20 de setembro de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 e androidx.sqlite:sqlite-ktx:2.4.0-rc01. A versão 2.4.0-rc01 contém estas confirmações.

Versão 2.4.0-beta01

23 de agosto de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 e androidx.sqlite:sqlite-ktx:2.4.0-beta01. A versão 2.4.0-beta01 contém estas confirmações.

Versão 2.4.0-alpha03

9 de agosto de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 e androidx.sqlite:sqlite-ktx:2.4.0-alpha03. A versão 2.4.0-alpha03 contém estas confirmações.

Versão 2.4.0-alpha02

21 de junho de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02 e androidx.sqlite:sqlite-ktx:2.4.0-alpha02 sem mudanças. A versão 2.4.0-alpha02 contém estas confirmações.

Versão 2.4.0-alpha01

22 de março de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 e androidx.sqlite:sqlite-ktx:2.4.0-alpha01. A versão 2.4.0-alpha01 contém estas confirmações.

Correções de bugs

  • Correção de uma NullPointerException que podia ocorrer em SupportSQLiteQueryBuilder. (5df8698)

Versão 2.3.1

Versão 2.3.1

22 de março de 2023

Lançamento de androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 e androidx.sqlite:sqlite-ktx:2.3.1. A versão 2.3.1 contém estas confirmações.

Correções de bugs

  • Evite um problema de framework em que as consultas SQL não seriam invalidadas após uma mudança de esquema durante as migrações. Agora, o FrameworkSupportSQLiteOpenHelper vai definir o cache mínimo de instruções SQL durante as migrações para evitar o problema. (0ad2a8f)
  • Foi corrigido um problema em que o diretório de cache poderia não estar disponível para uso com SupportSQLiteLock. Assim, um arquivo nulo precisa ser processado normalmente. (9d177dc)
  • Correção de um problema em que o attachedDbs não retornava a lista completa de bancos de dados anexados. (5f008e1)

Versão 2.3.0

Versão 2.3.0

11 de janeiro de 2023

Lançamento de androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 e androidx.sqlite:sqlite-ktx:2.3.0. A versão 2.3.0 contém estas confirmações.

Mudanças importantes desde a versão 2.2.0

  • As origens androidx.sqlite do grupo de bibliotecas foram convertidas de Java para Kotlin. Como o androidx.sqlite tem algumas anotações de nulidade ausentes, é possível que você encontre erros de incompatibilidade de origem caso as origens estejam em Kotlin e o código esteja inferindo a nulidade errada. Além disso, alguns métodos getter foram convertidos em propriedades que exigem a sintaxe de acesso a propriedades em arquivos Kotlin. Registre um bug no caso de incompatibilidades significativas (b/240707042).
  • Uma API foi adicionada à configuração do SupportSQLite's para permitir a perda de dados durante o mecanismo de recuperação (I1b830, b/215592732).
  • Uma API para bloqueio e uso de vários processos no nível do FrameworkSQLite* foi adicionada para proteger a primeira criação e migração de bancos de dados de vários processos (Ied267, b/193182592).

Versão 2.3.0-rc01

7 de dezembro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 e androidx.sqlite:sqlite-ktx:2.3.0-rc01. A versão 2.3.0-rc01 contém estas confirmações.

Correções de bugs

  • O problema da NPE em SupportSQLiteQueryBuilder nas colunas anuláveis foi corrigido (Ica8f5).

Versão 2.3.0-beta02

9 de novembro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 e androidx.sqlite:sqlite-ktx:2.3.0-beta02. A versão 2.3.0-beta02 contém estas confirmações.

  • Foram corrigidas várias APIs que usam argumentos de consulta de invariante (Array<Any?>) a contravariante (Array<out Any?>) para corresponder ao comportamento da matriz do Java (b/253531073).

Versão 2.3.0-beta01

5 de outubro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 e androidx.sqlite:sqlite-ktx:2.3.0-beta01. A versão 2.3.0-beta01 contém estas confirmações.

Mudanças na API

  • Todas as origens android.sqlite foram convertidas de Java em Kotlin (b/240707042).
  • Uma mudança notável na conversão é que estas funções getter se tornaram propriedades:
    • Em SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • Em SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase

Versão 2.3.0-alpha05

24 de agosto de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 e androidx.sqlite:sqlite-ktx:2.3.0-alpha05. A versão 2.3.0-alpha05 contém estas confirmações.

Mudanças na API

  • As origens androidx.sqlite do grupo de bibliotecas foram convertidas de Java em Kotlin. Como o androidx.sqlite tem algumas anotações de nulidade ausentes, é possível que você encontre erros de incompatibilidade de origem se as origens estão em Kotlin, e o código está inferindo a nulidade errada. Registre um bug em caso de incompatibilidade significativa (b/240707042).

Versão 2.3.0-alpha04

10 de agosto de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 e androidx.sqlite:sqlite-ktx:2.3.0-alpha04. A versão 2.3.0-alpha04 contém estas confirmações.

Mudanças na API

  • Atualização da nulidade (I29fbd).

Versão 2.3.0-alpha03

1º de junho de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 e androidx.sqlite:sqlite-ktx:2.3.0-alpha03. A versão 2.3.0-alpha03 contém estas confirmações.

Mudanças na API

  • androidx.sqlite.ProcessLock foi restrito. A API tem escopo e é limitada à função dela em androidx.sqlite. Não é recomendado o uso geral dela para bloqueio de vários processos (I1643f).

Versão 2.3.0-alpha02

6 de abril de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 e androidx.sqlite:sqlite-ktx:2.3.0-alpha02. A versão 2.3.0-alpha02 contém estas confirmações.

  • Nenhuma mudança significativa desde a versão 2.3.0-alpha01.

Versão 2.3.0-alpha01

23 de fevereiro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 e androidx.sqlite:sqlite-ktx:2.3.0-alpha01. A versão 2.3.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição de uma API à configuração do SupportSQLite para permitir a perda de dados durante o mecanismo de recuperação (I1b830, b/215592732).
  • Adição de API para bloqueio e uso de vários processos no nível do FrameworkSQLite* para proteger a primeira criação e migração de bancos de dados de vários processos (Ied267, b/193182592).

Versão 2.2.0

Versão 2.2.0

15 de dezembro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 e androidx.sqlite:sqlite-ktx:2.2.0. A versão 2.2.0 contém estas confirmações.

Mudanças importantes desde a versão 2.1.0

Adição do método padrão para execPerConnectionSQL() na SupportSQLiteDatabase.

Versão 2.2.0-rc01

1º de dezembro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 e androidx.sqlite:sqlite-ktx:2.2.0-rc01. A versão 2.2.0-rc01 contém estas confirmações.

Nenhuma mudança significativa desde a versão 2.2.0-beta01.

Versão 2.2.0-beta01

13 de outubro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 e androidx.sqlite:sqlite-ktx:2.2.0-beta01. A versão 2.2.0-beta01 contém estas confirmações.

  • Nenhuma mudança em relação à versão Alfa anterior.

Versão 2.2.0-alpha02

21 de julho de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 e androidx.sqlite:sqlite-ktx:2.2.0-alpha02. A versão 2.2.0-alpha02 contém estas confirmações.

Nenhuma mudança significativa desde a versão 2.2.0-alpha01. Esta versão é apenas para alinhamento com a Room 2.4.0-alpha04.

Versão 2.2.0-alpha01

16 de junho de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 e androidx.sqlite:sqlite-ktx:2.2.0-alpha01. A versão 2.2.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição do método padrão para execPerConnectionSQL() em SupportSQLiteDatabase (I86326, b/172270145)

Versão 2.1.0

Versão 2.1.0

22 de janeiro de 2020

Lançamento de androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 e androidx.sqlite:sqlite-ktx:2.1.0 sem mudanças desde 2.1.0-rc01. A versão 2.1.0 contém estas confirmações.

Mudanças importantes desde a versão 2.0.1

  • Suporte a useNoBackupDirectory, que pode ser usado para indicar que o banco de dados precisa ser criado no diretório sem backup ao usar SupportSQLiteOpenHelper.

Versão 2.1.0-rc01

8 de janeiro de 2020

androidx.sqlite:sqlite-*:2.1.0-rc01 é lançado. A versão 2.1.0-rc01 contém estas confirmações.

Essa versão é idêntica a 2.1.0-beta01.

Versão 2.1.0-beta01

4 de dezembro de 2019

Lançamento de androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 e androidx.sqlite:sqlite-ktx:2.1.0-beta01 sem mudanças desde 2.1.0-alpha01. A versão 2.1.0-beta01 contém estas confirmações.

Versão 2.1.0-alpha01

7 de novembro de 2019

Lançamento de androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 e androidx.sqlite:sqlite-ktx:2.1.0-alpha01. A versão 2.1.0-alpha01 contém essas confirmações (link em inglês).

Mudanças na API

  • Adição de uma nova propriedade a SupportSQLiteOpenHelper.Configuration chamada useNoBackupDirectory para indicar que um banco de dados baseado em arquivo precisa ser criado e localizado no diretório sem backup.

Versão 2.0.1

Versão 2.0.1

13 de março de 2019

Lançamento da versão 2.0.1 do grupo de artefatos androidx.sqlite com duas correções de bugs.

Correções de bugs

  • Foram corrigidos dois problemas em que FrameworkSQLiteOpenHelper não se recuperava corretamente de um banco de dados corrompido ou de uma migração incorreta durante a inicialização (b/111504749 e b/111519144).