为什么我的数据库文件的大小总是通过 Room 库构建的 4KiB?

Why the size of my database file is always 4KiB build through the Room library?

我通过这个guide通过Room建立数据库。这是我的构建代码:

INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                        NodesRoomDatabase.class, "nodes_database.db")
                        .build();

然后我通过DAO插入信息:

public void insert(NodesData nodesData) {
    new InsertAsyncTask(nodesDao).execute(nodesData);
}

private static class InsertAsyncTask extends AsyncTask<NodesData, Void, Void> {
    private NodesDao asyncDao;

    public InsertAsyncTask(NodesDao asyncDao) {
        this.asyncDao = asyncDao;
    }

    @Override
    protected Void doInBackground(NodesData... nodesData) {
        asyncDao.insert(nodesData[0]);
        return null;
    }
}

建立数据库并插入内容后。我可以在 data/data/<package name>/databases/ 下找到 nodes_database.dbnodes_database.db-shmnodes_database.db-wal,但 nodes_database.db 的大小始终只有 4 KiB,并且 table 是空的。但是我可以通过Stetho调试查询到数据库的所有内容。

The file size image

设备:一加5,Android奥利奥8.1

那么,我的代码有什么问题?

SQLite 就是这样工作的。如果您想在 Android 之外查询您的数据库,请确保同时导出 .db 和 .db-wal 文件。