Qual é a versão do SQLite usada no Android?
Razão: estou pensando em como lidar com migrações de esquema. As versões mais recentes do SQLite suportam um comando SQL "ALTER TABLE", o que me pouparia de copiar dados, descartar a tabela, recriar tabela e reinserir dados.
Respostas:
ATUALIZAÇÃO OUT OUT 2016 : Aqui está um link para os documentos oficiais atualizados que incluem os pontos principais nesta resposta: javadoc no nível do pacote android.database.sqlite
Usando os emuladores:
ATUALIZAÇÃO: Desde o SDK 29 (revisão 8 do emulador), o comando adb shell fornece:
Alguma idéia do porquê? Rastreador de problemas aqui .
SQLite 3.28.0 ( funções da janela !):
SQLite 3.22.0 :
SQLite 3.19.4 (por algum motivo, o 3.19.4 não existe nas notas de versão do sqlite! Portanto, vinculando aos check-ins de controle de versão):
SQLite 3.18.2 :
SQLite 3.9.2 :
SQLite 3.8.10.2 :
SQLite 3.8.6.1 (o link SQLite é para 3.8.6 porque 3.8.6.1 não existe por algum motivo):
SQLite 3.8.6 :
SQLite (desconhecido):
SQLite 3.7.11 :
SQLite 3.7.4 :
SQLite 3.6.22 :
SQLite 3.5.9 :
Nota: Os links no nível do SDK do Android mostram onde o pacote android.database.sqlite foi alterado. Onde não há link (por exemplo, SDK nível 17), indica que não há alterações nesse pacote.
Nota: Aqui estão algumas anomalias (lista de nenhuma maneira exaustiva):
SQLite 3.7.13 (em vez de 3.7.11):
SQLite 3.7.6.3 (em vez de 3.6.22):
SQLite 3.7.5 (em vez de 3.7.4):
SQLite 3.7.0.1 (em vez de 3.6.22):
SQLite 3.6.23.1 (em vez de 3.5.9):
Nota: o comando adb para obter a versão SQLite funciona apenas em emuladores e em dispositivos com sqlite3 disponíveis: https://stackoverflow.com/a/3645800/444761
Para outros dispositivos, consulte a resposta de Juri .
Adicionei um problema nº 58909 ao rastreador de problemas do Android. Marque isto com estrela se você quiser apoiá-lo.
Nota: se você deseja que seu aplicativo use a mesma versão do SQLite em todas as versões do Android, considere usar esta biblioteca de suporte ao SQLite de terceiros .
fonte
targetSdkVersion
oubuildTarget
tem alguma influência sobre isso?Embora a documentação dê 3.4.0 como número de referência, se você executar o seguinte sql, notará que há um número muito maior de SQlite instalado:
Este é apenas um pedaço de código rápido e sujo para recuperar a versão sqlite. Por exemplo, em um HTC Hero com Android 2.1, recebo: 3.5.9 .
No meu Nexus One com Android 2.2, recebo até 3.6.22 .
fonte
O mesmo no emulador ADP1 1.6 e 2.1.
fonte
Uma breve visão geral das APIs do Andorid e das versões suportadas do SQLite.
A visão geral é do link na resposta de Mark Carters.
fonte
Na sala, você pode consultar
SELECT sqlite_version ()
RG
fonte