Androidで使用されているSQLiteのバージョンは何ですか?
理由:スキーマの移行を処理する方法を考えています。新しいSQLiteバージョンは、「ALTER TABLE」SQLコマンドをサポートしています。これにより、データのコピー、テーブルの削除、テーブルの再作成、およびデータの再挿入が不要になります。
2016年10月更新:これは、この回答の主なポイントを含む更新された公式ドキュメントへのリンクです: Android.database.sqliteパッケージ-level javadoc
エミュレーターの使用(adb Shell sqlite3 --version):
更新:申し訳ありませんが、古い(SDK 18以前の)パッケージレベルのAPI diffは動作を停止しました: https://issuetracker.google.com/issues/37048579
SQLite .22. :
SQLite .19.4 (何らかの理由でsqliteリリースノートに3.19.4は存在しないため、代わりにバージョン管理チェックインへのリンク):
SQLite .18.2 :
SQLite .9.2 :
SQLite .8.10.2 :
SQLite .8.6.1 (何らかの理由で3.8.6.1が存在しないため、SQLiteリンクは3.8.6用です):
SQLite .8.6 :
SQLite(不明):
SQLite .7.11 :
SQLite .7.4 :
SQLite .6.22 :
SQLite .5.9 :
注:Android SDKレベルのリンクは、 Android.database.sqlite パッケージが変更された場所を示しています。リンクがない場合(SDKレベル17など)、そのパッケージに変更がないことを示します。
注:ここにいくつかの異常があります(決して完全なリストではありません):
SQLite .7.1 (3.7.11の代わりに):
SQLite .7.6. (3.6.22の代わりに):
SQLite .7.5 (3.7.4ではなく):
SQLite .7.0.1 (3.6.22の代わりに):
SQLite .6.23.1 (3.5.9ではなく):
注:SQLiteバージョンを取得するadbコマンドは、エミュレーターおよびsqlite3が使用可能なデバイスでのみ機能します。 https://stackoverflow.com/a/3645800/444761
他のデバイスについては、 Juri's answer をご覧ください。
Android Issue Trackerに Issue#58909 を追加しました。サポートしたい場合は、これにスターを付けてください。
注:すべてのAndroidバージョンで同じバージョンのSQLiteをアプリで使用する場合は、 このサードパーティのSQLiteサポートライブラリ の使用を検討してください。
ドキュメントには参照番号として3.4.0が記載されていますが、次のsqlを実行すると、インストールされているSQliteの数がはるかに多いことがわかります。
Cursor cursor = SQLiteDatabase.openOrCreateDatabase(":memory:", null).rawQuery("select sqlite_version() AS sqlite_version", null);
String sqliteVersion = "";
while(cursor.moveToNext()){
sqliteVersion += cursor.getString(0);
}
これは、sqliteバージョンを取得するための簡単でダーティーなコードの一部です。たとえば、Android 2.1のHTC Heroでは、.5.9と表示されます。
Android 2.2を搭載したNexus Oneでは、.6.22が表示されます。
$ adb Shell
$ sqlite3 --version
sqlite3 --version
3.5.9
ADP1 1.6および2.1エミュレータでも同じです。