LoginSignup
70
66

More than 5 years have passed since last update.

Auto Backup on Android M

Last updated at Posted at 2015-08-04

はじめに

このページはAndroid MのAuto Backupに関する共有を目的とするページです
結構便利そうなので、積極的に使ったほうが良いかなーと思っています。
と同時に、自動的にAuto Backup機能がopt-inされてしまうので、ユーザに使ってほしくない場合は、manifestに一行追加しなければいけないようです。

必須条件

  • targetSdkVersionが23以上

概要

Android MにはAuto Backupという機能が追加される。
簡単にいえば「開発コスト、ユーザの操作コストを極力かけずにアプリのユーザデータの自動バックアップを作成する」というもの。

特徴

  • OSがAndroid M以上のすべての端末で動作
  • Google Driveに暗号化された状態でバックアップが作成される。アプリがバックアップのスケジュールを指定できない
  • 作成されたアプリのバックアップはGoogle Driveの保存領域制限(quota)としてカウントされない
  • バックアップは24時間ごとに行われる
  • バックアップは充電中、WiFi接続、アイドル状態の3つの条件が満たされた時に行われる
  • バックアップデータはユーザが新しく携帯を購入した時、アプリをアンインストール後再インストールした際に復元される
  • データ復元の実行は、アプリのインストール時に行われる
  • ユーザがバックアップをオプトアウトしたい場合は設定変更ができる
  • アプリがバックアップをオプトアウトしたい場合は、明示的にオプトアウトするプロパティをmanifestに追加しなければいけない
  • バックアップに必要なクラウドの費用などはすべて無料(通信料は必要)
  • 1アプリ25MBまでバックアップを作成できる。25MBを超えるとバックアップは停止される

バックアップしてはいけないもの

  • デバイス固有のtoken、例えばregistration IDなど
  • センシティブなユーザデータ

Auto Backupのデバッグ方法

Backupのログを有効にする

$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE

Backup Managerを初期化する

$ adb shell bmgr run

Backupを実行する

$ adb shell bmgr fullbackup <PACKAGE>

バックアップデータを復元する

$ adb shell bmgr restore <PACKAGE>

トラブルシューティングをする

もしバックアップのテスト中何らかのエラーが起きてしまった場合下記の3つの方法でバックアップデータを削除することが可能
- 設定でバックアップをOFFにしてONにする
- 工場出荷状態まで戻す
- 下記コマンドを実行する

$ adb shell bmgr wipe <TRANSPORT> <PACKAGE>

はcom.google.android.gmsによって設定されている。transportのリストを表示するには

$ adb shell bmgr list transports

を実行する。

バックアップ機能のオプトアウト

manifest
<application
    android:allowBackup="false"
    ...
/>

バックアップしないものをブラックリスト指定

例では、device_info.db以外すべてをバックアップするように設定

manifest
<application
    android:fullBackupContent="@xml/my_xml_file"
    ...
/>
my_xml_file.xml
<full-backup-content>
    <exclude domain="database"
        path="device_info.db" />
</full-backup-content>

バックアップしないものをホワイトリスト指定

例では、somethin_to_backup.txt以外すべてをバックアップしないように設定

manifest
<application
    android:fullBackupContent="@xml/my_xml_file"
    ...
/>
my_xml_file.xml
<full-backup-content>
    <include domain="file"
        path="somethin_to_backup.txt" />
</full-backup-content>

ドメイン指定できるもの

sharedpref | file | database | external | root

参考文献

http://developer.android.com/preview/backup/index.html
https://github.com/googlesamples/android-AutoBackupForApps

70
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
66