Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何查看SQLite数据库(无模拟器)?_Android_Database_Sqlite - Fatal编程技术网

Android 如何查看SQLite数据库(无模拟器)?

Android 如何查看SQLite数据库(无模拟器)?,android,database,sqlite,Android,Database,Sqlite,对于开发,有时我们需要更快的编程,我们的程序的SQLite数据库状态。但我只能在emulator上提取数据库,而不是移动数据库 那么我的问题是,有没有一种方法可以查看android sqlite db或提取它 如果这个问题没有好的答案。当您需要了解表的db状态时,如何处理编程问题?您可以使用 adb shell 要获得设备的根shell,请直接在DB上使用您喜欢的任何东西。导出、运行脚本等 有关详细信息,请查看此链接: 关于SQLite命令: 您可以从shell中执行上述操作。另一种方法是通

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

那么我的问题是,有没有一种方法可以查看android sqlite db或提取它

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

您可以使用

adb shell
要获得设备的根shell,请直接在DB上使用您喜欢的任何东西。导出、运行脚本等

有关详细信息,请查看此链接:

关于SQLite命令:

您可以从shell中执行上述操作。另一种方法是通过编程将数据库文件复制到sd卡。在
onStop()中调用此函数。


为了探索SQLite数据库,您可以使用名为的mozilla firefox插件。运行应用程序后,使用文件资源管理器将数据库拉入系统,并打开firefox-->工具-->SQLite管理器。将出现一个窗口,在该窗口上有一个打开数据库的选项,单击该选项并指向您提取数据库的路径。打开该数据库,您可以看到创建的表和输入的值。此外,您还可以选择添加、编辑、删除和更新这些值。

Root您的设备。。。。或者管理nexsus 1,或者始终最好先在emu中尝试,检查db是否正确,然后在设备上测试。对不起,我认为使用emu不是快速完成任务的方式。您只需要浏览创建的数据库吗?@A.Quiroga我发布了一个答案,请看一看。这可能有助于youThx获得您的答案,您能否告诉我提取或管理sqlite db的确切方法,以便为您打勾?@A.Quiroga不客气。我在我的答案中添加了必要的链接。sqlite3链接被移动到这里@vovahost请随意编辑答案,您将因此获得积分;)
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... */
        }
    }
}