Versión de SQLite utilizada en Android?

¿Cuál es la versión de SQLite utilizada en Android?

Razón: Me pregunto cómo manejar migraciones de esquema. Las versiones más recientes de SQLite soportan un comando SQL "ALTER TABLE" que me ahorra tener que copiar datos, soltar la tabla, recrear la tabla y volver a insertar datos.

UPDATE OCT 2016 : Aquí hay un enlace a los documentos oficiales actualizados que incluye los puntos principales en esta respuesta: android.database.sqlite package-level javadoc

Uso de los emuladores (adb shell sqlite3 –version):

ACTUALIZACIÓN: Lo sentimos, los diffs de API de nivel de paquete (SDK 18 y anteriores) anteriores han dejado de funcionar: https://code.google.com/p/android/issues/detail?id=175329

SQLite 3.18.0 :

  • 26-8.0.0 – O (beta 3)

SQLite 3.9.2 :

  • 25-7.1.1-N MR1
  • 24 -7.0-N (nota: las vistas previas usaron la misma versión)

SQLite 3.8.10.2 :

  • 23-6.0-M (nota: M Preview 1 (SDK nivel 22) utilizado 3.8.10 )

SQLite 3.8.6 :

  • 22-5.1.1-Lollipop

SQLite 3.8.4.3 :

  • 21-5.0-Lollipop

SQLite 3.7.11 :

  • 20-4.4W.2-Android Wear
  • 19-4.4-KitKat
  • 18-4.3-Jelly Bean
  • 17-4.2-Jelly Bean
  • 16 -4,1-Jelly Bean

SQLite 3.7.4 :

  • 15-4.0.3-Sandwich de helado
  • 14 -4.0-Sandwich de helado
  • 13-3.2-Nido de abeja
  • 12-3.1-Nido de abeja
  • 11 -3.0-Nido de abeja

SQLite 3.6.22 :

  • 10-2.3.3-Pan de jengibre
  • 9-2.3.1-Pan de jengibre
  • 8 -2.2-Froyo

SQLite 3.5.9 :

  • 7-2.1-Eclair
  • 4-1.6-Donut
  • 3 -1.5-Cupcake

Nota: los enlaces de nivel SDK de Android 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í están algunas anomalías (lista de ninguna manera exhaustiva):

SQLite 3.7.13 (en lugar de 3.7.11):

  • LG Optimus L70 MS323 LGMS323 | KOT49I.MS32310b (19-4.4-KitKat)
  • LG Optimus G E975 LG-E975 | JZO54K (16-4.1-Jelly Bean)
  • LG G2 D802 LG-D802 | JDQ39B (17-4.2-Jelly Bean)

SQLite 3.7.6.3 (en lugar de 3.6.22):

  • LG Optimus Sol E730 / myTouch E739 / myTouch Q C800 (10-2.3.3-Pan de jengibre, GRJ22)
  • LG Optimus Vu F100S / F100L (10-2.3.3-Pan de jengibre, RK39F)
  • LG Optimus LTE TAG F120K / F120L (10-2.3.3-Pan de jengibre, GRK39F)
  • LG Optimus LTE L-01D (10-2.3.3-Pan de jengibre, GRJ90)
  • LG Optimus Net P690b (10-2.3.3-pan de jengibre, jengibre)
  • LG Prada KU5400 (10-2.3.3-Pan de jengibre, GWK74)
  • LG Prada P940 (10-2.3.3-Pan de jengibre, GWK74)
  • LG LU6200 / SU640 (10-2.3.3-Pan de jengibre, GRJ90) s

SQLite 3.7.5 (en lugar de 3.7.4):

  • Samsung Galaxy Note (15-GT-N7000 | IML74K.ZSLPF)
  • Samsung Galaxy SII (15-SC-02C | IML74K.OMMP4 y GT-I9100 | IML74K.DXLP7)
  • Samsung Galaxy S Duos (15-GT-S7562 | IMM76I.S7562XXBMD6)
  • Samsung Galaxy Tab 7.7 (15-GT-P6810 | IMM76D.ZSLP8)

SQLite 3.7.0.1 (en lugar de 3.6.22):

  • LG Esteem MS910 (10-2.3.3-Gingerbread, GSE-_v.05)
  • AndroTab (8-2.2 – Froyo, 1.0.7100.0385)
  • GPLUS MUSN M500 (8-2.2-Froyo, FRG83G)

SQLite 3.6.23.1 (en lugar de 3.5.9):

  • Motorola Backflip MB300 (7-2.1-Eclair, ERD79)
  • Garmin-Asus nüvifone A10 / A50 / Garminfone (7-2.1-Eclair, ERE27)

Nota: el comando adb para obtener la versión SQLite sólo funciona en emuladores y en dispositivos con sqlite3 disponibles: https://stackoverflow.com/a/3645800/444761

Para otros dispositivos, vea la respuesta de Juri .

He añadido un problema # 58909 al rastreador de problemas de Android. Por favor star esto si usted quisiera apoyarlo.

Nota: si desea que su aplicación utilice la misma versión de SQLite en todas las versiones de Android, considere la posibilidad de utilizar esta biblioteca de soporte SQLite de terceros .

Aunque la documentación da 3.4.0 como número de referencia, si ejecuta el siguiente sql, notará que hay un número mucho mayor de SQlite instalado:

Cursor cursor = SQLiteDatabase.openOrCreateDatabase(":memory:", null).rawQuery("select sqlite_version() AS sqlite_version", null); String sqliteVersion = ""; while(cursor.moveToNext()){ sqliteVersion += cursor.getString(0); } 

Esto es sólo 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 obtener 3.6.22 .

 $ adb shell $ sqlite3 --version sqlite3 --version 3.5.9 

Lo mismo en ADP1 1.6 y 2.1 emulador.

Una breve descripción de las API de Andorid y las versiones de SQLite soportadas.

Introduzca aquí la descripción de la imagen

La visión general es del enlace en la respuesta de Mark Carters.

  • Android busca base de datos SQLite en el teléfono
  • Problemas para obtener Calendar.WEEK_OF_YEAR
  • La base de datos Android está dañada, pero puede abrirse en SQLite Manager. ¿Recuperable?
  • ¿Cómo obtener contactos en orden de sus próximos cumpleaños?
  • Cómo actualizar la base de datos Sqlite para una sola columna utilizando cláusula WHERE en android
  • ¿Cómo obtener tablas columnas arraylist en Android?
  • Jest error de caso de prueba en reactivo nativo mediante el complemento externo
  • Base de datos sqlite pre-relleno android
  • Recuperar un nombre de usuario y una contraseña en SQLITE DB por EMAIL_ADDRESS en ANDROID
  • Malo rendimiento de SQLite en almacenamiento externo en Android
  • ¿Cómo saber todas las conexiones abiertas de la base de datos usando DAO verde ..?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.