一部のアプリでは、Androidデータベースのアプリ内バックアップと復元を提供しています。データベースファイルの名前はSQLiteOpenHelperで設定されます。
Androidのバージョンや製造元(HTCなど)によっては、追加のファイルが存在する可能性があると聞きました。
これらすべてのファイルの名前は何ですか?
場合によります。
標準のAndroidSQLiteインストールでは、データベースごとに1つのデータベースファイルのみが作成されます。このファイルは「/data/ data // databases」にあり、たとえばこのコンストラクターの「name」パラメーターで指示されたとおりに名前が付けられます。
SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
したがって、データベースファイルは次のように呼び出されます。
/data/data/<packagename>/databases/mydatabase.db
SQLite自体には、先行書き込み(WAL)と呼ばれる新機能があります。このWALは、従来のデータベースメーカーのものとは異なるログメカニズムを使用します。WALを使用すると、新しくコミットされたデータは、元のファイル名に「-wal」が付加された追加ファイルに保存されます。例えば:
/data/data/<packagename>/databases/mydatabase.db-wal
このデータは、構成可能なスレッドホールドに達するまで、またはアプリ開発者がデータベースにこのデータを移動するように指示するまで、従来のデータベースファイルにありません。
ただし、WAL対応のデータベースは、「*。db」ファイルだけでは無効です。データベースを形成するには、すべての追加ファイルが必要です。これは、WAL対応のデータベースがWALをサポートしないSQLiteバージョンのAndroidデバイスでは機能しないことを意味します。そのため、WAL対応データベースからのデータベースバックアップは、古いAndroidシステムでは機能しません。
ただし、WALを有効にするデバイス(HTCなど)と一部のカスタムROMのみがあります。標準のAndroidはWALを有効にしません。