Где Android хранит версию базы данных SQLite?



Я не могу найти, где Android хранит версию базы данных в файле базы данных SQLite. Где именно хранится версия базы данных?

646   2  

2 ответов:

Вы можете прочитать версию с помощью android.database.sqlite.SQLiteDatabase.getVersion().

внутренне этот метод выполняет инструкцию SQL"PRAGMA user_version". Я получил это от исходный код Android.

в файле базы данных версия хранится со смещением 60 байт в заголовок базы данных файла базы данных, в поле 'User 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();
}

Comments

    Ничего не найдено.