Saya tidak dapat menemukan di mana Android menyimpan versi database dalam file database SQLite. Di mana tepatnya versi database disimpan?
Jawaban:
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'.
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();
}