web-dev-qa-db-ja.com

Androidで使用されているSQLiteのバージョンは?

Androidで使用されているSQLiteのバージョンは何ですか?

理由:スキーマの移行を処理する方法を考えています。新しいSQLiteバージョンは、「ALTER TABLE」SQLコマンドをサポートしています。これにより、データのコピー、テーブルの削除、テーブルの再作成、およびデータの再挿入が不要になります。

260
Eno

2016年10月更新:これは、この回答の主なポイントを含む更新された公式ドキュメントへのリンクです: Android.database.sqliteパッケージ-level javadoc

エミュレーターの使用(adb Shell sqlite3 --version):

更新:申し訳ありませんが、古い(SDK 18以前の)パッケージレベルのAPI diffは動作を停止しました: https://issuetracker.google.com/issues/37048579

SQLite .22.

  • 29 -9。+-Q(SDK Managerのリビジョン5)
  • 28 -9.0-P

SQLite .19.4 (何らかの理由でsqliteリリースノートに3.19.4は存在しないため、代わりにバージョン管理チェックインへのリンク):

  • 27 -8.1.0-O MR1

SQLite .18.2

  • 26-8.0.0-O(注:Oベータバージョンが使用されました .18.

SQLite .9.2

  • 25-7.1.1-N MR1
  • 24 -7.0-N(注:プレビューは同じバージョンを使用しました)

SQLite .8.10.2

  • 23-6.0-M(注:Mプレビュー1(SDKレベル22)使用 .8.1

SQLite .8.6.1 (何らかの理由で3.8.6.1が存在しないため、SQLiteリンクは3.8.6用です):

  • 22-5.1.1-ロリポップ

SQLite .8.6

  • 21-5.0-ロリポップ

SQLite(不明):

  • 20-4.4W.2-Android Wear(エミュレーターは使用できませんが、3.7.11または3.8.4.3のいずれか)

SQLite .7.11

  • 19-4.4-KitKat
  • 18-4.3-ジェリービーン
  • 17-4.2-ジェリービーン
  • 16 -4.1-ジェリービーン

SQLite .7.4

  • 15-4.0.3-アイスクリームサンドイッチ
  • 14 -4.0-アイスクリームサンドイッチ
  • 13-3.2-ハニカム
  • 12-3.1-ハニカム
  • 11 -3.0-Honeycomb

SQLite .6.22

  • 10-2.3.3-ジンジャーブレッド
  • 9-2.3.1-ジンジャーブレッド
  • 8 -2.2-Froyo

SQLite .5.9

  • 7-2.1-エクレア
  • 4-1.6-ドーナツ
  • -1.5-カップケーキ

注:Android SDKレベルのリンクは、 Android.database.sqlite パッケージが変更された場所を示しています。リンクがない場合(SDKレベル17など)、そのパッケージに変更がないことを示します。

注:ここにいくつかの異常があります(決して完全なリストではありません):

SQLite .7.1 (3.7.11の代わりに):

  • LG Optimus L70 MS323 LGMS323 | KOT49I.MS32310b(19-4.4-KitKat)
  • LG Optimus G E975 LG-E975 | JZO54K(16-4.1-ジェリービーン)
  • LG G2 D802 LG-D802 | JDQ39B(17-4.2-ジェリービーン)

SQLite .7.6. (3.6.22の代わりに):

  • LG Optimus Sol E730/myTouch E739/myTouch Q C800(10-2.3.3-Gingerbread、GRJ22)
  • LG Optimus Vu F100S/F100L(10-2.3.3-ジンジャーブレッド、RK39F)
  • LG Optimus LTE TAG F120K/F120L(10-2.3.3-Gingerbread、GRK39F)
  • LG Optimus LTE L-01D(10-2.3.3-Gingerbread、GRJ90)
  • LG Optimus Net P690b(10-2.3.3-Gingerbread、Gingerbread)
  • LG Prada KU5400(10-2.3.3-ジンジャーブレッド、GWK74)
  • LG Prada P940(10-2.3.3-ジンジャーブレッド、GWK74)
  • LG LU6200/SU640(10-2.3.3-Gingerbread、GRJ90)s

SQLite .7.5 (3.7.4ではなく):

  • Samsung Galaxy Note(15-GT-N7000 | IML74K.ZSLPF)
  • Samsung Galaxy SII(15-SC-02C | IML74K.OMMP4およびGT-I9100 | IML74K.DXLP7)
  • Samsung Galaxy S Duos(15-GT-S7562 | IMM76I.S7562XXBMD6)
  • Samsung Galaxy Tab 7.7(15-GT-P6810 | IMM76D.ZSLP8)

SQLite .7.0.1 (3.6.22の代わりに):

  • LG Esteem MS910(10-2.3.3-Gingerbread、GSE-_v.05)
  • AndroTab(8-2.2-Froyo、1.0.7100.0385)
  • GPLUS MUSN M500(8-2.2-Froyo、FRG83G)

SQLite .6.23.1 (3.5.9ではなく):

  • Motorola Backflip MB300(7-2.1-Eclair、ERD79)
  • Garmin-AsusnüvifoneA10/A50/Garminfone(7-2.1-Eclair、ERE27)

注:SQLiteバージョンを取得するadbコマンドは、エミュレーターおよびsqlite3が使用可能なデバイスでのみ機能します。 https://stackoverflow.com/a/3645800/444761

他のデバイスについては、 Juri's answer をご覧ください。

Android Issue Trackerに Issue#58909 を追加しました。サポートしたい場合は、これにスターを付けてください。

注:すべてのAndroidバージョンで同じバージョンのSQLiteをアプリで使用する場合は、 このサードパーティのSQLiteサポートライブラリ の使用を検討してください。

464
Mark

ドキュメントには参照番号として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が表示されます。

56
Juri
$ adb Shell
$ sqlite3 --version
sqlite3 --version
3.5.9

ADP1 1.6および2.1エミュレータでも同じです。

26
yanchenko

Andorid APIとサポートされているSQLiteバージョンの簡単な概要。

enter image description here

概要は、Mark Cartersの回答のリンクからです。

5
Petterson