Android開発ツールのアップデートがリリースされたばかりで、エミュレータのスナップショットに保存したり、そこから復元したりできます。この機能の使い方を知っている人はいますか?これにより、エミュレータのロード時間が大幅に短縮されます。 !しかし、エミュレータにそうするように指示する方法が見つかりません。
Honeycombがこの機能を導入しました。ラップトップの休止機能のようなものです。エミュレータの状態を大きなファイルに保存し、後でその状態をファイルから復元します。
それを取得する方法はいくつかあります。最初の方法は、Android SDKおよびAVD Managerからエミュレーターを起動するときに、[Launch Options]ダイアログで目的のオプションを設定することです(下の画像を参照)。ユーザーデータのワイプオプションは以前からあります。 、それにより、新しいシステムが最初から作成されます。新しいスナップショットのオプションは、スナップショットから起動する(以前に保存されている場合)、またはエミュレーターのシャットダウン時にスナップショットに保存することです。明らかに、スナップショットを保存する必要があります。スナップショットファイルはかなり大きくなる可能性があり、エミュレータを閉じるときにエミュレータが終了するまでの時間が長くなります。しかし、それだけの価値はあります。スナップショットからの起動は、ブート全体を実行する場合に比べて非常に高速ですAndroidの起動シーケンス。実行できるトリックの1つは、一度スナップショットに保存してからスナップショットから起動することですが、その後はスナップショットに保存しないでください。スタートアップは速くなり、終了は速くなります。ただし、何をしても、毎回同じスナップショットの状態から開始する各エミュレータセッションで行います。
スナップショットを使用するもう1つの方法は、エミュレータのコマンドラインからです。現在、ドキュメントではこれらのオプションについて言及していませんが、エミュレータでヘルプオプションを呼び出すと、次のことがわかります。
-snapstorage <file> file that contains all state snapshots (default <datadir>/snapshots.img)
-no-snapstorage do not mount a snapshot storage file (this disables all snapshot functionality)
-snapshot <name> name of snapshot within storage file for auto-start and auto-save (default 'default-boot')
-no-snapshot perform a full boot and do not do not auto-save, but qemu vmload and vmsave operate on snapstorage
-no-snapshot-save do not auto-save to snapshot on exit: abandon changed state
-no-snapshot-load do not auto-start from snapshot: perform a full boot
-snapshot-list show a list of available snapshots
-no-snapshot-update-time do not do try to correct snapshot time on restore
[起動オプション]ダイアログの方が簡単なので、コマンドラインからスナップショットを試していません。編集:もう1つ、スナップショットファイルはAVDファイルと同じ場所に保存されます。
どうやら、コンソールインターフェイスからも実行できます。
$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
avd snapshot save foo
私がこの実用的な解決策を見つけたトップ回答の1つに基づいて:
adb emu avd snapshot save foo
そして特にこれはこれと一緒に非常に便利です:
adb emu avd snapshot load bar
正しい。 avdの作成中に「スナップショットを有効にする」をオンにしたと仮定すると、エミュレーターを閉じるだけでその状態が保存され、マネージャーまたはEclipseからの次の実行時に復元されます。
復元できるオプションがあるかどうかはわかりません。
ただし、エミュレータの現在のスナップショットを保存できます
ビューの視点をJava
からDDMS
に変更します。赤で囲まれたボタンをクリックすると、エミュレータの現在のスナップショットのコピーを保存できます
Shellユーザーの場合、--no-window
エミュレーターを実行している場合:kill -2
を使用してエミュレータープロセスがデフォルトのブートスナップショットを保存することを通知するために--snapshot
を使用するように見えます。オプション。
これを行う:
killall -2 emulator64-x86
次回そのエミュレーターを起動するときに、-no-snapshot-load
オプション以外で起動すると、そのスナップショットから復元されます。