web-dev-qa-db-de.com

Langsame Uploads zum Android-Emulator

Ich habe gesucht, aber keine Fragen oder Antworten für meinen spezifischen Umstand gefunden. Ich habe eine schnelle neue Maschine mit viel Speicher unter Windows 7. Ich verwende das neueste Eclipse- und Android-SDK.

Wenn ich eine App starte, dauert es etwa 45 Sekunden, bis der Emulator startet (extrem schnell für den Emulator!), Und zwar vom Start der Ausführung bis zur Ausführung meiner App.

Wenn ich dann die App ändere und sie auf dem noch laufenden Emulator erneut ausführen, erhöht sich die Zeit auf über 70 Sekunden! Im Gegensatz zu allen anderen Beschwerden, die die Leute haben, ist ein Neustart des Emulators in meinem Fall schneller als mit der vorhandenen Instanz. Das gefällt mir nicht.

Hier sind die Zeiten:

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!

beim erneuten Ausführen nach dem Ändern der App, damit sie erneut geladen wird:

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!

Wie Sie sehen, dauert der Upload in den Emulator nur 5 Sekunden, wenn der Emulator neu gestartet wird. Mit einem laufenden Emulator dauert es fast eine Minute! Dies ist die Ursache für die verlängerte Nachlaufzeit. Dies ändert sich nicht, auch wenn ich die App auf dem Emulator deinstalliere, bevor Sie sie erneut ausführen.

Irgendwelche Ideen, was ich versuchen könnte, um das zu lösen? Es scheint ein Kommunikationsproblem zu sein, möglicherweise mit adb.

42
jfielding

Wie andere bereits bekannt gegeben haben, erhöht ein einfaches Klicken im Emulator beim Hochladen die Upload-Geschwindigkeit drastisch. Ich hatte das gleiche Problem und googelte nach einer Antwort, und das Ausprobieren dieses Tricks half mir. Ich verwende eine 2.3.3 AVD.

30
TommyN

Meine neue Entdeckung ist ein kleiner "Hack" wie Sie können Ihren Upload schneller machen . Mir wurde klar, dass die Fälle, in denen der Upload schneller war, durch meine Interaktion verursacht wurden. Wenn ich also eine neue App hochlade, ohne aktiv mit dem Emulator zu arbeiten, ist dies langsam. Wenn ich jedoch damit arbeite (Testen meiner Anwendung, Beenden, Öffnen der Anwendungsliste usw.), ist der Upload VIEL schneller - in meinem Fall ca. 15 Sekunden statt fast 2 Minuten.

Ich denke also, dass das Problem irgendwie in den Leistungseinstellungen des Emulators liegt. Wenn ich nichts unternehme, meint er, dass keine große Leistung erforderlich ist, wird der Emulator in einen wirtschaftlichen Zustand versetzt, sodass auch mein Upload langsam ist.

8
peter.bartos

Eine bessere Lösung:

Gehen Sie zu Ausführen -> Konfigurationen ausführen ... -> Registerkarte Ziel -> Zusätzliche Befehlszeilenoptionen für Emulatoren. Dort hinzufügen:

-netspeed full -netdelay none

Schließen Sie nun den Emulator und führen Sie ihn erneut aus.

Danach dauerte die Uploadzeit von 2 Minuten auf 8 Sekunden.


Edit: Ich habe auch festgestellt, dass das Beenden von Skype meinen Emulator wesentlich schneller lädt.

6
Uriel Frankel

Der schnellste Emulator, den Sie bekommen können, ist eine VMWare-Maschine mit Android.

Bei der Entwicklung meines Spiels Elastic World hatte ich das gleiche Problem. Nachdem das Emulator einige Minuten gewartet hatte, lief es mit maximal 20 FPS. Selbst auf Low-End-Android-Geräten konnte ich problemlos 60 FPS erzielen. Die Uploadgeschwindigkeit war sehr langsam.

Also zog ich auf einen VMWare-Android-Computer um und folgte den Anweisungen auf dieser Website: http://www.Android-x86.org/documents/installhowto/

Die gleiche Spielschleife läuft jetzt mit 250 FPS. (Es ist bei dieser Geschwindigkeit nicht spielbar und ich habe das Spiel auf maximal 60 FPS begrenzt, aber diese Einschränkung überschreibt 250 FPS.)

Wenn Eclipse den Erstellungsprozess beendet, muss ich nur noch 1 bis 5 Sekunden warten, bis das Spiel auf der virtuellen Maschine angezeigt wird. Und ich habe ein altes Core2Duo

5
Pedro Soares

Spielen Sie mit dem Emulator, während Sie Ihre Anwendung hochladen. Ich bin mit dem Tipi völlig einverstanden. Es hat meine Wartezeit von 4 Minuten auf 30 Sekunden reduziert.

5
Kalaji

Ich habe das gleiche Problem. Ich entwickle eine Android-Anwendung, die etwa 4,6 MB groß ist, und es dauert etwa 50 bis 60 Sekunden, um sie auf den Emulator hochzuladen und auszuführen. Ich glaube nicht, dass dies ein Problem mit der Kommunikation ist . Die JVM ist langsam. Deshalb brauchen Sie etwas Zeit, um Ihre APK hochzuladen und auszuführen. Ich glaube nicht, dass Sie etwas dagegen unternehmen können, es sei denn, Sie testen Ihre Anwendung auf einem Gerät.

5
Android-Droid

Ich weiß, das ist ein altes Thema, aber ich glaube, ich habe eine Lösung für dieses Problem.

Zuerst müssen Sie den Emulator ohne die folgenden netspeed-Argumente booten:

emulator -avd <name>

Nach dem Start melden Sie sich mit Telnet beim Emulator an. Sie können den Port vom oberen Rand des Emulatorfensters oder von Adb-Geräten abrufen und die Seriennummer des Emulators betrachten, der sich im Format Emulator-Port befindet (in den meisten Fällen ist dies 5554).

telnet localhost 5554

Nachdem Sie sich mit Telnet angemeldet haben, müssen Sie den folgenden Befehl eingeben, um den Emulator zu zwingen, eine sehr hohe Netzwerkgeschwindigkeit zu verwenden

network speed 500000

Sie können diese Einstellung anschließend in telnet mit dem folgenden Befehl überprüfen

network status

Was sollte zurückkehren

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

Wenn Sie jetzt versuchen, das APK zu installieren, sollten Sie feststellen, dass die Leistung erheblich gesteigert wird. In meinem Fall ging es von 260 auf 18 Jahre.

4
Andy

Dies ist kein Problem mit der AVD, es ist Eclipse das Problem, und ich weiß nicht, ob es eine Möglichkeit gibt, es innerhalb des sogenannten Dschungels der Parameter zu ändern.

Um es kurz zu machen, können Sie einen Emulator alleine mit einem Konsolenbefehl Starten, indem Sie Folgendes verwenden:

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

Nizza die Parameter, warum verwendet Eclipse es nicht? Einige Eclipse-Codierer sollten es als Standard festlegen . Eine andere Lösung ist der Wechsel zu IntelliJ IDEA. Es wird Ihren alten Klumpen IDE durch einen frischen und besseren ersetzen.

4
Rubarb

Einfach laut denken:

Ich weiß es nicht, aber ich frage mich, ob dies langsamer wird, weil Android-Anwendungen jeweils eine eigene Instanz des Dalvik VM haben und als separater Benutzer und Prozess laufen. Wenn Sie "denken", Sie hätten Ihre Anwendung geschlossen, hält Android möglicherweise den Prozess (definitiv die VM) am Leben, falls Sie die Anwendung neu starten. Dies ähnelt dem Vorabrufverhalten in Windows.

Wenn Sie die Anwendung nach dem Ändern der Quellen erneut ausführen, muss Android die zwischengespeicherte Instanz möglicherweise löschen. Die zusätzliche Verzögerung, die Sie im Falle einer erneuten Bereitstellung in derselben Emulatorinstanz bemerken, kann durch die Kosten verursacht werden, die durch das ordnungsgemäße Herunterfahren von VM und der Anwendung entstehen. 

2
Code Poet

Ich habe weiter ausgeführt, was der Tipi in einem früheren Beitrag gesagt hat. Ich habe festgestellt, dass ich, wenn ich während des Hochladens mit der bereits laufenden AVD-Datei arbeite, VIEL schneller fertig wird (5 Sekunden gegenüber 60 Sekunden) und ich bin installiert und laufe in einem Bruchteil der ganzen Zeit. Das ist mit einer 4.0.3 AVD. Ich habe die anderen noch nicht ausprobiert.

1
sdfsdf sdfsdf

Versuchen Sie, Ihren Emulator RAM auf 1024 zu setzen.

1
Paulo Barros

Ich habe das gleiche Problem, aber ich bin überzeugt, dass es etwas mit dem Betriebssystem zu tun hat, weil ich dieselbe Anwendung mit einem MacBook Pro und einem Dell-Laptop hochgeladen habe, was angesichts der Hardwarespezifikationen leistungsfähiger ist auf dem Mac deutlich niedriger.

Auf diesem Dell-Laptop mit Windows sind Uploads auf tatsächliche Android-Geräte jedoch wesentlich schneller.

Ich dachte, es könnte mit dem "Google USB Driver Package" zusammenhängen, das ich noch nicht installiert habe, aber nach der Installation hat sich nichts geändert.

1
David

Die alternativen Wege:

Einrichten eines FTP-Servers auf Ihrem PC für das Hosting von APK-Dateien. Jetzt können Sie APK-Dateien mit dem Android-Emulator-Webbrowser herunterladen und die App direkt mit adb installieren.

oder

Installieren Sie einen Samba-Client auf dem Android-Emulator und geben Sie apk-Dateien auf Ihrem PC frei. Kopieren Sie dann die apk-Dateien in den Emulator, und installieren Sie die App direkt mit adb.

Alle oben genannten Wege sind schneller als die Installation von Adb.

1
Sadegh

Ich habe das auch gesehen. Hier ist etwas hilfreich, vorausgesetzt, Sie haben die gleiche AVD verwendet. Danach würde die App einige Sekunden schneller wieder geladen.

0
user1010160

Das kann unter Windows funktionieren,

starten Sie den Task-Manager -> Prozesse-Registerkarte -> Suchen Sie nach emulator.exe. 

klicken Sie mit der rechten Maustaste und setzen Sie die Priorität auf Hoch 

vergessen Sie nicht, es nach der Arbeit auf "Normal" zu setzen.

auch das Schließen unerwünschter Anwendungen, die viel Speicher benötigen, wie Chrome und Firefox, kann geschlossen werden, wenn sie nicht benötigt werden.

0
1234567

In einem Terminal/einer Konsole hülle ich mit adb -e Shell in die AVD ein, gehe dann in das tmp-Verzeichnis, in das die apk hochgeladen wird, cd /data/local/tmp und dann ls -l, um die aktuelle Dateigröße anzuzeigen. Ich habe festgestellt, dass ich, wenn ich dort sitze und den Pfeil nach oben treffe, den ls -l schnell wiederhole, der Upload beschleunigt sich dramatisch. Sie können den Fortschritt beobachten, wenn die Dateigröße zunimmt.

Dies ist wahrscheinlich dem Effekt ähnlich, dass in der AVD herumgeklickt wird.

Ich bin auf einem Mac. Nicht sicher, ob es unter Windows oder Linux gleich ist. 

0
pinch

Dumme Frage - hast du es an mehreren AVDs ausprobiert? Es ist möglich, dass Ihre eine AVD auf irgendeine Weise versaut ist.

0
zmbq

Machen Sie so viel Interaktion mit dem Emulator wie möglich, während Sie die APK-Datei auf den Emulator hochladen. Wenn Sie beim Hochladen des Emulators beliebige Tasten drücken, wird der Upload frühzeitig gestartet, bevor der Upload 5-6 Minuten dauert. Jetzt dauert es nur noch 15 - 20 Sekunden.

0
Muaz Usmani