Où Android stocke-t-il la version de la base de données de SQLite?


88

Je ne parviens pas à trouver où Android stocke la version de la base de données dans le fichier de base de données SQLite. Où exactement la version de la base de données est-elle stockée?

Réponses:


187

Vous pouvez lire la version en utilisant android.database.sqlite.SQLiteDatabase.getVersion().

En interne, cette méthode exécute l'instruction SQL " PRAGMA user_version". Je l'ai obtenu à partir du code source Android .

Dans le fichier de base de données, la version est stockée au décalage d'octet 60 dans l'en- tête de base de données du fichier de base de données, dans le champ «cookie utilisateur».


c'était utile, mais ma question est de savoir où ces informations de version sont-elles stockées sur le système de fichiers (ou peuvent-elles être dans un fichier de base de données)?
bhups


comment la version de la base de données est-elle conservée dans le fichier de base de données?
xuehui

@xuehui voyez la réponse: l'octet 60 dans le fichier de base de données.
Thomas Mueller

8

Si quelqu'un cherche le code java pour lire la version du fichier:

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();
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.