1

一部のアプリでは、Androidデータベースのアプリ内バックアップと復元を提供しています。データベースファイルの名前はSQLiteOpenHelperで設定されます。

Androidのバージョンや製造元(HTCなど)によっては、追加のファイルが存在する可能性があると聞きました。

これらすべてのファイルの名前は何ですか?

4

1 に答える 1

0

場合によります。

標準の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を有効にしません。

于 2012-09-14T09:28:55.723 に答える