Где Android хранит версию базы данных SQLite? - PullRequest
87 голосов
/ 14 сентября 2010

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

Ответы [ 2 ]

185 голосов
/ 14 сентября 2010

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

Внутри этого метода выполняется оператор SQL "PRAGMA user_version". Я получил это из исходного кода Android .

В файле базы данных версия сохраняется по смещению 60 байтов в заголовке базы данных файла базы данных, в поле 'cookie пользователя'.

8 голосов
/ 04 августа 2015

Если кто-то ищет код 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();
}
...