¿Versión de SQLite utilizada en Android?

Resuelto Eno asked hace 54 años • 0 respuestas

¿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 evitaría tener que copiar datos, eliminar la tabla, volver a crear la tabla y volver a insertar datos.

Eno avatar Jan 01 '70 08:01 Eno
Aceptado

Aquí hay un enlace a los documentos oficiales que incluyen los puntos principales de esta respuesta: android.database.sqlite javadoc a nivel de paquete

Código Kotlin para obtener la versión SQLite del marco (consejo: simplemente inserte un punto de interrupción en su Actividad onCreate()y use este código en Evaluate Expression...):

val version = android.database.sqlite.SQLiteDatabase.create(null).use {
    android.database.DatabaseUtils.stringForQuery(it, "SELECT sqlite_version()", null)
};
"Framework (API ${android.os.Build.VERSION.SDK_INT}) SQLite version: $version".also { println(it) }

Usando los emuladores (nota, la versión de SQLite en dispositivos reales será al menos la especificada):

Nivel API* Versión Nombre SQLite Notas
35 15 V 3.42.0 Vista previa del desarrollador 1
34 14 Ud. 3.39.2 UNIÓN EXTERIOR DERECHA y COMPLETA
33 13 t 3.32.2
32 12L Sv2 3.32.2
31 12 S 3.32.2
30 11 R 3.28.0 funciones de ventana
29 10 q 3.22.0
28 9 Tarta 3.22.0
27 8.1 galletas oreo 3.19.4 consulte 3.19.3 y comprobaciones de control de versiones porque el enlace 3.19.4 no existe
26 8.0 galletas oreo 3.18.2 O versiones beta utilizadas 3.18.0
25 7.1.1 Turrón 3.9.2
24 7.0 Turrón 3.9.2
23 6.0 Malvavisco 3.8.10.2 M Preview 1 (SDK nivel 22) usado 3.8.10
22 5.1.1 Chupete 3.8.6.1 consulte 3.8.6 y los registros de control de versiones porque el enlace 3.8.6.1 no existe
21 5.0 Chupete 3.8.6
20 4.4W.2 Desgaste de Android desconocido no hay emulador disponible, pero probablemente 3.7.11 o 3.8.4.3
19 4.4 Kit Kat 3.7.11
18 4.3 Frijol de jalea 3.7.11
17 4.2 Frijol de jalea 3.7.11
dieciséis ** 4.1 Frijol de jalea 3.7.11
15 4.0.3 Sándwich De Helado 3.7.4
14 ** 4.0 Sándwich De Helado 3.7.4
13 3.2 Panal 3.7.4
12 3.1 Panal 3.7.4
11 ** 3.0 Panal 3.7.4
10 2.3.3 Pan de jengibre 3.6.22
9 2.3.1 Pan de jengibre 3.6.22
8 ** 2.2 froyo 3.6.22
7 2.1 Eclair 3.5.9
4 1.6 Rosquilla 3.5.9
3 ** 1.5 magdalena 3.5.9

* Los enlaces de nivel de API de Android muestran dónde ha cambiado el paquete android.database.sqlite . Donde no hay ningún enlace (por ejemplo, API nivel 17), indica que no hay cambios en ese paquete.

** Enlace SDK roto, ver aquí

Nota: si desea que su aplicación use la misma versión de SQLite en todas las versiones de Android, considere usar la biblioteca de soporte SQLite de terceros de Requery o SQLCipher (si también desea cifrado).

Mark avatar Dec 07 '2010 13:12 Mark

Aunque la documentación proporciona 3.4.0 como número de referencia, si ejecuta el siguiente sql, notará que hay una cantidad mucho mayor de SQlite instalados:

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

Esto es solo un fragmento de código sucio y rápido 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 .

Juri avatar Aug 31 '2010 20:08 Juri
$ adb shell sqlite3 --version 
3.5.9

Lo mismo en el emulador ADP1 1.6 y 2.1.

yanchenko avatar Apr 28 '2010 22:04 yanchenko

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

ingrese la descripción de la imagen aquí

La descripción general proviene del enlace en la respuesta de Mark.

Petterson avatar May 10 '2017 06:05 Petterson