Di mana Android menyimpan versi database SQLite?


88

Saya tidak dapat menemukan di mana Android menyimpan versi database dalam file database SQLite. Di mana tepatnya versi database disimpan?

Jawaban:


187

Anda dapat membaca versi menggunakan android.database.sqlite.SQLiteDatabase.getVersion().

Secara internal, metode ini menjalankan pernyataan SQL " PRAGMA user_version". Saya mendapatkannya dari kode sumber Android .

Di file database, versi disimpan pada byte offset 60 di header database file database, di kolom 'user cookie'.


itu berguna, tetapi pertanyaan saya adalah di mana info versi ini disimpan di sistem file (atau mungkin dalam file database)?
bhups

3
Dan untuk membaca dan memodifikasinya stackoverflow.com/questions/8030779/…
Yaroslav Mytkalyk

bagaimana versi database bertahan ke dalam file database?
xuehui

@xuehui lihat jawabannya: byte 60 di file database.
Thomas Mueller

8

Jika seseorang mencari kode java untuk membaca versi dari file:

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();
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.