バックグラウンド
Google は Android M に優れた新機能を導入しました。これにより、このビデオで示されているように、ADB を使用してもアプリをバックアップおよび復元できます。
次のように、コマンドを使用してadb shell bmgr
アプリをバックアップおよび復元するだけです。
バックアップ:
adb shell bmgr fullbackup PACKAGE_NAME
アプリを復元します。
adb shell bmgr restore PACKAGE_NAME
そして、それはうまく機能します。
問題
ドキュメントはかなり新しい段階にあるため、この新しいツールに関するいくつかの質問に対する回答が見つかりません。
私が試したこと
を入力するadb shell bmgr
と、使い方の手がかりが得られますが、質問に対する答えが見つかりません。Android M を搭載したデバイスではなく、代わりにエミュレーターを使用すると、動作が異なると思います。
このコマンドを入力すると、次のように記述されます。
使用方法: bmgr [backup|restore|list|transport|run] bmgr backup PACKAGE bmgr enable BOOL bmgr enabled bmgr list transports bmgr list sets bmgr transport WHICH bmgr restore TOKEN bmgr restore TOKEN PACKAGE... bmgr restore PACKAGE bmgr run bmgr Wipe TRANSPORT PACKAGE bmgr フルバックアップ パッケージ...
「backup」コマンドは、指定されたパッケージのバックアップ パスをスケジュールします。パッケージに保存する変更データが実際にない場合、バックアップ パスは事実上ノーオペレーションになることに注意してください。
「enable」コマンドは、バックアップ メカニズム全体を有効または無効にします。引数が「true」の場合は有効になり、それ以外の場合は無効になります。無効にすると、バックアップ操作も復元操作も実行されません。
「有効」コマンドは、バックアップ メカニズムの現在の有効/無効状態を報告します。
「list transports」コマンドは、デバイスで現在使用可能なバックアップ トランスポートの名前を報告します。これらの名前は、'transport' および 'wipe' コマンドに引数として渡すことができます。現在アクティブなトランスポートは、'*' 文字で示されます。
「list sets」コマンドは、現在アクティブなトランスポートを介してデバイスで使用可能な各復元セットのトークンと名前を報告します。
「transport」コマンドは、指定されたトランスポートを現在アクティブなものとして指定します。この設定は、再起動後も維持されます。
「restore」コマンドは、restore トークンだけを指定すると、現在アクティブなトランスポートからシステム全体の復元操作を開始します。TOKEN 引数で指定された復元セットを、その復元セットにデータを提供した各アプリケーションに配信します。
トークンと 1 つ以上のパッケージ名が指定された場合の「restore」コマンドは、TOKEN 引数で指定された復元セットから指定されたパッケージのみの復元操作を開始します。これは、トークンのみを提供する「復元」操作と事実上同じですが、復元するアプリケーションのセットにフィルターを適用します。
「restore」コマンドは、パッケージ名だけを指定すると、RestoreSession.restorePackage() メソッドで使用される復元セット選択アルゴリズムに従って、その 1 つのパッケージのみの復元を開始します。
「run」コマンドを使用すると、スケジュールされたバックアップ操作がすぐに開始されます。データ変更をまとめてバッチ処理するための通常の待機時間はありません。
'wipe' コマンドは、指定されたパッケージのすべてのバックアップ データを指定されたトランスポートのストレージから消去します。特定のアプリケーションが実行する次のバックアップ操作は、そのデータ セット全体を書き換えます。ここで使用するトランスポート名は、'list transports' によって報告されたものです。
「fullbackup」コマンドは、1 つ以上のパッケージの完全なデータ ストリーム バックアップを作成します。データは、現在アクティブなトランスポート経由で送信されます。
質問
いくつかの質問を聞きたいんです:
デバイス自体を介してこれらのコマンドを呼び出したとします。それらは機能しますか? そうでない場合、ルート化されたデバイスで動作しますか? または、少なくとも現在のアプリをバックアップして復元します(アプリXのバックアップと復元自体)?
バックアップはどこに保存されていますか? それらをカスタマイズされたパスに保存することは可能ですか? たぶん、PCのものでさえありますか?
同じアプリを複数の状態にバックアップすることはできますか? たとえば、アプリは、ログインしたときのバックアップと、いくつかの設定が構成されているときのバックアップを持つことができます。このようにして、それらの各バックアップに復元できます。
彼らは、「現在アクティブなトランスポート」について上記の説明に書いています。正確には何ですか?カスタマイズできますか?
すべてのアプリでバックアップ/復元を実行できますか? または、すべてのアプリのパッケージを配置する必要がありますか?
「フルバックアップ」はすぐにバックアップを行うようです。「実行」属性は何に使用されますか? それとも、エミュレータを使用しているからですか?