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暗号(暗号化も必要な場合)。