对于开发,有时我们需要更快的编程,即我们程序的SQLite数据库状态。但我只能在模拟器上提取数据库,而不是移动数据库。
然后我的确切问题是¿有没有办法看到android sqlite db或者提取它的方法?
如果对这个问题没有一个好的答案。当您需要知道表的db状态时,如何处理该编程问题?
答案 0 :(得分:4)
您可以使用
adb shell
获取设备的root shell,然后直接在DB上使用您喜欢的任何内容。导出它,运行脚本等等。
您可以查看此链接了解详情:
developer.android.com/studio/command-line/sqlite3.html
Abount SQLite命令: http://www.sqlite.org/sqlite.html
答案 1 :(得分:3)
您可以通过vbence
提到的shell来执行此操作。另一种方法是以编程方式将数据库文件复制到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... */
}
}
}
答案 2 :(得分:-1)
为了探索SQLite数据库,您可以使用名为SQLite Manager的mozilla firefox插件。运行应用程序后,使用文件资源管理器将数据库拉到您的系统,然后打开firefox - >工具 - > SQLite Manager。将出现一个窗口,可以打开数据库,单击该数据库并指向您已拉出数据库的路径。打开该DB,您可以看到创建的表格和输入的值。您还可以选择添加,编辑,删除和更新值。