0

我在 Eclipse 上创建了一个 android 应用程序,在其中创建了一个数据库(仅用于测试),我必须在最终应用程序中使用该数据库来获取和存储来自应用程序的信息。但最重要的是,我必须能够与他人共享该数据库。我找不到要共享的文件。我对 sql 了解不多,但我认为它们是以 .db 格式存储的,所以我尝试搜索它但找不到该文件。我可以看到条目,但看不到文件。

我还在手机上运行了该应用程序,但仍然找不到数据库文件,而是找到了其他应用程序(例如 whatsapp)的数据库文件。

那么,我的数据库在哪里?

4

2 回答 2

2

您可以在设备的内部存储中找到您创建的数据库:

/data/data/<app-package-name>/databases/<database-name>

您需要成为 root 才能使用文件资源管理器查看该文件。

于 2013-10-07T14:48:37.877 回答
2

无论您使用的是模拟器还是真实设备,您都可以使用DDMSWindow-> open perspective-> DDMS)来导航数据库。

在 DDMS 中,有一个文件资源管理器(如果不可见,窗口-> 显示视图-> 文件资源管理器)。

现在,您可以导航到数据库/data/data/<app-package-name>/databases/<database-name>

现在,要保存文件,请单击文件资源管理器右上角的保存按钮。

更新:

实际上,在插入表格行之前,我看不到数据库。如果您想要一个包含预定义数据的静态表,您可以在创建表时进行插入。例如:- 参考onCreate()方法->

public class DbHelper extends SQLiteOpenHelper {

SQLiteDatabase db;

public DbHelper(Context context) {
    super(context, "pics.db", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table picture(_id INTEGER PRIMARY KEY,pics varchar(20))");
    db.execSQL("insert into picture values(1001,'one.jpg')");
    db.execSQL("insert into picture values(1002,'two.jpg')");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

}
public long insert(ContentValues cv) {
    db = getWritableDatabase();
    long l=db.insert("picture", null, cv);
    db.close();
    return l;

}
public Cursor getAllValues() {
    db=getReadableDatabase();
    Cursor cr=db.query("picture", null, null, null, null, null, "_id");
        db.close();
        return cr;
    }

}
于 2013-10-07T14:57:14.660 回答