Какая версия SQLite используется в Android?
Причина: мне интересно, как обрабатывать схемы миграции. Более новые версии SQLite поддерживают команду SQL «ALTER TABLE», которая избавила бы меня от необходимости копировать данные, удалять таблицу, пересоздавать таблицу и вставлять данные заново.
Ответы:
ОБНОВЛЕНИЕ ОКТЯБРЯ 2016 : Вот ссылка на обновленные официальные документы, которые включают в себя основные моменты в этом ответе: javadoc уровня пакета android.database.sqlite
Использование эмуляторов:
ОБНОВЛЕНИЕ: начиная с SDK 29 (ревизия эмулятора 8), команда оболочки adb дает:
Есть идеи почему? Выпуск трекера здесь .
SQLite 3.28.0 ( оконные функции !):
SQLite 3.22.0 :
SQLite 3.19.4 (по какой-то причине 3.19.4 не существует в заметках о выпуске sqlite!, Поэтому вместо ссылки на проверки версий):
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (ссылка на SQLite для 3.8.6, потому что 3.8.6.1 по какой-то причине не существует):
SQLite 3.8.6 :
SQLite (неизвестно):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Примечание. Ссылки уровня Android SDK показывают, где изменился пакет android.database.sqlite . Там, где нет ссылки (например, уровень SDK 17), указывает на отсутствие изменений в этом пакете.
Примечание: вот некоторые аномалии (список не исчерпывающий):
SQLite 3.7.13 (вместо 3.7.11):
SQLite 3.7.6.3 (вместо 3.6.22):
SQLite 3.7.5 (вместо 3.7.4):
SQLite 3.7.0.1 (вместо 3.6.22):
SQLite 3.6.23.1 (вместо 3.5.9):
Примечание: команда adb для получения версии SQLite работает только на эмуляторах и на устройствах с sqlite3: https://stackoverflow.com/a/3645800/444761
Для других устройств, смотрите ответ Юри .
Я добавил проблему № 58909 в систему отслеживания проблем Android. Пожалуйста, пометьте это, если хотите поддержать.
Примечание. Если вы хотите, чтобы ваше приложение использовало одну и ту же версию SQLite во всех версиях Android, рассмотрите возможность использования сторонней библиотеки поддержки SQLite .
источник
targetSdkVersion
илиbuildTarget
имеет какое-либо влияние на это?Хотя документация дает номер 3.4.0 в качестве ссылочного номера, если вы выполните следующий sql, вы заметите, что установлено гораздо большее количество SQlite:
Это всего лишь быстрый и грязный код для получения версии sqlite. Например на HTC Hero с Android 2.1, я получаю: 3.5.9 .
На моем Nexus One с Android 2.2 я даже получаю 3.6.22 .
источник
То же самое на эмуляторе ADP1 1.6 и 2.1.
источник
Краткий обзор API Andorid и поддерживаемых версий SQLite.
Обзор по ссылке в ответе Марка Картера.
источник
В комнате вы можете запросить
ВЫБЕРИТЕ sqlite_version ()
RG
источник