AndroidはSQLiteのデータベースバージョンをどこに保存しますか?
-
02-10-2019 - |
質問
AndroidがSQLiteデータベースファイル内でデータベースバージョンを保存する場所を見つけることができません。データベースバージョンはどこに保存されますか?
解決
使用してバージョンを読むことができます android.database.sqlite.SQLiteDatabase.getVersion()
.
内部的には、この方法はSQLステートメントを実行します」PRAGMA user_version
"。私はそれを手に入れました Androidソースコード.
データベースファイルでは、バージョンはバイトオフセット60に保存されます データベースヘッダー データベースファイルのフィールド「ユーザークッキー」。
他のヒント
誰かがファイルからバージョンを読む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();
}
所属していません StackOverflow