Sqlite
androidx.sqlite
contiene interfaces abstractas junto con implementaciones básicas que se pueden usar para compilar tus propias bibliotecas que acceden a SQLite.
Te recomendamos que uses la biblioteca de Room, que brinda una capa de abstracción para SQLite que permite acceder a la base de datos sin problemas y, al mismo tiempo, aprovecha toda la potencia de SQLite.
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
7 de agosto de 2024 | 2.4.0 | - | - | 2.5.0-alpha06 |
Cómo declarar dependencias
Para agregar una dependencia en SQLite, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
Groovy
dependencies { def sqlite_version = "2.4.0" // 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.4.0" // 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 obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 2.5
Versión 2.5.0-alpha06
7 de agosto de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha06
. La versión 2.5.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con el destino multiplataforma
linuxArm64
de Kotlin (I139d3, b/338268719).
Versión 2.5.0-alpha05
10 de julio de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha05
. La versión 2.5.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de
SQLiteKt
porSQLite
y el deBundledSQLiteKt
porBundledSQLite
(I8b501).
Versión 2.5.0-alpha04
12 de junio de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha04
. La versión 2.5.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se agregó una API de sobrecarga de
open()
aBundledSQLiteDriver
para pasar marcas abiertas cuando se abre una conexión de base de datos. Es útil para abrir una base de datos en modo de solo lectura o usar el modo seguro de subprocesos serializados en lugar del modo de varios subprocesos con el que se compila SQLite en paquete (b/340949940).
Correcciones de errores
- Se corrigió un problema de vinculación en el controlador de SQLite agrupado que causaba que se arrojara
UnsatisfiedLinkError
debido a la falta de símbolos atómicos en los dispositivos Android con un ARM32. (b/341639198). - Se corrigió un problema en los controladores por el que la vinculación de un array de bytes de longitud cero a una columna generaba un valor nulo cuando se leía desde ella.
Versión 2.5.0-alpha03
29 de mayo de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha03
. La versión 2.5.0-alpha03 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó un problema con
BundledSQLiteDriver
, en el que las bases de datos creadas con él contenían el carácter de terminador nulo en C (b/340822359).
Versión 2.5.0-alpha02
14 de mayo de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha02
sin cambios significativos desde la versión 2.5.0-alpha01 . La versión 2.5.0-alpha02 contiene estas confirmaciones.
Versión 2.5.0-alpha01
1 de mayo de 2024
Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha01
. La versión 2.5.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Compatibilidad con varias plataformas (KMP) de Kotlin: Con el lanzamiento de Room 2.7.0-alpha01, que es la primera versión de Room KMP, también se actualizaron las APIs de
SQLite
que permiten que Room sea KMP. El paqueteandriodx.sqlite
contiene tres interfaces que definen las APIs de SQLite de bajo nivel:SQLiteDriver
,SQLiteConnection
ySQLiteStatement
. El artefactoandroidx.sqlite:sqlite-framework
ofrece la implementación de las interfaces para iOS y Android de forma nativa, mientras queandroidx.sqlite:sqlite-bundled
ofrece una implementación que usaSQLite
compilado desde la fuente (también conocido como " SQLite integrado"). Para obtener más información sobre la API del controlador de SQLite, consulta la documentación oficial de SQLite KMP.
Versión 2.4
Versión 2.4.0
18 de octubre de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
y androidx.sqlite:sqlite-ktx:2.4.0
. La versión 2.4.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.3.0
- Se corrigieron varios errores.
Versión 2.4.0-rc01
20 de septiembre de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
y androidx.sqlite:sqlite-ktx:2.4.0-rc01
. La versión 2.4.0-rc01 contiene estas confirmaciones.
Versión 2.4.0-beta01
23 de agosto de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0-beta01
, androidx.sqlite:sqlite-framework:2.4.0-beta01
y androidx.sqlite:sqlite-ktx:2.4.0-beta01
. La versión 2.4.0-beta01 contiene estas confirmaciones.
Versión 2.4.0-alpha03
9 de agosto de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha03
, androidx.sqlite:sqlite-framework:2.4.0-alpha03
y androidx.sqlite:sqlite-ktx:2.4.0-alpha03
. La versión 2.4.0-alpha03 contiene estas confirmaciones.
Versión 2.4.0-alpha02
21 de junio de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha02
, androidx.sqlite:sqlite-framework:2.4.0-alpha02
y androidx.sqlite:sqlite-ktx:2.4.0-alpha02
sin cambios. La versión 2.4.0-alpha02 contiene estas confirmaciones.
Versión 2.4.0-alpha01
22 de marzo de 2023
Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha01
, androidx.sqlite:sqlite-framework:2.4.0-alpha01
y androidx.sqlite:sqlite-ktx:2.4.0-alpha01
. La versión 2.4.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una
NullPointerException
que podía ocurrir enSupportSQLiteQueryBuilder
. (5df8698).
Versión 2.3.1
Versión 2.3.1
22 de marzo de 2023
Lanzamiento de androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
y androidx.sqlite:sqlite-ktx:2.3.1
. La versión 2.3.1 contiene estas confirmaciones.
Correcciones de errores
- Evita un problema de framework en el que las consultas de SQL no se invaliden después de un cambio de esquema durante las migraciones.
FrameworkSupportSQLiteOpenHelper
ahora establecerá la caché mínima de instrucciones de SQL durante las migraciones para evitar el problema. (0ad2a8f). - Se solucionó un problema por el que el directorio de caché no estaba disponible para usarse en
SupportSQLiteLock
, por lo que se debía controlar un archivo nulo. (9d177dc). - Se solucionó un problema por el que
attachedDbs
no mostraba la lista completa de bases de datos adjuntas. (5f008e1).
Versión 2.3.0
Versión 2.3.0
11 de enero de 2023
Se lanzaron androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
y androidx.sqlite:sqlite-ktx:2.3.0
. La versión 2.3.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.2.0
- Las fuentes del grupo de bibliotecas
androidx.sqlite
se convirtieron de Java a Kotlin. Ten en cuenta que, debido a que aandroidx.sqlite
le faltan algunas anotaciones de nulabilidad, es posible que experimentes errores de incompatibilidad de origen si tus fuentes están en Kotlin y el código infiere el valor de nulabilidad incorrecto. Además, algunos métodos get se convirtieron en propiedades que requieren la sintaxis de acceso a las propiedades en archivos Kotlin. Informa un error si hay alguna incompatibilidad significativa (b/240707042). - Se agregó una API en la configuración de
SupportSQLite's
para permitir la pérdida de datos durante el mecanismo de recuperación (I1b830, b/215592732). - Se agregó una API para el bloqueo y uso de varios procesos a nivel de
FrameworkSQLite*
para proteger la primera creación de bases de datos y migraciones de varios procesos (Ied267, b/193182592).
Versión 2.3.0-rc01
7 de diciembre de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-rc01
, androidx.sqlite:sqlite-framework:2.3.0-rc01
y androidx.sqlite:sqlite-ktx:2.3.0-rc01
. La versión 2.3.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se resolvió el problema de NPE en
SupportSQLiteQueryBuilder
de las columnas anulables (Ica8f5).
Versión 2.3.0-beta02
9 de noviembre de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
y androidx.sqlite:sqlite-ktx:2.3.0-beta02
. La versión 2.3.0-beta02 contiene estas confirmaciones.
- Se corrigieron varias APIs que tomaban argumentos de consulta de invariantes (
Array<Any?>
) a contravariantes (Array<out Any?>
) para que coincidan con el comportamiento de conjunto de Java (b/253531073).
Versión 2.3.0-beta01
5 de octubre de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
y androidx.sqlite:sqlite-ktx:2.3.0-beta01
. La versión 2.3.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Todas las fuentes de android.sqlite se convirtieron de Java a Kotlin. b/240707042
- Un cambio notable de la conversión es que las siguientes funciones de método get se convirtieron en propiedades:
- En
SupportSQLiteDatabase
: attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- En
SupportSQLiteOpenHelper
: databaseName
readableDatabase
writableDatabase
- En
Versión 2.3.0-alpha05
24 de agosto de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
y androidx.sqlite:sqlite-ktx:2.3.0-alpha05
. La versión 2.3.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Las fuentes del grupo de bibliotecas de androidx.sqlite se convirtieron de Java a Kotlin. Ten en cuenta que, debido a que a androidx.sqlite le faltan algunas anotaciones de nulabilidad, es posible que experimentes errores de incompatibilidad de origen si tus fuentes están en Kotlin y el código infiere el valor de nulabilidad incorrecto. Informa un error si hay alguna incompatibilidad significativa (b/240707042).
Versión 2.3.0-alpha04
10 de agosto de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
y androidx.sqlite:sqlite-ktx:2.3.0-alpha04
. La versión 2.3.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se actualizó la nulabilidad (I29fbd).
Versión 2.3.0-alpha03
1 de junio de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha03
, androidx.sqlite:sqlite-framework:2.3.0-alpha03
y androidx.sqlite:sqlite-ktx:2.3.0-alpha03
. La versión 2.3.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se restringió
androidx.sqlite.ProcessLock
. La API se limita a su función dentro deandroidx.sqlite
y no se debe utilizar como un bloqueo de procesos múltiples de uso general (I1643f).
Versión 2.3.0-alpha02
6 de abril de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha02
, androidx.sqlite:sqlite-framework:2.3.0-alpha02
y androidx.sqlite:sqlite-ktx:2.3.0-alpha02
. La versión 2.3.0-alpha02 contiene estas confirmaciones.
- No hay cambios significativos desde la versión 2.3.0-alpha01.
Versión 2.3.0-alpha01
23 de febrero de 2022
Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
y androidx.sqlite:sqlite-ktx:2.3.0-alpha01
. La versión 2.3.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se agregó una API a la configuración de SupportSQLite para permitir la pérdida de datos durante el mecanismo de recuperación (I1b830, b/215592732).
- Se agregó una API para el bloqueo y el uso de varios procesos a nivel de FrameworkSQLite* para proteger la primera creación de bases de datos y migraciones de varios procesos (Ied267, b/193182592).
Versión 2.2.0
Versión 2.2.0
15 de diciembre de 2021
Lanzamiento de androidx.sqlite:sqlite:2.2.0
, androidx.sqlite:sqlite-framework:2.2.0
y androidx.sqlite:sqlite-ktx:2.2.0
. La versión 2.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.1.0
Se agregó el método predeterminado de execPerConnectionSQL()
en SupportSQLiteDatabase
.
Versión 2.2.0-rc01
1 de diciembre de 2021
Lanzamiento de androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
y androidx.sqlite:sqlite-ktx:2.2.0-rc01
. La versión 2.2.0-rc01 contiene estas confirmaciones.
No hay cambios significativos desde la versión 2.2.0-beta01.
Versión 2.2.0-beta01
13 de octubre de 2021
Se lanzaron androidx.sqlite:sqlite:2.2.0-beta01
, androidx.sqlite:sqlite-framework:2.2.0-beta01
y androidx.sqlite:sqlite-ktx:2.2.0-beta01
. La versión 2.2.0-beta01 contiene estas confirmaciones.
- No hay cambios desde la versión alfa anterior.
Versión 2.2.0-alpha02
21 de julio de 2021
Lanzamiento de androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
y androidx.sqlite:sqlite-ktx:2.2.0-alpha02
. La versión 2.2.0-alpha02 contiene estas confirmaciones.
No hay cambios significativos desde la versión 2.2.0-alpha01. Esta versión solo se lanzó para alinearla con la de Room 2.4.0-alpha04
.
Versión 2.2.0-alpha01
16 de junio de 2021
Lanzamiento de androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
y androidx.sqlite:sqlite-ktx:2.2.0-alpha01
. La versión 2.2.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se agregó un método predeterminado para
execPerConnectionSQL()
en SupportSQLiteDatabase. (I86326, b/172270145)
Versión 2.1.0
Versión 2.1.0
22 de enero de 2020
Lanzamiento de androidx.sqlite:sqlite:2.1.0
, androidx.sqlite:sqlite-framework:2.1.0
y androidx.sqlite:sqlite-ktx:2.1.0
sin modificaciones desde la versión 2.1.0-rc01
. La versión 2.1.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.0.1
- Se agregó compatibilidad con
useNoBackupDirectory
, que se puede usar para indicar que se debe crear la base de datos en el directorio sin copia de seguridad cuando se utilizaSupportSQLiteOpenHelper
.
Versión 2.1.0-rc01
8 de enero de 2020
Lanzamiento de androidx.sqlite:sqlite-*:2.1.0-rc01
. La versión 2.1.0-rc01 contiene estas confirmaciones.
Esta versión es idéntica a la 2.1.0-beta01
.
Versión 2.1.0-beta01
4 de diciembre de 2019
Lanzamiento de androidx.sqlite:sqlite:2.1.0-beta01
, androidx.sqlite:sqlite-framework:2.1.0-beta01
y androidx.sqlite:sqlite-ktx:2.1.0-beta01
sin modificaciones desde la versión 2.1.0-alpha01
. La versión 2.1.0-beta01 contiene estas confirmaciones.
Versión 2.1.0-alpha01
7 de noviembre de 2019
Lanzamiento de androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
y androidx.sqlite:sqlite-ktx:2.1.0-alpha01
. La versión 2.1.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se agregó una nueva propiedad a
SupportSQLiteOpenHelper.Configuration
, llamadauseNoBackupDirectory
, para indicar que se debe crear y ubicar una base de datos basada en archivos desde el directorio sin copia de seguridad.
Versión 2.0.1
Versión 2.0.1
13 de marzo de 2019
Lanzamiento de la versión 2.0.1 del grupo de artefactos con androidx.sqlite
que incluye dos correcciones de errores.
Correcciones de errores
- Se corrigieron dos errores en los que
FrameworkSQLiteOpenHelper
no se recuperaba correctamente de una base de datos dañada o una migración incorrecta durante la inicialización (b/111504749 y b/111519144).