Android在哪里存储SQLite的数据库版本?


88

我找不到Android将数据库版本存储在SQLite数据库文件中的位置。数据库版本到底存储在哪里?

Answers:


187

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

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

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


那很有用,但是我的问题是此版本信息在哪里存储在文件系统上(或可能在数据库文件中)?
bhups


数据库版本如何持久保存到数据库文件中?
xuehui

@xuehui请参见答案:数据库文件中的字节60。
Thomas Mueller

8

如果有人正在寻找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();
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.