我怎么能看到SQLite数据库(没有模拟器)?

时间:2011-10-03 08:42:12

标签: android database sqlite

对于开发,有时我们需要更快的编程,即我们程序的SQLite数据库状态。但我只能在模拟器上提取数据库,而不是移动数据库。

然后我的确切问题是¿有没有办法看到android sqlite db或者提取它的方法?

如果对这个问题没有一个好的答案。当您需要知道表的db状态时,如何处理该编程问题?

3 个答案:

答案 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,您可以看到创建的表格和输入的值。您还可以选择添加,编辑,删除和更新值。