データ バックアップの概要

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

バックアップするデータを選択する

デバイス上の ID とアカウント データ、設定データ、アプリデータ

図 1.アプリを再び使用するユーザーの ID、アプリデータ、設定データを確実に復元する。

ユーザーはアプリの使用時に大量のデータを生成するため、データのバックアップに注意を払う必要があります。データのバックアップが不十分だと、ユーザーが新しいデバイスでアプリを開いた際にデータの一部が失われ、不快感を与えることになります。ユーザーのためにバックアップすべき重要なデータは、以下で説明するように、ユーザーの ID データ、ユーザー生成のアプリデータ、設定データです。

ID データ

ユーザーが新しいデバイスを使い始めたときにユーザーのアカウントを移行することは、既存のユーザーのエンゲージメントを維持するために役立ちます。

まず、Google ログインを導入して、ユーザーが自動的に、または一度のタップで新しいデバイスにログインできるようにします。

また、Smart Lock for Passwords を統合すると、デバイスへのユーザーのログインをすぐに復元できます。Smart Lock for Passwords では、ユーザー名とパスワードからなる認証情報だけでなく、フェデレーション ID プロバイダの認証情報も保存できます。自動入力フレームワークを使用すると、Android 8.0 以降を搭載したデバイスでユーザーがパスワードを保存することも可能になります。

Account Transfer API を使用して、アプリのカスタム アカウント認証情報をユーザーの既存のデバイスから新しいデバイスにコピーすることもできます。転送は、暗号化された Bluetooth 接続またはデバイス間のケーブルを介して新しいデバイスをセットアップしている最中に行われます。

アプリデータ

アプリデータには、テキスト、画像、その他のメディアなどのユーザー生成コンテンツが含まれる場合があります。アプリデータの復元については、同期アダプターを使用してデータを転送する、または Google ドライブ Android API をご覧ください。いずれの方法でも、Android 対応デバイス間でアプリデータを同期し、通常のアプリ ライフサイクルで使用するデータを保存できます。また、いずれの方法でも、再びアプリを使用するユーザーのデータを新しいデバイスに復元できます。

設定データ

新しいデバイスで再びアプリを使用するユーザーが個人設定を保持できるように、設定データのバックアップと復元も行う必要があります。ユーザーがアプリにログインしなくても、設定データを復元できます。ユーザーがアプリの UI で明示的に行った設定に加えて、ユーザーが設定ウィザードを表示したかどうかを示すフラグなどの透過的なデータもバックアップできます。

新しいデバイスでユーザーの以前の操作を可能な限り再現するには、次のユーザー設定をバックアップしてください。

  • ユーザーが変更したすべての設定(Jetpack の Preference ライブラリを使用するときなど)。

  • ユーザーが設定した通知と着信音のオンまたはオフ。

  • ユーザーがウェルカム画面または導入ツールチップを表示したかどうかを示すブール値のフラグ。

モバイル デバイス間での設定の転送。

図 2.新しいデバイスで設定を復元すると、優れたユーザー エクスペリエンスを確保できます。

バックアップを避ける必要がある設定データの一つに、変更される可能性がある URI があります。新しいモバイル デバイスに復元すると、有効なファイルを指していない無効な URI が発生する場合があります。たとえば、URI を使用してユーザーの着信音の設定を保存した場合などです。ユーザーがアプリを再インストールしたとき、URI が着信音を何も参照しない場合や、意図したものと異なる着信音を参照する場合があります。URI の代わりに、着信音のタイトルやハッシュ値など、設定に関するメタデータをバックアップする方法があります。

バックアップのオプション

Android では、アプリがデータをクラウドにバックアップする方法として、アプリの自動バックアップKey-Value バックアップの 2 つが用意されています。自動バックアップ(Android バージョン 6.0 以降で利用可能)では、データはユーザーの Google ドライブ アカウントにアップロードされて保持されます。自動バックアップの対象には、システムによってアプリに割り当てられたほとんどのディレクトリのファイルが含まれます。自動バックアップでは、アプリごとに最大 25 MB のファイルベースのデータを保存できます。Key-Value バックアップ機能(以前の Backup API および Android Backup Service)は、設定データを Key-Value ペアの形式で Android Backup Service にアップロードすることにより保持します。

通常、自動バックアップはデフォルトで有効になっており、実装する必要がないため、この方法をおすすめします。Android バージョン 6.0 以降をターゲットとするアプリでは、自動バックアップが自動的に有効になります。自動バックアップ機能では、アプリデータをファイルベースでバックアップする方法が採用されています。自動バックアップは実装が簡単ですが、データのバックアップについて特別なニーズがある場合は Key-Value バックアップ機能の使用を検討してください。

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 ペアをバックアップする 自動バックアップでユーザーデータをバックアップする

各サービスのバックアップと復元の仕組みについては、バックアップと復元のテストをご覧ください。