Де Android зберігає версію бази даних SQLite?


88

Я не можу знайти, де Android зберігає версію бази даних у файлі бази даних SQLite. Де саме зберігається версія бази даних?

Відповіді:


187

Ви можете прочитати версію за допомогою android.database.sqlite.SQLiteDatabase.getVersion().

Внутрішньо цей метод виконує оператор SQL " PRAGMA user_version". Я отримав це з вихідного коду Android .

У файлі бази даних версія зберігається зі зміщенням байтів 60 у заголовку бази даних файлу бази даних, у полі "cookie користувача".


це було корисно, але моє питання полягає в тому, де ця інформація про версію зберігається у файловій системі (або може бути у файлі бази даних)?
bhups

3
І читати і змінювати його stackoverflow.com/questions/8030779 / ...
Ярослав Mytkalyk

як версія бази даних зберігається у файлі бази даних?
xuehui

@xuehui див. відповідь: байт 60 у файлі бази даних.
Thomas Mueller

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();
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.