Android 中使用的 SQLite 版本? [英] Version of SQLite used in Android?
问题描述
Android 中使用的 SQLite 版本是多少?
What is the version of SQLite used in Android?
原因:我想知道如何处理架构迁移.较新的 SQLite 版本支持ALTER TABLE"SQL 命令,这样我就不必复制数据、删除表、重新创建表和重新插入数据.
Reason: I'm wondering how to handle schema migrations. The newer SQLite versions support an "ALTER TABLE" SQL command which would save me having to copy data, drop the table, recreate table and re-insert data.
推荐答案
以下是官方文档的链接,其中包含此答案中的要点:android.database.sqlite 包级 javadoc
Here is a link to the official docs which include the main points in this answer: android.database.sqlite package-level javadoc
Kotlin 代码获取框架 SQLite 版本:
Kotlin code to get framework SQLite version:
val version = android.database.sqlite.SQLiteDatabase.create(null).use {
DatabaseUtils.stringForQuery(it, "SELECT sqlite_version()", null)
}
println("Framework (API ${Build.VERSION.SDK_INT}) SQLite version: $version")
使用模拟器(注意,实际设备上的 SQLite 版本将至少指定):
Using the emulators (note, SQLite version on actual devices will be at least that specified):
API 级别* | 版本 | 名称 | SQLite | 注意事项 |
---|---|---|---|---|
31 | 12 | S | 3.32.2 | |
30 | 11 | R | 3.28.0 | 窗口函数 |
29 | 10 | Q | 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 | Android Wear | 未知 | 没有可用的模拟器,但可能是 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 |
API level* | Version | Name | SQLite | Notes |
---|---|---|---|---|
31 | 12 | S | 3.32.2 | |
30 | 11 | R | 3.28.0 | window functions |
29 | 10 | Q | 3.22.0 | |
28 | 9 | Pie | 3.22.0 | |
27 | 8.1 | Oreo | 3.19.4 | see 3.19.3 and version control check-ins because 3.19.4 link does not exist |
26 | 8.0 | Oreo | 3.18.2 | O beta versions used 3.18.0 |
25 | 7.1.1 | Nougat | 3.9.2 | |
24 | 7.0 | Nougat | 3.9.2 | |
23 | 6.0 | Marshmallow | 3.8.10.2 | M Preview 1 (SDK level 22) used 3.8.10 |
22 | 5.1.1 | Lollipop | 3.8.6.1 | see 3.8.6 and version control check-ins because 3.8.6.1 link does not exist |
21 | 5.0 | Lollipop | 3.8.6 | |
20 | 4.4W.2 | Android Wear | unknown | no emulator available, but probably either 3.7.11 or 3.8.4.3 |
19 | 4.4 | KitKat | 3.7.11 | |
18 | 4.3 | Jelly Bean | 3.7.11 | |
17 | 4.2 | Jelly Bean | 3.7.11 | |
16** | 4.1 | Jelly Bean | 3.7.11 | |
15 | 4.0.3 | Ice Cream Sandwich | 3.7.4 | |
14** | 4.0 | Ice Cream Sandwich | 3.7.4 | |
13 | 3.2 | Honeycomb | 3.7.4 | |
12 | 3.1 | Honeycomb | 3.7.4 | |
11** | 3.0 | Honeycomb | 3.7.4 | |
10 | 2.3.3 | Gingerbread | 3.6.22 | |
9 | 2.3.1 | Gingerbread | 3.6.22 | |
8** | 2.2 | Froyo | 3.6.22 | |
7 | 2.1 | Eclair | 3.5.9 | |
4 | 1.6 | Donut | 3.5.9 | |
3** | 1.5 | Cupcake | 3.5.9 |
* Android API 级别链接显示 android.database.sqlite 包已更改.如果没有链接(例如 API 级别 17),则表示该包没有更改.
* Android API level links show where the android.database.sqlite package has changed. Where there is no link (e.g. API level 17), indicates no changes to that package.
** 损坏的 SDK 链接,请参阅此处
** Broken SDK link, see here
注意:如果您希望您的应用在所有 Android 版本中使用相同版本的 SQLite,请考虑使用 Requery 的 第 3 方 SQLite 支持库 或 SQLCipher(如果您还需要加密).
Note: if you want your app to use the same version of SQLite across all Android versions, consider using Requery's 3rd party SQLite support library or SQLCipher (if you also want encryption).
这篇关于Android 中使用的 SQLite 版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!