我无法找到Android在SQLite数据库文件中存储数据库版本的位置。数据库版本到底存储在哪里?
答案 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();
}