90

AndroidがSQLiteデータベースファイル内のどこにデータベースバージョンを保存しているかがわかりません。データベースのバージョンは正確にどこに保存されていますか?

4

2 に答える 2

191

を使用してバージョンを読み取ることができますandroid.database.sqlite.SQLiteDatabase.getVersion()

内部的には、このメソッドはSQLステートメント" PRAGMA user_version"を実行します。これはAndroidのソースコードから取得しました。

データベースファイルでは、バージョンは、データベースファイルのデータベースヘッダーの「usercookie」フィールドのバイトオフセット60に保存されます。

于 2010-09-14T18:52:56.843 に答える
10

誰かがファイルからバージョンを読み取るための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();
}
于 2015-08-03T23:59:10.507 に答える