アプリで利用しているデータをバックアップし、機種変更時に復元するような機能を入れたい。
アプリのデータの保存はおおむね、以下の3種類です。
1) プレファレンス
2) データベース(SQLite)
3) 各種データファイル
各種ファイルのバックアップ
1) プレファレンス
プレファレンスは、
/data/data/(パッケージ名)/shared_prefs/(プレファレンス名).xml
に保存されていますので、このファイルを取得しましょう。
復元時にはこのファイルを上書きします。
2) データベース(SQLite)
SQLiteで管理しているデータベースのファイルは、
SQLiteDatabase.getPath()
でパスを取得することができます。データベースをクローズした状態で、上記パスのファイルを取得しましょう。
3) 各種データファイル
アプリで作成した各種データファイルはアプリ自身が把握しているかと思いますので、必要に応じてバックアップをします。
各種ファイルの復元
バックアップしたファイルを元あった場所に上書きします。
ファイルを開いた状態ではファイルの上書きはできませんので、ファイルが開いていない状態で上書きを実施してください。
無難に復元を実施するために、一度アプリを終了させてから復元するのもよいかと思います。
また、データ復元後にアプリの途中から再開されると何かと不都合が発生する可能性もありますので、データの復元自体をアプリの起動直後に実施してもよいかもしれません。