我找不到Android将数据库版本存储在SQLite数据库文件中的位置。数据库版本到底存储在哪里?
Answers:
您可以使用阅读版本android.database.sqlite.SQLiteDatabase.getVersion()
。
在内部,此方法执行SQL语句“ PRAGMA user_version
”。我从Android源代码中得到的。
在数据库文件中,版本存储在数据库文件的数据库头中“用户cookie”字段中的字节偏移量60处。
如果有人正在寻找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();
}