Welche Version von SQLite wird in Android verwendet?
Grund: Ich frage mich, wie ich mit Schemamigrationen umgehen soll. Die neueren SQLite-Versionen unterstützen einen SQL-Befehl "ALTER TABLE", mit dem ich keine Daten kopieren, die Tabelle löschen, eine Tabelle neu erstellen und Daten erneut einfügen muss.
Antworten:
UPDATE OKT 2016 : Hier ist ein Link zu den aktualisierten offiziellen Dokumenten, der die wichtigsten Punkte in dieser Antwort enthält: android.database.sqlite javadoc auf Paketebene
Verwenden der Emulatoren:
UPDATE: Seit SDK 29 (Emulator Revision 8) gibt der Befehl adb shell Folgendes aus:
Irgendwelche Ideen warum? Geben Sie hier den Tracker aus .
SQLite 3.28.0 ( Fensterfunktionen !):
SQLite 3.22.0 :
SQLite 3.19.4 (aus irgendeinem Grund ist 3.19.4 in SQLite- Versionshinweisen nicht vorhanden! Verknüpfen Sie stattdessen mit Check-ins für die Versionskontrolle):
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (SQLite-Link ist für 3.8.6, da 3.8.6.1 aus irgendeinem Grund nicht vorhanden ist):
SQLite 3.8.6 :
SQLite (unbekannt):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Hinweis: Links auf Android SDK-Ebene zeigen an, wo sich das Paket android.database.sqlite geändert hat. Wenn kein Link vorhanden ist (z. B. SDK Level 17), werden keine Änderungen an diesem Paket angezeigt.
Hinweis: Hier sind einige Anomalien (Liste keineswegs erschöpfend):
SQLite 3.7.13 (anstelle von 3.7.11):
SQLite 3.7.6.3 (anstelle von 3.6.22):
SQLite 3.7.5 (anstelle von 3.7.4):
SQLite 3.7.0.1 (anstelle von 3.6.22):
SQLite 3.6.23.1 (anstelle von 3.5.9):
Hinweis: Der Befehl adb zum Abrufen der SQLite-Version funktioniert nur auf Emulatoren und auf Geräten mit verfügbarem SQLite3: https://stackoverflow.com/a/3645800/444761
Weitere Geräte finden Sie in der Antwort von Juri .
Ich habe dem Android Issue Tracker ein Problem # 58909 hinzugefügt . Bitte markieren Sie dies, wenn Sie es unterstützen möchten.
Hinweis: Wenn Ihre App in allen Android-Versionen dieselbe SQLite-Version verwenden soll, sollten Sie diese SQLite-Unterstützungsbibliothek eines Drittanbieters verwenden .
quelle
targetSdkVersion
oderbuildTarget
hat das einen Einfluss darauf?Obwohl in der Dokumentation 3.4.0 als Referenznummer angegeben ist, werden Sie beim Ausführen der folgenden SQL feststellen, dass eine viel höhere Anzahl von SQlite installiert ist:
Dies ist nur ein Stück schneller, schmutziger Code zum Abrufen der SQLite-Version. Zum Beispiel auf einem HTC Hero mit Android 2.1 bekomme ich: 3.5.9 .
Auf meinem Nexus One mit Android 2.2 bekomme ich sogar 3.6.22 .
quelle
Gleiches gilt für den ADP1 1.6 & 2.1 Emulator.
quelle
Ein kurzer Überblick über die Andorid-APIs und die unterstützten SQLite-Versionen.
Die Übersicht stammt aus dem Link in der Antwort von Mark Carters.
quelle
In Room können Sie abfragen
SELECT sqlite_version ()
RG
quelle