web-dev-qa-db-ja.com

実行中のアップロードが遅いAndroidエミュレータ

私は検索しましたが、私の特定の状況に対するクエリや回答は見つかりませんでした。私は、Windows 7を実行する十分なメモリを備えた高速の新しいマシンを使用しています。最新のEclipseとAndroid SDKを使用しています。

アプリを実行すると、実行開始からアプリの実行まで、エミュレータの起動に約45秒かかります(エミュレータの場合は非常に高速です)。

その後、アプリを変更して、まだ実行中のエミュレータで再実行すると、時間が70秒以上に増加します。他のすべての苦情とは異なり、私の場合、エミュレータの再起動は既存のインスタンスを使用するよりも高速です。嫌いです。

ここに時間があります:

2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:07:18 - hello Installing hello.apk...
2011-09-29 13:07:37 - hello Success!

アプリを変更して再読み込みした後の再実行時:

2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:09:16 - hello Installing hello.apk...
2011-09-29 13:09:24 - hello Success!

ご覧のとおり、エミュレーターへのアップロードは、エミュレーターが新たに開始されたときにわずか5秒で完了します。実行中のエミュレータで1分近くかかります!これが再実行時間が長くなる原因です。エミュレータでアプリをアンインストールしてから再実行しても、これは変わりません。

これを解決するために何ができるかについてのアイデアはありますか?おそらくadbとの通信の問題のようです。

42
jfielding

他のユーザーが投稿したように、アップロード中にエミュレータ内をクリックするだけで、アップロード速度が大幅に向上します。私も同じ問題を抱えており、グーグルで答えを求めました。このトリックを試すと役に立ちました。 2.3.3 AVDを実行しています。

30
TommyN

私の新しい発見は、小さな「ハック」方法ですアップロードをより速くすることができます。アップロードが速くなったのは、私のやり取りが原因であることに気づきました。そのため、エミュレータでアクティブに作業せずに新しいアプリをアップロードすると、遅くなります。しかし、私がそれを使用する場合(私のアプリケーションのテスト、終了、アプリケーションリストのオープンなど)、アップロードははるかに速くなります-私の場合、約。 15秒ではなく、2分近くになります。

したがって、問題はエミュレータのパフォーマンス設定にどういうわけかあると思います。私が何もしない場合、大きなパフォーマンスは必要ないと考えられ、エミュレーターは何らかの経済状態に切り替えられるため、アップロードも遅くなります。

8
peter.bartos

より良いソリューション:

[実行]-> [実行構成...]-> [ターゲット]タブ-> [追加のエミュレータコマンドラインオプション]に移動します。そこに追加:

-netspeed full -netdelay none

エミュレータを閉じて、もう一度実行します。

これを行った後、アップロードの時間は2分から8秒になりました。


編集: Skypeを終了すると、エミュレータのアップロードがはるかに速くなることもわかりました。

6
Uriel Frankel

入手可能な最速のエミュレータは、Android搭載のVMWareマシンです。

私のゲーム、Elastic Worldを開発しているときに、同じ問題に悩まされていました。エミュレータが起動するまで数分待った後、ゲームは最大20 FPSで実行されていました。ローエンドでもAndroidデバイスでは60 FPSを簡単に取得できました。アップロード速度は非常に遅かったです。

したがって、私はVMWareに移動しましたAndroidマシン、このサイトからの指示に従って: http://www.Android-x86.org/documents/installhowto/

同じゲームループが250 FPSで実行されるようになりました。 (この速度ではプレイできず、ゲームは最大60 FPSに制限されていますが、この制限をオーバーライドすると250 FPSになります)

Eclipseがビルドプロセスを終了したら、ゲームが仮想マシンに表示されるまで1〜5秒待つ必要があります。そして、私は古いCore2Duoを実行しています

5
Pedro Soares

アプリケーションのアップロード中にエミュレータで遊んでください。私はティーピーに完全に同意します。待ち時間が4分から30秒に短縮されました。

5
Kalaji

私は同じ問題を抱えています、Android 4,6MBのようなアプリケーションを開発しています。エミュレータにアップロードして実行するには、おそらく50〜60秒かかります。私はしません。これは通信の問題だと思う。

5
Android-Droid

これは古いトピックであることはわかっていますが、実際にこの問題の解決策があると思います。

まず、次のようにnetspeed引数なしでエミュレータを起動する必要があります。

emulator -avd <name>

起動したら、Telnetを使用してエミュレータにログインします。エミュレーターウィンドウの上部から、またはadbデバイスを実行して、エミュレーターのシリアル番号を確認することで、ポートを取得できます。

telnet localhost 5554

Telnetを使用してログインした後、次のコマンドを発行して、エミュレーターに非常に高いネットワーク速度を使用させる必要があります。

network speed 500000

その後、次のコマンドを使用してtelnetでこの設定を確認できます

network status

どちらを返す必要があります

Current network status:
  download speed:   500000000 bits/s (61035.2 KB/s)
  upload speed:     500000000 bits/s (61035.2 KB/s)

APKをインストールしようとすると、パフォーマンスが劇的に向上するはずです。私の場合は260秒から18秒になりました。

4
Andy

これはAVDの問題ではありません。それはEclipseの問題であり、パラメーターのジャングルと呼べるものの中でそれを変更する方法があるかどうかはわかりません。

簡単に言うと、次のコマンドを使用して、コンソールコマンドで自分でエミュレータを起動できます。

emulator.exe -avd MyAVDName -netspeed full -netdelay none

素敵なパラメータですが、Eclipseがそれを使用しないのはなぜですか?一部のEclipseコーダーはそれをデフォルトにする必要があります。別の解決策は、IntelliJ IDEAに切り替えることです。それは見事にあなたの古い不格好なIDEを新鮮でより良いもので置き換えます。

4
Rubarb

大声で考えるだけ:

事実はわかりませんが、このスローダウンの原因はAndroidアプリケーションごとにDalvikの独自のインスタンスがあるためですVM別のユーザーとプロセスとして実行します。アプリケーションを閉じたと考えると、Androidは、アプリケーションを再起動した場合に備えて、プロセス(間違いなくVM)を維持している可能性があります。これはウィンドウのプリフェッチ動作に似ています。

アプリケーションを再実行するとき、ソースを変更した後、Androidはおそらくキャッシュされたインスタンスを破棄する必要があります。同じエミュレータインスタンスに再デプロイする場合に気付く追加の遅延は、 VMおよびアプリケーションを正常にシャットダウンするのにかかるコストのため。

2
Code Poet

以前の投稿でティーピーが言ったことについて詳しく説明すると、アップロードフェーズで既に実行されているAVDをいじくり回した場合、それがかなり速く完了し(5秒vs 60秒)、インストールしてすぐに実行できることがわかりました当時の。これは4.0.3 AVDの場合です。他の人はまだ試していません。

1
sdfsdf sdfsdf

エミュレータRAM=を1024に設定してみてください。

1
Paulo Barros

同じ問題が発生しますが、MacBook ProとDellラップトップを使用して同じアプリケーションをアップロードしたため、OSに何らかの問題があると確信しています。 Macでは大幅に低くなります。

ただし、このWindows搭載のDellラップトップでは、実際のAndroidデバイスへのアップロードははるかに高速です。

まだインストールしていない「Google USB Driverパッケージ」に関連しているのではないかと思ったのですが、インストールしても何も変わりません。

1
David

代替方法:

ApkファイルをホストするためにPCにFTPサーバーをセットアップすると、AndroidエミュレーターWebブラウザーでapkファイルをダウンロードし、adbを使用してアプリを直接インストールできます。

または

Androidエミュレータにsambaクライアントをインストールし、PCでapkファイルを共有してから、apkファイルをエミュレータにコピーし、adbを使用してアプリを直接インストールします。

上記の方法はすべて、adb installよりも高速です。

1
Sadegh

私もこれを見ました。これは、同じAVDを使用している場合に役立つものです。 AVDのユーザーデータをワイプします。これを実行すると、アプリの読み込みがさらに速くなり、数秒かかります。

0
user1010160

これはWindowsで機能するかもしれませんが、

タスクマネージャーを起動します->プロセスタブ-> emulator.exeを探します。

右クリックして優先度を高に設定します

作業が終わったら、通常に設定することを忘れないでください。

また、chromeのような大量のメモリを必要とする不要なアプリケーションを閉じ、Firefoxは不要なときに閉じることができます。

0
1234567

ターミナル/コンソールでadb -e Shellを使用してAVDにシェルし、apkがアップロードされているtmpディレクトリに移動しますcd /data/local/tmp次にls -lを実行して、現在のファイルサイズを確認します。そこに座って上矢印キーを押し続けると、Enterキーを押すとls -lをすばやく繰り返して、アップロードが劇的に速くなることがわかりました。ファイルサイズが大きくなるにつれて、進行状況を確認できます。

これはおそらく、他の人が述べたAVDでクリックする効果に似ています。

私はMacを使っています。 WindowsとLinuxで同じかどうかはわかりません。

0
pinch

ばかげた質問-あなたはいくつかのAVDでそれを試しましたか?あなたの1つのAVDが何らかの方法でめちゃくちゃになっている可能性があります。

0
zmbq

エミュレータでAPKをアップロードしている間、できる限りエミュレータとやり取りします。アップロード中にエミュレータのランダムなボタンを押すと、アップロードに5〜6分かかる前にアップロードが早くなりますが、今では15〜20秒しかかかりません。

0
Muaz Usmani