我正在Mac OS上的Android Studio 2.3中开发一个应用程序(使用SQLite),并希望查看SQLite数据库,但似乎无法找到sqlite文件。 AVM文件在哪里,特别是sqlite文件?
我找到了AVD文件夹
/Users/<my name>/.android/avd/Pixel_XL_API_26.avd
但无法找到用户生成的数据。有什么建议吗?
答案 0 :(得分:1)
您始终可以包含查找有关数据库的信息的方法。
例如,您可以查询 sqlite_master 表格,例如: -
Cursor csr = db.query("sqlite_master",null,null,null,null,null,null);
等同于: -
SELECT * FROM sqlite_master
这些PRAGMA语句允许您查询/更改内部PRAGMA Statements。
注意使用rawQuery
获取光标信息,但使用execSQL
进行更改,例如分别设置和获取user_version(数据库版本): -
db.execSQL("PRAGMA user_version=" + Integer.toString(version));
Cursor csr = db.rawQuery("PRAGMA user_version",null);
您还可以查看数据,输出到日志,在表中包含基于(表名将更改为相应的表名)的内容: -
Cursor csr = db.query("tablename",null,null,null,null,null,null);
String logdata;
while (csr.moveToNext()) {
Log.d("DBINFO","Row " + csr.getPosition());
logdata = "";
for (int i =0; i < csr.getColumnCount(); i++) {
String val;
try {
val = csr.getString(i);
}
catch (Exception e) {
val = "unobtainable";
}
logdata = logdata + "\t\nColumn Name=" +
csr.getColumnName(i) +
" Value=" + val;
}
Log.d("DBINFO",logdata);
}
csr.close();
请注意!这仅使用getString
,因此无法正确表示某些值,例如double和float,如果是BLOB,则该值将无法获得。