Quelle est la version de SQLite utilisée dans Android?
Raison: je me demande comment gérer les migrations de schéma. Les versions plus récentes de SQLite prennent en charge une commande SQL "ALTER TABLE" qui me permettrait de ne pas avoir à copier des données, à supprimer la table, à recréer une table et à réinsérer des données.
UPDATE OCT 2016 : voici un lien vers la documentation officielle mise à jour qui inclut les points principaux de cette réponse: package Android.database.sqlite javadoc de nivea
Utilisation des émulateurs (adb Shell sqlite3 --version
):
UPDATE: Désolé, les différences d'API au niveau du package plus anciennes (SDK 18 et antérieures) ont cessé de fonctionner: https://issuetracker.google.com/issues/37048579
SQLite .22. :
SQLite .19.4 (pour une raison quelconque, 3.19.4 n'existe pas dans les notes de publication de sqlite! Vous devez donc créer un lien vers les enregistrements de contrôle de version):
SQLite .18.2 :
SQLite .9.2 :
SQLite .8.10.2 :
SQLite .8.6.1 (le lien SQLite est pour 3.8.6 car 3.8.6.1 n'existe pas pour une raison quelconque):
SQLite .8.6 :
SQLite (inconnu):
SQLite .7.11 :
SQLite .7.4 :
SQLite .6.22 :
SQLite .5.9 :
Remarque: Android Les liens de niveau SDK indiquent où le package Android.database.sqlite a été modifié. Lorsqu'il n'y a pas de lien (par exemple, SDK niveau 17), n'indique aucune modification de ce package.
Remarque: Voici quelques anomalies (liste nullement exhaustive):
SQLite .7.1 (au lieu de 3.7.11):
SQLite .7.6. (au lieu de 3.6.22):
SQLite .7.5 (au lieu de 3.7.4):
SQLite .7.0.1 (au lieu de 3.6.22):
SQLite .6.23.1 (au lieu de 3.5.9):
Remarque: La commande adb permettant d’obtenir la version SQLite ne fonctionne que sur les émulateurs et sur les périphériques dotés de sqlite3: https://stackoverflow.com/a/3645800/444761
Pour les autres périphériques, voir réponse de Juri .
J'ai ajouté un numéro n ° 58909 au Android Issue Tracker. Merci de mettre ceci en évidence si vous souhaitez le soutenir.
Remarque: si vous souhaitez que votre application utilise la même version de SQLite sur toutes les versions de Android, utilisez cette bibliothèque de support tierce de SQLite .
Bien que la documentation indique 3.4.0 comme numéro de référence, si vous exécutez le code SQL suivant, vous remarquerez qu’un nombre beaucoup plus élevé de SQlite est installé:
Cursor cursor = SQLiteDatabase.openOrCreateDatabase(":memory:", null).rawQuery("select sqlite_version() AS sqlite_version", null);
String sqliteVersion = "";
while(cursor.moveToNext()){
sqliteVersion += cursor.getString(0);
}
Ceci est juste un morceau de code sale et rapide pour récupérer la version sqlite. Par exemple, sur un HTC Hero équipé de Android 2.1, je reçois: .5.9.
Sur mon Nexus One avec Android 2.2, je reçois même .6.22.
$ adb Shell
$ sqlite3 --version
sqlite3 --version
3.5.9
Idem sur les émulateurs ADP1 1.6 & 2.1.