如何查看android模拟器的sqlite数据库?

时间:2015-09-26 03:04:54

标签: android intellij-idea android-emulator ionic

我正在使用IntelliJ IDEA上的ionic开发一个应用程序。我已经创建了一个新项目PhoneGap/Cordova App,我也将.apk完美地部署在android模拟器的设备上。但我不知道如何访问模拟器的数据库,看看我是否正确插入我的数据。如何连接到模拟器以访问数据库?

4 个答案:

答案 0 :(得分:2)

转到DDMS - >文件浏览器 - >数据 - >数据 - >你的包裹名称 - >数据库 - >这是你的数据库文件。

拉出那个数据库&在sqlite浏览器或mozilla sqlite插件中打开它。

答案 1 :(得分:0)

通常,数据库是应用程序的一部分,您将其作为资产文件夹发送。 部署应用程序时,将在数据文件夹中创建应用程序包名称的文件夹,您也可以在其中查看数据库文件。 当应用程序修改数据库,并且您想要查看当前状态,将数据库复制到本地文件夹并使用Firefox浏览器打开它时,您可以看到该表及其数据。

答案 2 :(得分:0)

获取对应用程序数据库文件的访问权限的唯一方法是拥有一个有根设备。 android系统故意保护这些文件不被访问。

有一些关于如何在Stack Overflow上生成Android模拟器的帖子,如下所示:How to get root access on Android emulator?

如果您不想这样做,可以使用实用程序类将sqlite数据库导出到本地文件系统,然后在所述设备或计算机上使用sqlite应用程序查看它。

public String backupDatabase(Context context) throws IOException {
    File dbFile = context.getDatabasePath("YOUR_DATABASE_NAME.db");
    FileInputStream fis = new FileInputStream(dbFile);

    String outFileName = String.format("%s/%s.db", Environment.getExternalStorageDirectory(), "DATABASE_FILE_NAME");

    // Open the empty db as the output stream
    OutputStream output = new FileOutputStream(outFileName);

    byte[] buffer = new byte[1024];
    int length;
    while ((length = fis.read(buffer)) > 0) {
        output.write(buffer, 0, length);
    }

    // Close the streams
    output.flush();
    output.close();
    fis.close();

    return outFileName;
}

答案 3 :(得分:0)

我找到了从设备本身查看和管理数据库的最佳工具(SQLite编辑器https://goo.gl/ALzc8A)。非常有用!!

PD:我在Genymotion上安装了该应用程序,这比默认的SDK模拟器要好得多。