¿Cuál es la versión de SQLite utilizada en Android?
Motivo: me pregunto cómo manejar las migraciones de esquemas. Las versiones más nuevas de SQLite admiten un comando SQL "ALTER TABLE" que me ahorraría tener que copiar datos, descartar la tabla, volver a crear la tabla y volver a insertar los datos.
Respuestas:
ACTUALIZACIÓN OCTUBRE 2016 : Aquí hay un enlace a los documentos oficiales actualizados que incluye los puntos principales de esta respuesta: android.database.sqlite package-level javadoc
Usando los emuladores:
ACTUALIZACIÓN: desde SDK 29 (revisión de emulador 8), el comando adb shell proporciona:
Alguna idea de por qué? Emitir rastreador aquí .
SQLite 3.28.0 ( funciones de ventana !):
SQLite 3.22.0 :
SQLite 3.19.4 (¡por alguna razón 3.19.4 no existe en las notas de la versión de sqlite! Por lo tanto, se vincula a los controles de control de versiones):
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (el enlace SQLite es para 3.8.6 porque 3.8.6.1 no existe por alguna razón):
SQLite 3.8.6 :
SQLite (desconocido):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Nota: los enlaces de nivel de Android SDK muestran dónde ha cambiado el paquete android.database.sqlite . Donde no hay enlace (por ejemplo, SDK nivel 17), indica que no hay cambios en ese paquete.
Nota: Aquí hay algunas anomalías (la lista no es exhaustiva):
SQLite 3.7.13 (en lugar de 3.7.11):
SQLite 3.7.6.3 (en lugar de 3.6.22):
SQLite 3.7.5 (en lugar de 3.7.4):
SQLite 3.7.0.1 (en lugar de 3.6.22):
SQLite 3.6.23.1 (en lugar de 3.5.9):
Nota: el comando adb para obtener la versión SQLite solo funciona en emuladores y en dispositivos con sqlite3 disponible: https://stackoverflow.com/a/3645800/444761
Para otros dispositivos, vea la respuesta de Juri .
He agregado un número de problema # 58909 al rastreador de problemas de Android. Por favor marque esto si desea apoyarlo.
Nota: si desea que su aplicación use la misma versión de SQLite en todas las versiones de Android, considere usar esta biblioteca de soporte SQLite de terceros .
fuente
targetSdkVersion
obuildTarget
tiene alguna influencia en eso?Aunque la documentación proporciona 3.4.0 como número de referencia, si ejecuta el siguiente sql, notará que hay un número mucho mayor de SQlite instalado:
Esto es solo una pieza de código rápido y sucio para recuperar la versión sqlite. Por ejemplo, en un HTC Hero con Android 2.1, obtengo: 3.5.9 .
En mi Nexus One con Android 2.2, incluso obtengo 3.6.22 .
fuente
Lo mismo en el emulador ADP1 1.6 y 2.1.
fuente
Una breve descripción de las API de Andorid y las versiones compatibles de SQLite.
El resumen es del enlace en la respuesta de Mark Carters.
fuente
En Room puedes consultar
SELECCIONE sqlite_version ()
RG
fuente