90

我无法找到 Android 在 SQLite 数据库文件中存储数据库版本的位置。数据库版本究竟存储在哪里?

4

2 回答 2

191

您可以使用 阅读该版本android.database.sqlite.SQLiteDatabase.getVersion()

在内部,此方法执行 SQL 语句“ PRAGMA user_version”。我是从Android 源代码中得到的。

在数据库文件中,版本存储在数据库文件的数据库头中的字节偏移量 60 处,在“用户 cookie”字段中。

于 2010-09-14T18:52:56.843 回答
10

如果有人正在寻找 java 代码以从文件中读取版本:

private static int getDbVersionFromFile(File file) throws Exception
{
    RandomAccessFile fp = new RandomAccessFile(file,"r");
    fp.seek(60);
    byte[] buff = new byte[4];
    fp.read(buff, 0, 4);
    return ByteBuffer.wrap(buff).getInt();
}
于 2015-08-03T23:59:10.507 回答