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

时间:2010-09-14 09:53:19

标签: android database android-sqlite

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

2 个答案:

答案 0 :(得分:185)

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

在内部,此方法执行SQL语句“PRAGMA user_version”。我从Android source code获得了这个。

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

答案 1 :(得分: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();
}