Ich möchte meine Anwendung auf Fälle geringer Netzwerkkonnektivität testen. Was ist der beste Weg, außer im Aufzug zu stehen? Ich habe versucht, mein Telefon in eine Aluminiumfolie zu wickeln, aber es hat nicht viel geholfen.
Ich muss es auf einem realen Gerät testen, nicht in einem Emulator.
android
connectivity
Maggie
quelle
quelle
Antworten:
Sie können hierfür den Emulator verwenden. Schauen Sie sich diese Seite an: Android Emulator . Achten Sie auf die nächsten beiden Argumente:
-netdelay <delay>
-netspeed <speed>
Referenzgeschwindigkeiten bei steigenden kbps:
quelle
tc
festlegen oder den Befehl (von der Busybox) verwenden.Das klingt vielleicht etwas verrückt, aber ein Mikrowellenherd dient als Mikrowellenschutz. Wenn Sie Ihr Gerät in einen Mikrowellenherd stellen (schalten Sie den Mikrowellenherd NICHT ein, während sich Ihr Gerät im Inneren befindet!), Verringert sich die Signalstärke erheblich. Es ist definitiv besser als in einem Aufzug zu stehen ...
quelle
Da iPhones Option Entwickler auf WiFi Tethering anwenden, können Sie ein iPhone bekommen , das hat
iOS 6
und oben (und eingestellt wurde , umuse for developments
mit demxcode
), stellen sie die gewünschte Netzwerkprofil zu emulieren, schließen Sie Ihr Android - Gerät seine Hotspotquelle
Update für Android Studio v 1.5 oder höher
Wie @LouMorda in einem Kommentar unten erwähnt hat
Emulator
im ursprünglichen Beitrag erwähnte Tab in Android Studio v 1.5 entfernt.Jetzt haben sie diese Einstellungen in den Simulatoreinstellungen in platziert
AVD Manager
.So greifen Sie auf diese Einstellungen zu:
Tools -> Android -> AVD Manager
Edit AVD
Schaltfläche (Stiftsymbol)Network Settings
können auf dieShow Advanced Settings
Schaltfläche zugreifen, indem Sie auf die Schaltfläche klickenHier ist ein Screenshot, wie es aussehen kann:
Originaler Beitrag
Für alle, die Android Studio IDE verwenden:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
Sie RegisterkarteNetwork Speed
undNetwork Latency
zur Simulation verschiedener Geschwindigkeiten und Latenzen usw. ÄndernAlternativ können Sie verschiedene Argumente in das
Additional command line options
Textfeld eingeben, wie in der Antwort von @ inazaruk erwähnt.Der folgende Screenshot beschreibt, wie dieser
Run Configuration
Bildschirm aussieht:Ich weiß, dass es etwas spät ist, diese Frage zu beantworten, aber ich hoffe, dies hilft anderen, die mit ähnlichen Problemen konfrontiert sind!
Bearbeiten
Für alle, die Eclipse verwenden, siehe die Antwort von @ Abhi unten.
quelle
Ich weiß, dass es eine alte Frage ist, aber ...
Einige Telefone haben heutzutage die Einstellung, nur 2G zu verwenden. Es ist perfekt, um langsames Internet auf einem realen Gerät zu simulieren.
quelle
Jahre alt, aber hey, ich werde mich mit meiner narrensicheren Methode bei Genymotion einschalten.
Laden Sie die kostenlose Testversion von Charles herunter: http://www.charlesproxy.com/download/
Es installieren
Klicken
Proxy -> Throttle Settings
Richten Sie Ihre HTTP-Drosselgeschwindigkeit ein
Schließen Sie das Fenster
Klicken Sie
Proxy -> Throttling
, um den Gashebel zu aktivierenÖffnen Sie einen Genymotion-Emulator
Öffnen Sie die WLAN-Einstellungen
Drücken Sie lange auf die aktivierte WLAN-Verbindung
Klicken
Modify Network
Klicken
Show Advanced Options
Set
Proxy
zuManual
Stellen Sie das
Proxy hostname
auf10.0.3.2
Stellen Sie das
Port
auf8888
Klicken
Save
Und jetzt wird Ihr Netzwerk gedrosselt!
quelle
Sie können auch die langsame Internetverbindung auf einem echten Android-Gerät testen:
Getestet mit Samsung Galaxy S8 + Android 8.0.0
Gehen Sie zu Einstellungen -> Verbindung -> Mobiles Netzwerk -> und wählen Sie im Netzwerkmodus aus, ob Sie nur 2G- oder 3G- Verbindungen verwenden möchten
quelle
Ich habe eine Strategie, um Ihr Problem zu lösen. Sie können die Proxy-Anwendung verwenden, um Ihren Netzstatus zu ändern oder zu überwachen. zB Charles .
Sie sollten die Standardkonfiguration des Charles wie im folgenden Bild ändern, das ich gepostet habe.
Und schließlich werden Sie feststellen, dass der Nettostatus in ein niedrigeres Tempo umgewandelt wurde.
quelle
Einfache Möglichkeit, Ihre Anwendung mit geringer / schlechter Verbindung im Emulator zu testen:
Gehen Sie zu Ausführen > Konfigurationen ausführen , wählen Sie Ihre Android-Anwendung aus und wechseln Sie dort zur Registerkarte Ziel . Schauen Sie sich die Startparameter des Emulators an . Hier können Sie die Netzwerkgeschwindigkeit und die Netzwerklatenz einfach ändern.
quelle
Es gibt eine einfache Möglichkeit, niedrige Geschwindigkeiten auf einem realen Gerät zu testen, das anscheinend übersehen wurde. Es erfordert einen Mac und eine Ethernet- (oder eine andere kabelgebundene) Netzwerkverbindung.
Aktivieren Sie die Wifi-Freigabe auf dem Mac, verwandeln Sie Ihren Computer in einen Wifi-Hotspot und verbinden Sie Ihr Gerät damit. Verwenden Sie Netlimiter / Charles Proxy oder Network Link Conditioner (möglicherweise bereits installiert), um die Geschwindigkeit zu steuern.
Weitere Informationen und Informationen zu den Geschwindigkeiten, die Sie testen sollten, finden Sie unter: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -verbindungen /
quelle
In Android Studio beim Ausführen eines Emulators:
1- Klicken Sie unten in der Emulator-Seitenleiste auf die Schaltfläche Einstellungen
2- Gehen Sie zu Cellular
3- Stellen Sie den Netzwerktyp ein
quelle
Facebook hat so etwas wie Augmented Traffic Control gebaut . Eine kurze Zusammenfassung von ihrer GitHub-Seite:
Sie finden es hier auf GitHub: https://github.com/facebook/augmented-traffic-control
Sie haben auch einen Blog-Beitrag darüber geschrieben: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
quelle
Ich bin überrascht, dass niemand dies erwähnt hat. Sie können über Bluetooth eine Verbindung herstellen und diese um mehr als zehn Meter (oder weniger bei Hindernissen) voneinander trennen. Du hast eine wirklich schlechte Verbindung. Keine Mikrowelle, kein Aufzug, keine Software erforderlich.
quelle
Oder auf einem tatsächlichen Gerät können Sie unter Einstellungen -> Mobilfunknetze -> Bevorzugte Netzwerktypen den langsamsten verfügbaren auswählen ... Natürlich ist dies sehr begrenzt, aber für einige Testzwecke kann dies ausreichen.
quelle
UPDATE auf dem Android Studio AVD:
Keine Mikrowellen oder Aufzüge :)
quelle
Für und Mac OS-Benutzer können Sie den Network Link Conditioner verwenden, der von Apple heruntergeladen werden kann. Stellen Sie es als AP auf dem Mac ein und alle Divices können es verbinden.
Sie können entweder Facebook Open Source Tools ATC verwenden http://facebook.github.io/augmented-traffic-control/
quelle
Möchten Sie keine Netzwerkverbindung oder nur eine langsame Netzwerkverbindung testen? In diesem Fall können Sie den
Settings > Wireless & networks > Airplane mode
Flugzeugmodus aktivieren. Auf diese Weise können Sie die Nichtverfügbarkeit des Netzwerks auf einem tatsächlichen Gerät testen.quelle
Gehen Sie zu Ausführen> Konfigurationen ausführen, wählen Sie Ihre Android-Anwendung aus und wechseln Sie dort zur Registerkarte Ziel. Nehmen Sie die Änderungen wie in der Abbildung gezeigt vor.
quelle
Ich hatte einen halben Tag mit diesem Problem zu kämpfen, schließlich kam ich zu dieser Lösung:
Das Testen auf einem realen Gerät macht insgesamt wenig Sinn, da Sie viel durchmachen müssen, damit es funktioniert. Der einzig logische Weg, um echte Tests durchzuführen, besteht darin, Ihr Telefon mit einem Mobilfunknetz von geringer Qualität wie EDGE zu verbinden, sofern Ihre Telefongesellschaft dies bereitstellt. Sie können dies versuchen, indem Sie
*#*#4636#*#*
in der Telefon-App wählenDer ursprüngliche Android-Emulator ist viel zu langsam zum Testen und erreicht nicht mehr als die oben genannte Lösung.
Der beste Weg, dies zu tun, ist die Verwendung von Genymotion . Es ist ein Android-Emulator mit einer viel besseren Leistung als die Original-AVDs und die Version für den persönlichen Gebrauch ist kostenlos.
Nachdem Sie Ihr virtuelles Gerät in Genymotion erstellt haben, führen Sie einfach dieses Lernprogramm durch , um einen Proxy für das Gerät festzulegen .
Führen Sie auf Ihrem Host-Computer einen Proxyserver aus, der beispielsweise schlechte Netzwerkbedingungen simuliert Crapify oder Toxiproxy simuliert (ich habe nur den ersteren getestet), und Sie können loslegen .
Aktualisieren:
Ich habe gerade festgestellt, dass Sie dieselbe Strategie auch mit echten Geräten wählen können. Ich fühle mich wie ein Idiot, weil ich es nicht früher bemerkt habe. Starten Sie einfach einen Crapify-Proxy auf Ihrem Computer, stellen Sie Ihren Telefon-Proxy auf die lokale Adresse Ihres Computers ein und voila, Sie haben beschissenes Internet auf Ihrem Telefon.
quelle
Wie von @VicVu Charles (oder einem anderen Proxy-Tool) vorgeschlagen, ist dies ein einfacher Weg. Aber ich möchte hinzufügen, dass Sie dies auch mit Ihrem Gerät tun können, nicht nur mit Genymotion oder anderen Emulatoren. Der Prozess wird der gleiche sein:
Ändern Sie die WLAN-Einstellung Ihres Geräts / Emulators, um den manuellen Proxy zu verwenden. Legen Sie dann den Proxy-Hostnamen und -Port fest. A. Legen Sie den Hostnamen als IP Ihres Systems fest (rufen Sie die IP Ihres PCs / Macs mit ifconfig / ifconfig ab). b. Stellen Sie die Portnummer von Genymotion ein (überprüfen Sie die Proxy-Einstellungen in Charles).
PS: Ihr Gerät / Emulator MUSS dasselbe WLAN verwenden, da die von Ihnen verwendete IP-Adresse höchstwahrscheinlich die private IP-Adresse ist.
quelle
Öffnen Sie das Terminal in Android Studio und gehen Sie zu ../../Android/sdk/tools. Die ausführbare Datei 'emulator' sollte hier verfügbar sein.
Führen Sie ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name" aus.
Beispiel: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Erstellen Sie nun Ihre App und installieren Sie sie im Emulator.
Stellen Sie sicher, dass Sie Ihre Codeänderungen in der App haben, die das Zeitlimit für Ihre Anfrage festlegt und diese verarbeitet.
quelle
Gehen Sie einfach von Android Studio zum Android-Gerätemonitor und dann zu DDMS -> Emulator Control. Es gibt Eigenschaften für Geschwindigkeit und Latenz.
quelle
Ich fand netlimiter4 die beste Lösung, um Daten auf Emulatoren zu drosseln. Es bietet eine detaillierte Steuerung durch eine anständige Benutzeroberfläche und gibt Ihnen grafisches Feedback zum Datendurchsatz für jeden Prozess. Derzeit in einer kostenlosen Beta. Bildschirmfoto
http://www.netlimiter.com/products/nl4
Es gibt Apps im Play Store, mit denen Sie auf tatsächliche Geräte drosseln können, für die jedoch Root erforderlich ist (ich kann keine Ratschläge dazu geben, wie gut sie funktionieren, wenn überhaupt - YMMV.)
Suche nach Bradybound im Play Store, ich kann nicht mehr als einen Link posten.
quelle
hast du das versucht Einstellungen - Netzwerke - Mehr - Mobile Netzwerke - Netzwerkmodus - Wählen Sie das bevorzugte Netzwerk (z. B. 2G).
Eine andere Methode, die ich verwendet habe, wurde oben erwähnt. Verbindung über den iPhone-Hotspot herstellen. Hoffe das hilft.
quelle
Ich verwende Mitmproxy HTTPS-Proxy. https://mitmproxy.org/
Mitmproxy ist eine Open Source-Proxy-Anwendung, mit der HTTP- und HTTPS-Verbindungen zwischen beliebigen HTTP (S) -Clients abgefangen werden können. Es ermöglicht die Überwachung, Erfassung und Änderung dieser Verbindungen in Echtzeit. Änderungsanforderung, Antwort, Header, ... Zusätzlich können Sie verschiedene Anforderungen abfangen.
zB response_delay.py :
Das Ausführen dieses Kommentars verzögert dann alle Antworten vom Server:
Ein einfaches Tutorial finden Sie hier .
Weitere Skriptbeispiele finden Sie hier .
quelle
Sehr alter Beitrag, aber ich werde meine zwei Cent hinzufügen. Ich war SEHR zufrieden mit diesem Hardwareprodukt ( https://apposite-tech.com/products/linktropy-mini/ ), mit dem wir viele reale Bedingungen simulieren konnten. Lange Zeit hatten wir Probleme bei der Fehlerbehebung bei verschiedenen Problemen, die im Emulator oder im Flugzeugmodus funktionieren würden.
Wir haben verschiedene Profile eingerichtet, von Null-Konnektivität bis zu verschiedenen Stufen der Grenzkonnektivität mit unterschiedlichen Latenzgraden, Paketverlusten und Bitfehlern. Das Tolle daran ist, dass wir diese im laufenden Betrieb ändern können, ohne die App in einem Emulator neu starten zu müssen. Der Preis hat sich für unseren Shop absolut gelohnt und ist kinderleicht zu bedienen.
quelle
Ich musste das niedrige Internet auf einem nativen AndroidTV-Gerät drosseln und basierend auf dem, was ich gelesen habe, war die am besten geeignete Lösung, den Internetzugang direkt in meinem Router zu beschränken.
Gehen Sie zu den Router-Einstellungen (lokal ist es etwas wie 192.168.0.1) -> richten Sie den DHCP-Server ein (falls er nicht ausgeführt wird) -> wählen Sie die IP-Adresse eines Geräts und legen Sie die Einschränkung fest;
quelle