Я не можу знайти, де Android зберігає версію бази даних у файлі бази даних SQLite. Де саме зберігається версія бази даних?
Відповіді:
Ви можете прочитати версію за допомогою android.database.sqlite.SQLiteDatabase.getVersion()
.
Внутрішньо цей метод виконує оператор SQL " PRAGMA user_version
". Я отримав це з вихідного коду Android .
У файлі бази даних версія зберігається зі зміщенням байтів 60 у заголовку бази даних файлу бази даних, у полі "cookie користувача".
Якщо хтось шукає код 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();
}