Android中使用的SQLite版本是什麼?Android中使用的SQLite版本?
原因:我想知道如何處理模式遷移。較新的SQLite版本支持「ALTER TABLE」SQL命令,這將使我不必複製數據,刪除表,重新創建表並重新插入數據。
Android中使用的SQLite版本是什麼?Android中使用的SQLite版本?
原因:我想知道如何處理模式遷移。較新的SQLite版本支持「ALTER TABLE」SQL命令,這將使我不必複製數據,刪除表,重新創建表並重新插入數據。
$ adb shell
$ sqlite3 --version
sqlite3 --version
3.5.9
相同的ADP1 1.6 & 2.1模擬器。
它給了我:sqlite3:權限被拒絕 – Yar 2011-08-19 12:53:58
工作對我來說很好。我打開cmd提示並導航到adb.exe所在的android文件夾。然後我輸入 – Pavenhimself 2013-09-17 08:00:39
這兩個命令,在Nexus 4 KitKat上輸入「/ system/bin/sh:sqlite3:not found」。 – 2014-02-24 09:20:54
儘管文檔提供了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上,我得到:3.5.9。
在我的Nexus One與Android 2.2,我甚至得到3.6.22。
UPDATE 2016年10月:這裏是更新的官方文檔,其中包括在這個答案的要點鏈接:android.database.sqlite package-level javadoc
使用仿真器(ADB外殼的sqlite3 --version):
UPDATE :對不起,老年(SDK 18及更早版本)封裝級API的diff已經停止工作:https://issuetracker.google.com/issues/37048579
SQLite的3.19.4(出於某種原因3.19.4不sqlite的發行說明存在,所以鏈接到版本控制檢查插件,而不是! ) :
SQLite的3.18.2:
SQLite的3.9.2:
SQLite的3.8.10.2:
SQLite的3.8.6.1(SQLite的鏈路爲3.8.6因爲3.8.6.1不存在FO r某種原因):
SQLite的3.8.6:
SQLite的(未知):
的SQLite 3.7.11:
SQLite 3.7.4:
SQLite的3.6.22:
的SQLite 3.5.9:
注意:Android SDK級別鏈接顯示android.database.sqlite軟件包已更改的位置。如果沒有鏈接(例如,SDK級別17),則表示沒有更改該包。
注:這裏有一些異常(絕不是詳盡的清單):
SQLite的(而不是3.7.11)3.7.13:
的SQLite 3.7.6.3的(而不是3.6.22):
SQLite的3.7.5(而不是3.7.4):
的SQLite 3.7.0.1的(而不是3.6.22):
的SQLite 3.6.23.1(而不是3.5.9):
注:ADB命令GE t SQLite版本僅適用於仿真器以及可用於sqlite3的設備:https://stackoverflow.com/a/3645800/444761
對於其他設備,請參閱Juri's answer。
我已將一個Issue #58909添加到Android問題跟蹤器。如果您想支持,請爲此加分。
注意:如果您希望您的應用在所有Android版本中使用相同版本的SQLite,請考慮使用this 3rd party SQLite support library。
/system/bin/sh:sqlite3:未找到 這是根植Android 4.0.2設備 – 2012-05-21 12:35:47
感謝馬克。我有點困惑。雖然開發如何確保我的sqlite版本在所有設備上保持一致?我的意思是'targetSdkVersion'或'buildTarget'對此有影響嗎? – 2014-10-21 04:26:46
@MuhammadBabar您需要使用Juri的答案來獲取用戶設備上安裝的SQLite的實際版本。 targetSdkVerson和buildTarget沒有區別。 – 2014-10-21 05:16:14
你仍然可能想copy-drop-recreate-reinsert; SQLite的ALTER TABLE功能不是很全面。 – 2010-04-28 22:42:09
請選擇正確的答案,3.4.0不正確 – Noah 2011-01-19 01:24:29
這不取決於您所運行的Android版本嗎?我的老myTouch上運行1.6版本的確可能會有SQLite 3.4.x,或者我的新版G2運行2.2版本的版本可能會更高。真正的答案是檢查你的手機。 – Eno 2011-01-21 19:06:17