Android中使用的SQLite版本是什么?原因:我想知道如何处理模式迁移。较新的SQLite版本支持“ALTER TABLE”SQL命令,这将使我不必复制数据,删除表,重新创建表并重新插入数据。
5n0oy7gb1#
以下是官方文档的链接,其中包括本答案中的要点:android.database.sqlite package-level javadoc获取框架SQLite版本的Kotlin代码(提示:只需在Activity onCreate()中插入一个断点,并在Evaluate Expression...中使用以下代码):
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 level *|版本|姓名|SQLite|注意事项|| --------------|--------------|--------------|--------------|--------------|| 三十四|十四岁|U|3.39.2|Android 14 Developer Preview 2. RIGHT和FULL OUTER JOIN|| 33|十三|T|3.32.2||| 三十二|12L|Sv2|3.32.2||| 三十一|十二岁|S|3.32.2||| 30|十一|R|3.28.0|window functions|| 29|10个|Q|3.22.0||| 28|九|派|3.22.0||| 27|8.1|奥利奥|3.19.4|参见3.19.3和version control check-ins,因为3.19.4链接不存在|| 二十六|8.0|奥利奥|3.18.2|O使用的测试版3.18.0|| 二十五|7.1.1|牛轧糖|3.9.2||| 24|7.0|牛轧糖|3.9.2||| 二十三|6.0|棉花糖|3.8.10.2|M Preview 1(SDK级别22)使用3.8.10|| 二十二|5.1.1|棒棒糖|3.8.6.1|参见3.8.6和version control check-ins,因为3.8.6.1链接不存在|| 二十一|5.0|棒棒糖|3.8.6||| 二十|4.4W.2|Android Wear|未知的|没有可用的模拟器,但可能是3.7.11或3.8.4.3|| 十九岁|4.4|奇巧|3.7.11||| 十八岁|4.3|果冻豆|3.7.11||| 十七岁|4.2|果冻豆|3.7.11||| 16|4.1|果冻豆|3.7.11||| 十五岁|4.0.3|冰淇淋三明治|3.7.4||| 14|4.0|冰淇淋三明治|3.7.4||| 十三|3.2|Hive|3.7.4||| 十二岁|3.1|Hive|3.7.4||| 11|3.0|Hive|3.7.4||| 10个|2.3.3|姜饼|3.6.22||| 九|2.3.1|姜饼|3.6.22||| 8|2.2|弗罗约|3.6.22||| 七|2.1|埃克莱尔|3.5.9||| 四|1.6|甜甜圈|3.5.9||| 3|一点五|纸杯蛋糕|3.5.9||
注意:如果您希望应用在所有Android版本中使用相同版本的SQLite,请考虑使用Requery的3rd party SQLite support library或SQLCipher(如果您还希望加密)。
byqmnocz2#
尽管文档给出了3.4.0作为参考编号,但如果执行以下sql,您会注意到安装的SQlite数量要高得多:
Cursor cursor = SQLiteDatabase.create(null).rawQuery("select sqlite_version() AS sqlite_version", null); String sqliteVersion = ""; while(cursor.moveToNext()){ sqliteVersion += cursor.getString(0); }
这只是一段快速,肮脏的代码来检索sqlite版本。例如,在Android 2.1的HTC Hero上,我得到:3.5.9。在我的Nexus One与Android 2.2,我甚至得到3.6.22。
piah890a3#
$ adb shell sqlite3 --version 3.5.9
ADP1 1.6和2.1仿真器上也是如此。
oyt4ldly4#
Andorid API和支持的SQLite版本的简短概述。
概述来自Mark Carter回答中的链接。
rdlzhqv95#
在房间中,您可以查询SELECT sqlite_version()RG
5条答案
按热度按时间5n0oy7gb1#
以下是官方文档的链接,其中包括本答案中的要点:android.database.sqlite package-level javadoc
获取框架SQLite版本的Kotlin代码(提示:只需在Activity
onCreate()
中插入一个断点,并在Evaluate Expression...
中使用以下代码):使用模拟器(注意,实际设备上的SQLite版本将*至少为指定的***):
| API level *|版本|姓名|SQLite|注意事项|
| --------------|--------------|--------------|--------------|--------------|
| 三十四|十四岁|U|3.39.2|Android 14 Developer Preview 2. RIGHT和FULL OUTER JOIN|
| 33|十三|T|3.32.2||
| 三十二|12L|Sv2|3.32.2||
| 三十一|十二岁|S|3.32.2||
| 30|十一|R|3.28.0|window functions|
| 29|10个|Q|3.22.0||
| 28|九|派|3.22.0||
| 27|8.1|奥利奥|3.19.4|参见3.19.3和version control check-ins,因为3.19.4链接不存在|
| 二十六|8.0|奥利奥|3.18.2|O使用的测试版3.18.0|
| 二十五|7.1.1|牛轧糖|3.9.2||
| 24|7.0|牛轧糖|3.9.2||
| 二十三|6.0|棉花糖|3.8.10.2|M Preview 1(SDK级别22)使用3.8.10|
| 二十二|5.1.1|棒棒糖|3.8.6.1|参见3.8.6和version control check-ins,因为3.8.6.1链接不存在|
| 二十一|5.0|棒棒糖|3.8.6||
| 二十|4.4W.2|Android Wear|未知的|没有可用的模拟器,但可能是3.7.11或3.8.4.3|
| 十九岁|4.4|奇巧|3.7.11||
| 十八岁|4.3|果冻豆|3.7.11||
| 十七岁|4.2|果冻豆|3.7.11||
| 16|4.1|果冻豆|3.7.11||
| 十五岁|4.0.3|冰淇淋三明治|3.7.4||
| 14|4.0|冰淇淋三明治|3.7.4||
| 十三|3.2|Hive|3.7.4||
| 十二岁|3.1|Hive|3.7.4||
| 11|3.0|Hive|3.7.4||
| 10个|2.3.3|姜饼|3.6.22||
| 九|2.3.1|姜饼|3.6.22||
| 8|2.2|弗罗约|3.6.22||
| 七|2.1|埃克莱尔|3.5.9||
| 四|1.6|甜甜圈|3.5.9||
| 3|一点五|纸杯蛋糕|3.5.9||
**SDK链接断开,参见here
注意:如果您希望应用在所有Android版本中使用相同版本的SQLite,请考虑使用Requery的3rd party SQLite support library或SQLCipher(如果您还希望加密)。
byqmnocz2#
尽管文档给出了3.4.0作为参考编号,但如果执行以下sql,您会注意到安装的SQlite数量要高得多:
这只是一段快速,肮脏的代码来检索sqlite版本。例如,在Android 2.1的HTC Hero上,我得到:3.5.9。
在我的Nexus One与Android 2.2,我甚至得到3.6.22。
piah890a3#
ADP1 1.6和2.1仿真器上也是如此。
oyt4ldly4#
Andorid API和支持的SQLite版本的简短概述。
概述来自Mark Carter回答中的链接。
rdlzhqv95#
在房间中,您可以查询
SELECT sqlite_version()
RG