對於開發,有時我們需要更快的編程,即我們程序的SQLite數據庫狀態。但是我只能提取數據庫,如果它在模擬器上,而不是移動的。我怎樣才能看到SQLite數據庫(無模擬器)?
那麼我確切的問題是有沒有辦法看到android的sqlite數據庫或一種方式來提取它?
如果對這個問題沒有很好的答案。當你需要知道表的數據庫狀態時,如何處理這些編程問題?
對於開發,有時我們需要更快的編程,即我們程序的SQLite數據庫狀態。但是我只能提取數據庫,如果它在模擬器上,而不是移動的。我怎樣才能看到SQLite數據庫(無模擬器)?
那麼我確切的問題是有沒有辦法看到android的sqlite數據庫或一種方式來提取它?
如果對這個問題沒有很好的答案。當你需要知道表的數據庫狀態時,如何處理這些編程問題?
您可以使用
adb shell
來獲得設備的一個root shell,然後使用任何你喜歡直接在數據庫中。導出,運行腳本等等等等
你可以看看這個鏈接的詳細信息:
developer.android.com/studio/command-line/sqlite3.html
Abount SQLite的命令: http://www.sqlite.org/sqlite.html
Thx爲你的答案,你能給我的方式來提取或管理sqlite數據庫爲了打勾你? –
@ A.Quiroga不客氣。我添加了必要的鏈接到我的答案。 – vbence
+1和一個易用性友好的解決方案 –
您可以從外殼提到vbence
做到這一點。另一種方法是以編程方式將數據庫文件複製到SD卡。稱這種現象onStop()
:
File source = new File("data/data/com.ACME/databases/" + DATABASE_NAME);
File dest = new File(Environment.getExternalStorageDirectory() + "/" + DATABASE_NAME + ".db");
public static void copyFile(File sourceFile, File destFile) {
FileChannel source = null;
FileChannel destination = null;
try {
if (!destFile.exists()) {
destFile.createNewFile();
}
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
} catch (Exception e) {
/* handle exception... */
} finally {
try {
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
} catch (Exception e) {
/* handle exception... */
}
}
}
+1爲有用的答案。 –
對於探索,你可以使用Mozilla Firefox的插件SQLite數據庫命名SQLite Manager。運行應用程序後,使用文件瀏覽器將數據庫拖到您的系統,然後打開firefox - > Tools - > SQLite Manager。一個窗口將會出現,並且有一個選項可以打開數據庫,點擊它並指向你已經拉出數據庫的路徑。打開該數據庫,您可以看到創建的表格和您輸入的值。您也可以選擇添加,編輯,刪除和更新值。
Android上的SQLite –
根您的設備....或管理nexsus 1或爲此總是更好地嘗試在em首先檢查數據庫是否正確,然後在設備上測試 – ingsaurabh
對不起,但使用em不是我想做的事它更快 –
你只需要探索創建的數據庫? – Basil