如何查看android emulator的sqlite数据库?
我正在用IntelliJ IDEA上的如何查看android emulator的sqlite数据库?,android,intellij-idea,android-emulator,ionic,Android,Intellij Idea,Android Emulator,Ionic,我正在用IntelliJ IDEA上的ionic开发一个应用程序。我已经创建了一个新项目PhoneGap/Cordova App,并且我将.apk完美地部署在android emulator的设备上。但我不知道如何访问emulator的数据库,以查看是否正确插入了数据。如何连接到模拟器以访问数据库?通常,数据库是应用程序的一部分,您可以将其作为资产文件夹发送。 部署应用程序时,将在data folder中创建一个应用程序包名称的文件夹,您也可以在其中查看数据库文件。 当应用程序修改数据库时,如果
ionic
开发一个应用程序。我已经创建了一个新项目PhoneGap/Cordova App
,并且我将.apk
完美地部署在android emulator的设备上。但我不知道如何访问emulator的数据库,以查看是否正确插入了数据。如何连接到模拟器以访问数据库?通常,数据库是应用程序的一部分,您可以将其作为资产文件夹发送。
部署应用程序时,将在data folder中创建一个应用程序包名称的文件夹,您也可以在其中查看数据库文件。
当应用程序修改数据库时,如果您想查看当前状态,请将数据库复制到本地文件夹并使用Firefox浏览器打开,您可以看到表及其数据。访问应用程序数据库文件的唯一方法是使用根设备。android系统故意保护这些文件不被访问 有一些帖子介绍了如何在堆栈溢出上为android仿真器加根,如下所示: 如果不想这样做,可以使用实用程序类将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;
}
转到DDMS->文件管理器->数据->数据->包名->数据库->这里是数据库文件
拉取数据库并在sqlite浏览器或mozilla sqlite插件中打开它。我找到了从设备本身查看和管理数据库的最佳工具(sqlite编辑器)。非常有用
PD:我在Genymotion上安装了该应用程序,这比默认的SDK模拟器要好得多。但我需要从设备本身而不是本地查看和管理数据库,因为更改不会更新。