ユーザーは多くの場合、アプリ内での ID の作成、データの追加、設定のカスタマイズに多大な時間と労力を費やします。新しいデバイスへのアップグレード時やアプリの再インストール時にユーザーのデータやカスタマイズ内容を保存することは、優れたユーザー エクスペリエンスを確保するうえで重要です。このページでは、バックアップする必要があるデータと使用可能なバックアップ オプションについて説明します。
バックアップするデータを選択する

図 1.アプリを再び使用するユーザーの ID、アプリデータ、設定データを確実に復元する。
ユーザーはアプリの使用時に大量のデータを生成するため、データのバックアップに注意を払う必要があります。データのバックアップが不十分だと、ユーザーが新しいデバイスでアプリを開いた際にデータの一部が失われ、不快感を与えることになります。ユーザーのためにバックアップすべき重要なデータは、以下で説明するように、ユーザーの ID データ、ユーザー生成のアプリデータ、設定データです。
ID データ
ユーザーが新しいデバイスを使い始めたときにユーザーのアカウントを移行することで、既存のユーザー エンゲージメントを維持できます。
まず、Google ログインを採用して、新しいデバイスに自動的に、または 1 回のタップでログインできるようにします。
また、Smart Lock for Passwords を統合すると、デバイスへのユーザーのログインをすぐに復元できます。Smart Lock for Passwords では、ユーザー名とパスワードからなる認証情報だけでなく、フェデレーション ID プロバイダの認証情報も保存できます。自動入力フレームワークにより、Android 8.0 以降を搭載しているデバイスであれば、ユーザーによるパスワードの保存も可能です。
Account Transfer API を使用して、アプリのカスタム アカウント認証情報をユーザーの既存のデバイスから新しいデバイスにコピーすることもできます。転送は、暗号化された Bluetooth 接続またはデバイス間のケーブルを介して新しいデバイスをセットアップしている最中に行われます。
アプリデータ
アプリデータには、テキスト、画像、その他のメディアなどのユーザー生成コンテンツが含まれる場合があります。アプリデータの復元については、同期アダプターを使用してデータを転送する、または Google ドライブ Android API をご覧ください。いずれの方法でも、Android 対応デバイス間でアプリデータを同期し、通常のアプリ ライフサイクルで使用するデータを保存できます。また、どちらの方法でも、再びアプリを使用するユーザーのデータを新しいデバイスに復元することが可能です。
設定データ
設定データのバックアップと復元も行い、ユーザーが再びアプリを使用する場合に個人設定を新しいデバイスに保存する必要があります。ユーザーがアプリにログインしなくても、設定データを復元できます。ユーザーがアプリの UI で明示的に行った設定や、設定ウィザードを表示したかどうかを示すフラグなどの透過的なデータもバックアップできます。
注: Android 7.0(API 24)以降を搭載したデバイスでは、ユーザーがアプリに付与した権限はすべて自動的にバックアップおよび復元されます。ただし、ユーザーがアプリをアンインストールすると、付与された権限はすべて消去され、ユーザーが再度付与する必要があります。
ユーザーがそれまでと同じようにできるだけ快適に利用できるようにするには、次のユーザー設定をバックアップしてください。
- AndroidX
Preference Library
を使用している場合など、ユーザーが変更したすべての設定。 - ユーザーによる通知と着信音のオンまたはオフ。
- ユーザーがウェルカム画面や導入ツールチップを表示したかどうかを示すブール値のフラグ。
図 2.新しいデバイスで設定を復元すると、優れたユーザー エクスペリエンスを確保できます。
バックアップを避ける必要がある設定データの一つに、変更される可能性がある URI があります。新しいモバイル デバイスに復元すると、有効なファイルを指していない無効な URI が発生する場合があります。たとえば、URI を使用してユーザーの着信音の設定を保存した場合などです。ユーザーがアプリを再インストールした場合、URI が着信音を指定しない、もしくは意図したものとは異なる着信音を指定する場合があります。URI ではなく、着信音のタイトルやハッシュ値など、設定に関するメタデータをバックアップできます。
バックアップのオプション
Android では、アプリがデータをクラウドにバックアップする方法として、アプリの自動バックアップと Key-Value バックアップの 2 つが用意されています。自動バックアップは Android 6.0(API レベル 23)から利用でき、データをユーザーの Google ドライブ アカウントにアップロードして保持します。自動バックアップの対象には、システムによってアプリに割り当てられたほとんどのディレクトリのファイルが含まれます。自動バックアップでは、アプリごとに最大 25 MB のファイルベースのデータを保存できます。Key-Value バックアップ機能(以前の Backup API および Android Backup Service)は、Key-Value ペアの形式で設定データを Android Backup Service にアップロードすることで、設定データを保持します。
通常、自動バックアップはデフォルトで有効になっており、実装する必要がないため、この方法をおすすめします。Android 6.0(API レベル 23)以降を対象とするアプリでは、自動バックアップが自動的に有効になります。自動バックアップ機能では、アプリデータをファイルベースでバックアップする方法がとられています。簡単に実装できますが、データのバックアップに関して特定のニーズがある場合は Key-Value バックアップ機能も検討してください。
注: アプリにアプリ コンテンツのバックアップ メカニズムがなく、アプリ コンテンツのサイズが 25 MB の制限を超える可能性が低い場合は、自動バックアップで十分です。
Key-Value バックアップと自動バックアップの主な違いを次の表に示します。
カテゴリ | Key-Value バックアップ(Android Backup Service) | Android 自動バックアップ |
---|---|---|
サポートされているバージョン | Android 2.2(API レベル 8)以降 | Android 6.0(API レベル 23)以降 |
有効化 / 無効化 | デフォルトで無効。アプリでバックアップ エージェントを宣言することでオプトインできます。 | デフォルトで有効。アプリでバックアップを無効にすることでオプトアウトできます。 |
実装 |
アプリで BackupAgent を実装する必要があります。バックアップ エージェントで、バックアップするデータとデータの復元方法を定義します。
|
デフォルトでは、アプリのほとんどすべてのファイルが自動バックアップの対象に含まれます。XML を使用して、除外ファイルを指定できます。内部的な動作としては、自動バックアップは SDK にバンドルされているバックアップ エージェントに依存しています。 |
頻度 | バックアップの準備が整ったデータがある場合、アプリはリクエストを発行する必要があります。複数のアプリからのリクエストはバッチ処理され、数時間ごとに実行されます。 | バックアップは 1 日に 1 回程度自動的に行われます。 |
送信 | バックアップ データは、Wi-Fi またはモバイルデータ通信で送信できます。 | バックアップ データはデフォルトで Wi-Fi を使用して送信されますが、デバイスのユーザーはモバイルデータ通信でのバックアップを有効にできます。デバイスが Wi-Fi ネットワークに接続されていない場合や、モバイルデータ通信でのバックアップ設定が変更されていない場合は、自動バックアップは行われません。 |
送信条件 |
onBackup() でバックアップするには、デバイス条件の定義が必要です。
|
XML ファイルでバックアップするには、デバイス条件の定義が必要です(デフォルトのバックアップ エージェントを使用する場合)。 |
アプリのシャットダウン | バックアップ中にアプリがシャットダウンされることはありません。 | システムによってバックアップ中にアプリがシャットダウンされます。 |
バックアップ ストレージ | バックアップ データは Android Backup Service に保存され、アプリごとに最大 5 MB の制限があります。Google は、Google のプライバシー ポリシーに従ってこのデータを個人情報として扱います。 | バックアップ データはユーザーの Google ドライブに保存され、アプリごとに最大 25 MB の制限があります。Google は、Google のプライバシー ポリシーに従ってこのデータを個人情報として扱います。 |
ユーザー ログイン | ユーザーがアプリにログインする必要はありません。ユーザーは Google アカウントを使用してデバイスにログインする必要があります。 | ユーザーがアプリにログインする必要はありません。ユーザーは Google アカウントを使用してデバイスにログインする必要があります。 |
API | 関連 API として、次のようなエンティティベースのメソッドがあります。 | 関連 API として、次のようなファイルベースのメソッドがあります。 |
データの復元 | アプリがインストールされると、データが復元されます。必要に応じて、手動による復元をリクエストできます。 | アプリがインストールされると、データが復元されます。複数のデータセットが使用可能な場合は、バックアップ データセットのリストから選択できます。 |
ドキュメント | Android Backup Service を使用して Key-Value ペアをバックアップする | 自動バックアップでユーザーデータをバックアップする |
各サービスのバックアップと復元の仕組みについては、バックアップと復元のテストをご覧ください。
注: Wi-Fi が利用できない場合、Key-Value バックアップではモバイルデータが使用される場合があります。したがって、データ量が非常に少ない場合を除き、Key-Value バックアップは、メディア、ダウンロードしたファイル、キャッシュなどのアプリデータのコンテンツには適していません。