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

bhu*_*ups 88 database android android-sqlite

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

Tho*_*ler 187

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

在内部,此方法执行SQL语句" PRAGMA user_version".我从Android源代码中得到了这个.

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

  • 它存储在数据库头中(我更新了我的答案). (9认同)
  • 并阅读和修改它http://stackoverflow.com/questions/8030779/change-sqlite-database-version-number (3认同)

小智 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();
}
Run Code Online (Sandbox Code Playgroud)