Я не могу найти, где Android хранит версию базы данных в файле базы данных SQLite. Где именно хранится версия базы данных?
88
Я не могу найти, где 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(); }
источник