2011-01-30 8 views
34

Android開発ツールのアップデートがリリースされました。エミュレータスナップショットの保存とリストアが可能です。誰もこの機能の使い方を知っていますか?これにより、エミュレータの読み込み時間が大幅に短縮されます。しかし、エミュレータにそうするよう指示する方法は見つけられません。ありがとう。どのようにアンドロイドエミュレータのスナップショットを保存しますか?

答えて

2

復元するオプションがありません。

しかし、あなたはJavaからDDMS

変更エミュレータの現在のスナップショットビューの視点を保存することができます。 赤で囲ったボタンをクリックすると、あなたのエミュレータの現在のスナップショット

enter image description here

+0

追加情報ありがとうございますTanmay。あなたがサークルしたボタンは、スクリーンショットを撮るのに役立ちます:)そしてそれも役立ちます。私が意味することは、エミュレータの「状態」を「保存/復元する」ことです。ちょうど昨日ロールアップされた機能。やってみて! – Gaurav

+0

私は更新について気づいていませんでした。そのことに感謝します。 –

+0

これはandroid 8 SDKで動作しますか? – hoffmanc

3

右のコピーを保存することができます。 avdを作成中に "Enable Snapshot"をチェックした場合、エミュレータを閉じるだけでその状態が保存され、次回の実行時にマネージャーやEclipseから復元されます。

29

ハニカムはこの機能を導入しており、かなりクールです!これは、ノートパソコンの休止状態のようなものです。エミュレータの状態を大きなファイルに保存し、後でファイルから状態を復元しています。

取得する方法はいくつかあります。最初の方法は、Android SDKとAVD Managerからエミュレータを起動するときに、Launch Optionsダイアログで必要なオプションを設定することです(下の画像を参照)。 [ユーザーデータを消去]オプションは以前から存在しており、新しいシステムが最初から作成されます。新しいスナップショットオプションは、スナップショットから起動する(以前に保存されている場合)、またはエミュレータがシャットダウンしたときにスナップショットに保存することです。明らかにスナップショットを保存してから起動する必要があります。スナップショットファイルはかなり大きくなる可能性があり、エミュレータを閉じるときにエミュレータが終了するまでの時間が長くなります。でも、その価値はある。スナップショットからの起動は、Androidの起動シーケンス全体に比べて非常に速いです。あなたができるトリックの1つはスナップショットに一度保存してからスナップショットから起動するが、初めてスナップショットに保存しないことです。あなたのスタートアップは速く、あなたの退室は速くなります。各エミュレータセッションで何をしても、毎回同じスナップショット状態から開始します。

enter image description here

スナップショットを使用する他の方法は、エミュレータのコマンドラインからのものです。ドキュメントには、現在、これらのオプションについては言及しませんが、エミュレータ上のヘルプオプションを呼び出すことによって、我々はこれらを見つける:

-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 

起動オプション]ダイアログが簡単ですので、私は、コマンドラインからスナップショットを試していません。編集:もう一つ、スナップショットファイルはあなたのAVDファイルと同じ場所に格納されます。

+4

小さな追加:AVDを作成するときに「スナップショットを有効にする」を選択しない限り、スナップショットオプションはグレー表示になります。 –

+3

それは本当です。しかし、既存のAVDを編集してスナップショットを有効にすることができます。したがって、元に戻って再作成する必要はありません。 –

+2

*コマンドライン*のバージョンとストレージパスを含めるために+1 – n611x007

21

はどうやらあなたはまた、コンソールインタフェースを介してそれを行うことができます。

$ 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 
+0

'エミュレータ:コンソール接続をポート5554で聞いていますが、' Connecting to localhost ...ポート5554のホストに接続できませんでした:Connect失敗しました –

+1

私が好きな人は2017年にこれを見つけましたが、この機能はツールv25にはないようです。それを使用するには、v24にダウングレードする必要があります。 – Ishamael

+0

ツールv26では、これが見逃せない(このエラーはオプションがサポートされていないと言われています)が、ツールv26ではスナップショットが戻っている可能性があります。私はエラー/フィードバックを得ていないので、それが存在するかどうかはわかりません。以前に他のバージョンで作業していた人は、Tools v26で確認してください。ありがとう。 –

1

シェルユーザの場合、あなたは--no-windowエミュレータを実行している場合:これは、デフォルトのブートを節約するエミュレータプロセスを知らせるためにkill -2を使用してのように見えますスナップショットは、--snapshotオプションを使用してエミュレータを作成したものとします。

はこれを行います。

killall -2 emulator64-x86 

次回は、そのスナップショットから復元します-no-snapshot-loadオプション以外のものを立ち上げ、そのエミュレータを起動します。

+0

'killall'はショットガンのアプローチかもしれませんが、これはx86_64エミュレータで動作します。 – Corin

+0

[Wikipedia](http://en.wikipedia.org/wiki/Unix_signal)は、シグナル2がSIGINTであると言います。 'fg'を入力してからCtrl + Cを押すと、SIGINTを送ることもできます。 – unforgettableid

関連する問題