Android で使用される SQLite のバージョンは? 質問する

Android で使用される SQLite のバージョンは? 質問する

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

理由: スキーマの移行をどのように処理すればよいか知りたいです。新しいバージョンの SQLite では、「ALTER TABLE」SQL コマンドがサポートされているため、データのコピー、テーブルの削除、テーブルの再作成、データの再挿入を行う必要がなくなります。

ベストアンサー1

この回答の主なポイントが記載されている公式ドキュメントへのリンクは次のとおりです。android.database.sqlite パッケージレベルの javadoc

フレームワークの SQLite バージョンを取得するための Kotlin コード (ヒント: アクティビティにブレークポイントを設定しonCreate()、次のコードを使用しますEvaluate Expression...):

val version = android.database.sqlite.SQLiteDatabase.create(null).use {
    android.database.DatabaseUtils.stringForQuery(it, "SELECT sqlite_version()", null)
};
"Framework (API ${android.os.Build.VERSION.SDK_INT}) SQLite version: $version".also { println(it) }

エミュレータを使用する (実際のデバイス上の SQLite バージョンは少なくとも指定されたバージョンになることに注意してください):

APIレベル* バージョン 名前 SQLite ノート
35 15 3.42.0 開発者プレビュー 1
34 14 あなた 3.39.2 右外部結合と完全外部結合
33 13 T 3.32.2
32 12L SV2 3.32.2
31 12 3.32.2
30 11 R 3.28.0 ウィンドウ関数
29 10 質問 3.22.0
28 9 パイ 3.22.0
27 8.1 オレオ 3.19.4 見る3.19.3そしてバージョン管理のチェックイン3.19.4リンクが存在しないため
26 8.0 オレオ 3.18.2 使用されるOベータバージョン3.18.0
25 7.1.1 ヌガー 3.9.2
24 7.0 ヌガー 3.9.2
23 6.0 マシュマロ 3.8.10.2 M プレビュー 1 (SDK レベル 22) を使用3.8.10
22 5.1.1 ロリポップ 3.8.6.1 見る3.8.6そしてバージョン管理のチェックイン3.8.6.1リンクが存在しないため
21 5.0 ロリポップ 3.8.6
20 4.4W.2 アンドロイドウェア 未知 エミュレータは利用できませんが、おそらく 3.7.11 か 3.8.4.3 のいずれかです
19 4.4 キットカット 3.7.11
18 4.3 ゼリービーン 3.7.11
17 4.2 ゼリービーン 3.7.11
16** 4.1 ゼリービーン 3.7.11
15 4.0.3 アイスクリームサンドイッチ 3.7.4
14** 4.0 アイスクリームサンドイッチ 3.7.4
13 3.2 ハニカム 3.7.4
12 3.1 ハニカム 3.7.4
11** 3.0 ハニカム 3.7.4
10 2.3.3 ジンジャーブレッド 3.6.22
9 2.3.1 ジンジャーブレッド 3.6.22
8** 2.2 フローズンヨーグルト 3.6.22
7 2.1 エクレア 3.5.9
4 1.6 ドーナツ 3.5.9
3** 1.5 カップケーキ 3.5.9

* Android APIレベルのリンクは、android.データベース.sqliteパッケージが変更されました。リンクがない場合 (例: API レベル 17) は、そのパッケージに変更がないことを示します。

** SDKリンクが壊れています。ここ

注: アプリがすべてのAndroidバージョンで同じバージョンのSQLiteを使用する場合は、Requeryの使用を検討してください。サードパーティのSQLiteサポートライブラリまたはSQL暗号(暗号化も必要な場合)。

おすすめ記事