Jaka wersja SQLite jest używana w systemie Android?
Powód: Zastanawiam się, jak obsługiwać migracje schematów. Nowsze wersje SQLite obsługują polecenie SQL „ALTER TABLE”, co pozwoliłoby mi uniknąć kopiowania danych, upuszczania tabeli, odtwarzania tabeli i ponownego wstawiania danych.
Odpowiedzi:
AKTUALIZACJA PAŹDZIERNIKA 2016 : Oto link do zaktualizowanych oficjalnych dokumentów, który zawiera główne punkty tej odpowiedzi: android.database.sqlite javadoc na poziomie pakietu
Korzystanie z emulatorów:
AKTUALIZACJA: Od SDK 29 (wersja emulatora 8) polecenie powłoki adb daje:
Jakieś pomysły, dlaczego? Tutaj możesz śledzić problem .
SQLite 3.28.0 ( funkcje okna !):
SQLite 3.22.0 :
SQLite 3.19.4 (z jakiegoś powodu 3.19.4 nie istnieje w uwagach do wydania sqlite! Więc zamiast tego link do kontroli wersji):
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (łącze SQLite jest przeznaczone dla 3.8.6, ponieważ 3.8.6.1 z jakiegoś powodu nie istnieje):
SQLite 3.8.6 :
SQLite (nieznany):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Uwaga: linki poziomu zestawu SDK systemu Android pokazują, gdzie zmienił się pakiet android.database.sqlite . Jeśli nie ma łącza (np. 17 zestawu SDK), oznacza brak zmian w tym pakiecie.
Uwaga: Oto niektóre anomalie (lista nie jest wyczerpująca):
SQLite 3.7.13 (zamiast 3.7.11):
SQLite 3.7.6.3 (zamiast 3.6.22):
SQLite 3.7.5 (zamiast 3.7.4):
SQLite 3.7.0.1 (zamiast 3.6.22):
SQLite 3.6.23.1 (zamiast 3.5.9):
Uwaga: polecenie adb, aby uzyskać wersję SQLite, działa tylko na emulatorach i urządzeniach z dostępnym sqlite3: https://stackoverflow.com/a/3645800/444761
W przypadku innych urządzeń zobacz odpowiedź Jurija .
Dodałem problem nr 58909 do narzędzia do śledzenia problemów z systemem Android. Oznacz to gwiazdką, jeśli chcesz to wesprzeć.
Uwaga: jeśli chcesz, aby Twoja aplikacja korzystała z tej samej wersji SQLite we wszystkich wersjach Androida, rozważ użycie tej biblioteki obsługi SQLite innej firmy .
źródło
targetSdkVersion
czybuildTarget
ma na to jakiś wpływ?Mimo że dokumentacja podaje numer 3.4.0 jako numer referencyjny, jeśli wykonasz następujący kod SQL, zauważysz, że zainstalowano znacznie większą liczbę SQlite:
To tylko krótki, brudny kod do pobrania wersji sqlite. Na przykład w telefonie HTC Hero z systemem Android 2.1 otrzymuję: 3.5.9 .
Na moim Nexus One z Androidem 2.2 dostaję nawet 3.6.22 .
źródło
To samo na emulatorze ADP1 1.6 i 2.1.
źródło
Krótki przegląd interfejsów API Andorid i obsługiwanych wersji SQLite.
Przegląd pochodzi z linku w odpowiedzi Mark Carters.
źródło
W pokoju możesz zapytać
WYBIERZ wersję sqlite_version ()
RG
źródło