2015年6月4日木曜日

[android]Auto Backup

Android M developer Previewの話です。
詳細はここです。
・Android M developer Previewでアプリを動かすと、
・コードに一切手を加えることなく自動的にアプリのデータをクラウドにバックアップしてくれます。アプリの再インストールやデバイスの変更で自動的にリストアしてくれます。
 ・拙著『読書日記』で試してみたところ、本当にバックアップができました。何も手を加えておりません。
 ・テストするには
  $ adb shell bmgr run
  $ adb shell bmgr fullbackup <PACKAGE>
   とでもやって、アプリをアンインストール → インストールするとデータが復元されます。
・M developer Previewの期間はアプリ毎に25MBの領域が用意されているそうです。ユーザのGoogle Driveの領域は消費するのではないそうです。すばらしい!
・24時間ごとにデバイスがアイドルでWiFiに接続しているときにバックアップデータをクラウドへ送信するそうです。もちろん暗号化されて保存されるそうです。
・Auto Backupしないデータはありまして次のようなものです。
 ・getCacheDir()やgetCodeCacheDir()によって参照されるディレクトリ内のデータ
 ・外部ストレージのデータ
 ・getNoBackupFilesDir()によって参照されるディレクトリ内のデータ
・どれをバックアップして、どれをバックアップしないかのルールをアプリ独自に定めることもできます。android:fullBackupContent="@xml/mybackupscheme"みたいな感じの記述をmanifestに書いて、res/xml/mybackupscheme.xmlに定義するそうです。詳細はここを参照してください。
・いやいや、Auto Backupなんてしてもらわなくて結構ですよ、したくないんですよというアプリの場合は、android:allowBackup="false"をマニフェストに書いておけばよいそうです。
・サンプルはandroid-AutoBackupForAppsです。
 ・おもにAuto Backupの対象外とするファイルの定義の仕方が示されています。
 getNoBackupFilesDir()とxmlの書き方がメインです。
 というのもAuto Backupは本当に何もしないと自動的にバックアップ対象にしてくれますので。
 ・MainActivityはsetContentView(R.layout.activity_main);しているだけです。
 ・R.layout.activity_mainにMainActivityFragmentが記述されています。ということで、MainActivityFragment が表示されます。
 ・MainActivityFragmentは各保存場所(Internal, External, getNoBackupFilesDir())に格納されているファイルの一覧を表示します。
 ・MainActivityFragment -> AddFileActivity はオプションメニューで遷移します。
 ・AddFileActivity へ飛ぶとファイル名、ファイルサイズ、保存場所(Internal, External, getNoBackupFilesDir())を指定してファイルの保存ができるようです。
 ・Application/src/main/res/xml/backup.xml にAuto Backupを除外するxmlの書き方のサンプルが示されています。おそらくJavaのサンプルコードとの関連は何もない感じです。Javaコードの方にSharedPreferencesやデータベースの話などでてきておりませんが、xmlでは<exclude domain="sharedpref" path="user_credentials"/>や<exclude domain="database" path="local_secrets.db"/>がサンプルで書かれています。



0 件のコメント:

コメントを投稿