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

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

28760 次浏览

You can read the version using android.database.sqlite.SQLiteDatabase.getVersion().

Internally, this method executes the SQL statement "PRAGMA user_version". I got that from the Android source code.

In the database file, the version is stored at byte offset 60 in the database header of the database file, in the field 'user cookie'.

If someone is looking for the java code to read version from file:

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();
}