70
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?