Non riesco a trovare dove Android memorizza la versione del database all'interno del file del database SQLite. Dove viene archiviata esattamente la versione del database?
Risposte:
Puoi leggere la versione usando android.database.sqlite.SQLiteDatabase.getVersion()
.
Internamente, questo metodo esegue l'istruzione SQL " PRAGMA user_version
". L'ho preso dal codice sorgente di Android .
Nel file di database, la versione è memorizzata con offset di byte 60 nell'intestazione del database del file di database, nel campo "cookie utente".
Se qualcuno sta cercando il codice java per leggere la versione dal 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();
}