tutorial room manage how example español descargar create database android sqlite schema migration

database - room - Versión de SQLite utilizada en Android?



sqlite android descargar (4)

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

Motivo: me pregunto cómo manejar las migraciones de esquemas. Las nuevas versiones de SQLite admiten un comando SQL "ALTER TABLE" que me ahorraría tener que copiar datos, eliminar la tabla, volver a crear la tabla y volver a insertar datos.


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:

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 solo un pedazo de código rápido y sucio para recuperar la versión de sqlite. Por ejemplo, en un HTC Hero con Android 2.1, obtengo: 3.5.9 .

En mi Nexus One con Android 2.2, incluso tengo 3.6.22 .


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

El resumen es del enlace en la respuesta de Mark Carters.


ACTUALIZACIÓN 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

Usando los emuladores (adb shell sqlite3 --version):

ACTUALIZACIÓN: Lo sentimos, las diferencias de API de nivel de paquete más antiguas (SDK 18 y anteriores) han dejado de funcionar: https://issuetracker.google.com/issues/37048579

SQLite 3.22.0 :

  • 28 -9.0-P (Revisión 5 en el Administrador de SDK)

SQLite 3.19.4 (¡por alguna razón, 3.19.4 no existe en las notas de la versión de sqlite! Así que en lugar de enlazar con los controles de versión):

  • 27 -8.1.0-O MR1

SQLite 3.18.2 :

  • 26-8.0.0-O (nota: O versiones beta usadas 3.18.0 )

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 Vista previa 1 (nivel 22 del SDK) usado 3.8.10 )

SQLite 3.8.6.1 (el enlace de SQLite es para 3.8.6 porque 3.8.6.1 no existe por alguna razón):

  • 22-5.1.1-Lollipop

SQLite 3.8.6.1 :

  • 21-5.0-Lollipop

SQLite (desconocido):

  • 20-4.4W.2-Android Wear (no hay emulador disponible, pero probablemente 3.7.11 o 3.8.4.3)

SQLite 3.7.11 :

  • 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-Ice Cream Sandwich
  • 13-3.2-Panal
  • 12-3.1-Panal
  • 11 -3.0-Panal

SQLite 3.6.22 :

  • 10-2.3.3-Gingerbread
  • 9-2.3.1-Gingerbread
  • 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 de SDK de Android muestran dónde ha cambiado el paquete android.database.sqlite . Donde no hay enlace (p. Ej., Nivel 17 del SDK), indica que no hay cambios en ese paquete.

Nota: Aquí hay 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-Gingerbread, GRJ22)
  • LG Optimus Vu F100S / F100L (10-2.3.3-Gingerbread, RK39F)
  • LG Optimus LTE TAG F120K / F120L (10-2.3.3-Gingerbread, GRK39F)
  • LG Optimus LTE L-01D (10-2.3.3-Gingerbread, GRJ90)
  • LG Optimus Net P690b (10-2.3.3-Gingerbread, GINGERBREAD)
  • LG Prada KU5400 (10-2.3.3-Gingerbread, GWK74)
  • LG Prada P940 (10-2.3.3-Gingerbread, GWK74)
  • LG LU6200 / SU640 (10-2.3.3-Gingerbread, 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 solo funciona en emuladores y dispositivos con sqlite3 disponible: https://.com/a/3645800/444761

Para otros dispositivos, vea la respuesta de Juri .

He agregado un Issue # 58909 al Rastreador de problemas de Android. Por favor, marca esto si quieres 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 de SQLite de terceros .


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

Lo mismo en el emulador ADP1 1.6 y 2.1.