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 m'éviterait de devoir copier des données, supprimer la table, recréer la table et réinsérer des données.
Réponses:
MISE À JOUR OCT 2016 : Voici un lien vers la documentation officielle mise à jour qui inclut les principaux points de cette réponse: android.database.sqlite au niveau du package javadoc
Utilisation des émulateurs:
MISE À JOUR: Depuis SDK 29 (émulateur révision 8), la commande adb shell donne:
Des idées pourquoi? Suivi des problèmes ici .
SQLite 3.28.0 ( fonctions de fenêtre !):
SQLite 3.22.0 :
SQLite 3.19.4 (pour une raison quelconque, 3.19.4 n'existe pas dans les notes de publication de sqlite!
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (le lien SQLite est pour 3.8.6 car 3.8.6.1 n'existe pas pour une raison quelconque):
SQLite 3.8.6 :
SQLite (inconnu):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Remarque: les liens de niveau SDK Android indiquent où le package android.database.sqlite a changé. 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 3.7.13 (au lieu de 3.7.11):
SQLite 3.7.6.3 (au lieu de 3.6.22):
SQLite 3.7.5 (au lieu de 3.7.4):
SQLite 3.7.0.1 (au lieu de 3.6.22):
SQLite 3.6.23.1 (au lieu de 3.5.9):
Remarque: la commande adb pour obtenir la version SQLite ne fonctionne que sur les émulateurs et sur les appareils avec sqlite3 disponible: https://stackoverflow.com/a/3645800/444761
Pour les autres appareils, voir la réponse de Juri .
J'ai ajouté un problème n ° 58909 à Android Issue Tracker. Veuillez indiquer ceci si vous souhaitez l'appuyer.
Remarque: si vous souhaitez que votre application utilise la même version de SQLite sur toutes les versions d'Android, envisagez d'utiliser cette bibliothèque de support SQLite tierce .
la source
targetSdkVersion
oubuildTarget
a une influence sur cela?Bien que la documentation donne 3.4.0 comme numéro de référence, si vous exécutez le SQL suivant, vous remarquerez qu'il y a un nombre beaucoup plus élevé de SQlite installé:
Ceci est juste un morceau de code rapide et sale pour récupérer la version sqlite. Par exemple sur un HTC Hero avec Android 2.1, j'obtiens: 3.5.9 .
Sur mon Nexus One avec Android 2.2, j'obtiens même 3.6.22 .
la source
Idem sur l'émulateur ADP1 1.6 & 2.1.
la source
Un bref aperçu des API Andorid et des versions SQLite prises en charge.
L'aperçu est du lien dans la réponse de Mark Carters.
la source
Dans la salle, vous pouvez interroger
SELECT sqlite_version ()
RG
la source