Symuluj niską łączność sieciową dla Androida [zamknięta]

zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.

chcesz poprawić to pytanie? Update the pytanie więc to on-topic {[3] } dla przepełnienia stosu.

Zamknięte 10 miesięcy temu .

Popraw to pytanie

Chciałbym przetestować moją aplikację pod kątem słabej łączności sieciowej. Poza staniem w windzie, jaki jest najlepszy sposób, aby to zrobić? Próbowałem zawijać telefon w aluminiowy folia, ale to niewiele pomogło.

Muszę to przetestować na prawdziwym urządzeniu, a nie na emulatorze.
Author: jww, 2011-08-11

27 answers

Możesz użyć emulatora do tego. Spójrz na tę stronę: Android Emulator . Zwróć uwagę na następne dwa argumenty:

  1. -netdelay <delay>

    Ustawia emulację opóźnienia sieci na . Wartość domyślna to none. Zobacz też tabela w emulacji opóźnienia sieciowego dla obsługiwanych wartości.

  2. -netspeed <speed>

    Ustawić emulację prędkości sieci na . Wartość domyślna jest pełna. Zobacz też tabela w emulacji prędkości sieci dla obsługiwanych wartości.

    Prędkości odniesienia w zwiększaniu kbps:

                            UP       DOWN
                      -------- ----------
    gsm   GSM/CSD         14.4       14.4
    hscsd HSCSD           14.4       57.6
    gprs  GPRS            28.8       57.6
    umts  UMTS/3G        384.0      384.0
    edge  EDGE/EGPRS     473.6      473.6
    hsdpa HSDPA         5760.0   13,980.0
    lte   LTE         58,000.0  173,000.0
    evdo  EVDO        75,000.0  280,000.0
    full  No limit           ∞          ∞
    
 127
Author: inazaruk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-22 15:51:12

To może zabrzmieć trochę dziwnie, ale kuchenka mikrofalowa służy jako osłona mikrofalowa. Dlatego umieszczanie urządzenia w kuchence mikrofalowej (nie włączaj kuchenki mikrofalowej, gdy urządzenie jest w środku!) spowoduje znaczny spadek siły sygnału. To zdecydowanie lepsze niż stanie w windzie...

 283
Author: Shams Shafiq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-25 16:16:05

Ponieważ iPhone developer opcja zastosowanie na wifi tethering, można uzyskać iPhone, który ma iOS 6 i powyżej (i został ustawiony na use for developments z xcode), ustawić go do emulowania żądanego profilu sieciowego, podłączyć urządzenie Android do jego hotspot

Tutaj wpisz opis obrazka

 108
Author: Kirill Kulakov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-27 06:53:42

Aktualizacja dla Android Studio v 1.5 lub nowszej
Jak @LouMorda wspomniał w komentarzu poniżej, zakładka Emulator wspomniana w oryginalnym poście została usunięta w Android Studio v 1.5.

Teraz umieścili te ustawienia w Ustawieniach symulatora w AVD Manager.
Aby uzyskać dostęp do tych ustawień:

  1. Wybierz Tools -> Android -> AVD Manager
  2. Kliknij przycisk Edit AVD (ikona ołówka)
  3. dostęp do pliku Network Settings można uzyskać po kliknięciu przycisku Show Advanced Settings

Oto zrzut ekranu jak to może wyglądać:
Ustawienia prędkości sieci i opóźnienia w Android Studio v 1.5

Oryginalny Post
Dla każdego, kto używa Android Studio IDE:

  1. przejdź do Run -> Edit Configurations
  2. Wybierz Android Application -> [Your App]
  3. Select Emulator tab
  4. tutaj możesz zmienić różne wartości dla Network Speed (prędkość Internetu) i Network Latency (opóźnienie), aby symulować różne prędkości i opóźnienia itp

Alternatywnie, możesz wprowadzić różne argumenty w polu tekstowym Additional command line options, Jak wspomniano w @inazaruk ' s odpowiedz.

Poniższy zrzut ekranu opisuje jak wygląda ten ekran Run Configuration:

Uruchom ekran konfiguracji w Android Studio beta 0.8.6

Wiem, że trochę za późno, aby odpowiedzieć na to pytanie, ale mam nadzieję, że pomoże to innym borykającym się z podobnymi problemami!

Edit
Dla każdego, kto używa eclipse, zobacz @Abhi odpowiedź poniżej.

 76
Author: S1LENT WARRIOR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-12 11:48:20

Wiem, że to stare pytanie, ale...

Niektóre telefony mają obecnie ustawienie do korzystania tylko z 2G. Jest idealny do symulacji powolnego Internetu na prawdziwym urządzeniu.

Tutaj wpisz opis obrazka

 53
Author: Pkmmte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-13 10:39:52

Lat, ale hej, będę się z moją niezawodną metodą z Genymotion.

  • Pobierz bezpłatną wersję próbną Charles: http://www.charlesproxy.com/download/

  • Install it

  • KlikProxy -> Throttle Settings

  • Skonfiguruj prędkość dławienia HTTP

  • Zamknij okno

  • Kliknij Proxy -> Throttling, aby włączyć przepustnicę

  • Otwórz Genymotion emulator

  • Otwórz ustawienia wifi

  • Długie naciśnięcie włączonego połączenia wifi

  • Klik Modify Network

  • Klik Show Advanced Options

  • Ustaw Proxy na Manual

  • Ustaw Proxy hostname na 10.0.3.2

  • Ustaw Port na 8888

  • Klik Save

A teraz twoja sieć zostanie zdławiona!

 35
Author: VicVu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-04 23:12:50

Możesz również przetestować powolną łączność z Internetem na prawdziwym urządzeniu z Androidem:

Testowany z Samsung Galaxy S8 + Android 8.0.0

Przejdź do Ustawienia -> połączenie -> Sieć komórkowa - > i pod networkmode możesz wybrać tylko 2G lub 3G połączenia

 16
Author: rm -rf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-11 08:06:39

Mam jedną strategię, aby rozwiązać twój problem. Za pomocą aplikacji proxy można modyfikować lub monitorować stan sieci. np. Charles .

Powinieneś zmienić domyślną konfigurację Charles ' a, tak jak na poniższym zdjęciu, które zamieściłem.

Otwórz Ustawienia Przepustnicy

Ustawianie Ustawienia Przepustnicy

I wreszcie odkryjesz, że stan sieci został ukształtowany w niższym tempie.

Przed

Ustawienie Po

 15
Author: Benchur Wong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-15 07:11:06

Istnieje prosty sposób testowania niskich prędkości na prawdziwym urządzeniu, który wydaje się być przeoczony. Wymaga komputera Mac i połączenia sieci ethernet (lub innego przewodowego).

Włącz udostępnianie Wifi na komputerze Mac, zmieniając komputer w hotspot Wifi, podłącz urządzenie do tego. Użyj Netlimiter/Charles Proxy lub kondycjonera łącza sieciowego (który może być już zainstalowany), aby kontrolować prędkości.

Aby uzyskać więcej szczegółów i zrozumieć, jakie prędkości należy przetestować na sprawdź: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor-connections/

 9
Author: James_OSM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-06 17:44:26

Łatwy sposób na przetestowanie aplikacji z niskim / złym połączeniem w emulatorze:

Go Run > Uruchom konfiguracje, Wybierz swoją aplikację na Androida, a następnie przejdź do zakładki Target. Wygląd parametry uruchomienia emulatora . Tutaj możesz łatwo modyfikować prędkość sieci i opóźnienia sieci.

 8
Author: pgarriga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-08 13:27:12

Dziwi mnie, że nikt o tym nie wspomniał. Możesz związać przez Bluetooth i rozdzielić je o dziesięć metrów (lub mniej z przeszkodami). MASZ Prawdziwe złe połączenie. Nie ma mikrofalówki, nie ma windy, nie potrzebne oprogramowanie.

 8
Author: Haemin Yoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-31 16:14:49

W Android Studio, podczas uruchamiania emulatora:

1-Naciśnij przycisk Ustawienia na dole paska bocznego emulatora

2 - Przejdź do komórki

3-Ustawiony Typ Sieci

Zrzut ekranu

 7
Author: Mert Kahraman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-24 09:19:09

Lub na rzeczywistym urządzeniu można przejść do Ustawienia - > Sieci komórkowe - > preferowane typy sieci i wybrać najwolniejsze dostępne... Oczywiście jest to bardzo ograniczone, ale dla niektórych celów testowych może to wystarczyć.

 6
Author: jpm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-25 10:32:38

Facebook zbudował coś o nazwie Rozszerzona kontrola ruchu . Krótkie podsumowanie ze strony GitHub:

Augmented Traffic Control (ATC) jest narzędziem do symulacji warunków sieciowych. Umożliwia kontrolowanie połączenia urządzenia z Internetem. Programiści mogą używać ATC do testowania aplikacji w różnych warunkach sieciowych, łatwo emulując szybkie, mobilne, a nawet poważnie uszkodzone sieci. Aspekty połączenia, które można kontrolować include:

  • Szerokość pasma
  • latencja
  • utrata pakietów
  • uszkodzone pakiety
  • zamawianie pakietów

Aby móc kształtować ruch sieciowy, ATC musi działać na urządzeniu, które kieruje ruch i widzi rzeczywisty adres IP urządzenia, na przykład Twoją bramę sieciową. Umożliwia to również dowolnym urządzeniom, które kierują się przez ATC, kształtowanie ich ruchu. Ruch można kształtować/rozpakowywać za pomocą interfejsu internetowego umożliwiającego dowolne urządzenia z przeglądarką internetową do korzystania z ATC bez potrzeby stosowania aplikacji klienckiej.

Znajdziesz go tutaj na Githubie: https://github.com/facebook/augmented-traffic-control

Napisali też o tym wpis na blogu: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/

 6
Author: Anirudh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Aktualizacja na Android studio AVD:

  1. open avd manager
  2. Tworzenie / edycja AVD
  3. Kliknij Ustawienia zaawansowane
  4. Wybierz preferowane ustawienie łączności

Żadnych kuchenek mikrofalowych i wind:)

 3
Author: nurnachman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-18 08:13:41

Dla użytkownika i mac OS można użyć kondycjonera łącza sieciowego, który można pobrać z apple. ustaw go jako AP na Macu i wszelkie divices może podłączyć go.

Możesz użyć narzędzi open source facebook ATC http://facebook.github.io/augmented-traffic-control/

 3
Author: Lucas Liu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-22 08:34:20

Czy chcesz przetestować Brak połączenia sieciowego, czy tylko wolne połączenie sieciowe? Jeśli to pierwsze, możesz przejść do Settings > Wireless & networks > Airplane mode i włączyć tryb samolotowy. To pozwoli Ci przetestować niedostępność sieci na rzeczywistym urządzeniu.

 2
Author: David Conrad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-23 15:45:49

Idź Uruchom > Uruchom konfiguracje, Wybierz aplikację na Androida, a tam przejdź do zakładki cel. Czy zmiany jak pokazano na rysunku.

Tutaj wpisz opis obrazka

 2
Author: Abhi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-27 09:16:22

Zmagałem się z tym problemem przez pół dnia, w końcu doszedłem do tego rozwiązania:

  • Testowanie na prawdziwym urządzeniu nie ma większego sensu, ponieważ musisz wiele przejść, aby to działało. Jedynym logicznym sposobem na osiągnięcie rzeczywistych testów jest połączenie telefonu z siecią komórkową niskiej jakości, taką jak EDGE, jeśli firma telefoniczna to zapewnia. Możesz spróbować to zrobić, wybierając *#*#4636#*#* W APLIKACJI telefonu

  • Oryginalny emulator Androida jest zbyt wolny do testowania i nie osiąga więcej niż rozwiązanie powyżej.

Najlepszym sposobem na to jest użycie Genymotion . Jest to emulator Androida o znacznie lepszej wydajności niż oryginalne AVDs, a wersja do użytku osobistego jest bezpłatna.

Emulator Genymotion

Po utworzeniu wirtualnego urządzenia w Genymotion, wystarczy przejść przez Ten samouczek , aby ustawić proxy dla urządzenia.

Uruchom serwer proxy na komputerze hosta, który symuluje złe warunki sieciowe, jak Crapify lub Toxiproxy (testowałem tylko ten pierwszy) i jesteś gotowy.

Aktualizacja:

Właśnie zdałem sobie sprawę, że możesz wybrać tę samą strategię z prawdziwymi urządzeniami. Czuję się jak idiota, że nie zdałem sobie z tego sprawy wcześniej. Wystarczy uruchomić serwer proxy Crapify na komputerze, ustawić serwer proxy telefonu na lokalny adres komputera i voila, masz gówniany internet w telefonie.
 2
Author: Iman Akbari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 06:54:46

Jak sugeruje @ VicVu Charles (lub jakiekolwiek inne narzędzie proxy)jest łatwiejszym sposobem. Ale chciałbym dodać, że można to zrobić również ze swoim urządzeniem, a nie tylko genymotion lub innych emulatorów. Proces będzie taki sam:

Zmodyfikuj ustawienia wifi swojego urządzenia / emulatora, aby używać ręcznego serwera proxy. A następnie Ustaw nazwę i port hosta Proxy a. Ustaw nazwę hosta jako ip systemu (Pobierz adres IP komputera pc / mac za pomocą ifconfig / ifconfig) B. Ustaw numer portu genymotion (sprawdź ustawienia proxy w Karol)

PS: Twoje urządzenie/emulator musi używać tego samego wifi, ponieważ ip, którego używasz, najprawdopodobniej będzie prywatnym ip.

 1
Author: Ankit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-03 07:26:09
  1. Otwórz terminal inAndroid Studio i przejdź do ../../ Android / sdk / tools. plik wykonywalny 'emulator' powinien być dostępny tutaj.

  2. Uciekaj ./emulator-netdelay "delay_in_millis" - avd "emulator_device_name"

    Ex: ./ emulator-netdelay 60000-avd Nexus_5_API_21

  3. Teraz Zbuduj swoją aplikację i zainstaluj ją w emulatorze.

  4. Uruchom scenariusz w aplikacji.

Upewnij się, że masz zmiany kodu w aplikacji, która ustawia timeout na Twoim poproś i załatw to.

 1
Author: cgr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-25 09:50:46

Wystarczy przejść do Android device monitor Z Android studio, a następnie DDMS - > Emulator Control.Pojawią się właściwości prędkości i opóźnienia.

 1
Author: Lester,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-03 11:15:10

Uznałem netlimiter4 za najlepsze rozwiązanie do dławienia danych do emulatorów. Zapewnia szczegółową kontrolę za pomocą przyzwoitego interfejsu graficznego i daje graficzne informacje zwrotne na temat przepustowości danych dla każdego procesu. Obecnie w darmowej wersji beta. screenshot

Http://www.netlimiter.com/products/nl4

Istnieją aplikacje dostępne w Sklepie play, aby Dławić rzeczywiste urządzenia, ale wymagają roota (nie mogę udzielić żadnej porady, jak dobrze działają, jeśli w ogóle - YMMV.)

Szukaj bradybound w Sklepie play, nie mogę wrzucić więcej niż jednego linku..

 1
Author: Michael.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-15 18:41:44

Próbowałeś tego? Ustawienia-sieci-Więcej-Sieci komórkowe - tryb sieciowy-wybierz preferowaną sieć (na przykład 2G).

Inna metoda, której użyłem, była wspomniana powyżej. Połącz się przez hot spot iPhone ' a. Mam nadzieję, że to pomoże.

 1
Author: Charlie Brown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-27 10:57:04

Używam mitmproxy HTTPS proxy. https://mitmproxy.org/

Mitmproxy to aplikacja open source proxy, która umożliwia przechwytywanie połączeń HTTP i HTTPS między dowolnym klientem HTTP (S). Pozwala monitorować, przechwytywać i zmieniać te połączenia w czasie rzeczywistym. Żądanie zmiany, odpowiedź, nagłówek,... Dodatkowo możesz przechwytywać różne żądania.

Np. response_delay.py :

from mitmproxy import http
from time import sleep

def response(flow: http.HTTPFlow) -> None:
    sleep(5.0)

Następnie wykonanie tego komentarza opóźnia wszystkie odpowiedzi z Serwer:

mitmproxy --cert \*.asdf.at=./cert.pem --scripts response_delay.py

W mojej aplikacji używam przypinania certyfikatu, więc musisz dodać certyfikat (prywatny + publiczny)

Cat private.key public.klucz > cert.pem

Znajdziesz tutaj prosty samouczek .

Inne przykłady skryptów znajdziesz tutaj.

 1
Author: Manuel Schmitzberger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 15:33:17

Bardzo stary post, ale dodam dwa grosze. Byłem bardzo zadowolony z tego produktu sprzętowego ( https://apposite-tech.com/products/linktropy-mini / ), co pozwoliło nam symulować wiele rzeczywistych warunków. Przez długi czas mieliśmy problemy z rozwiązywaniem różnych problemów, które działały w emulatorze lub w trybie samolotowym.

Mamy kilka różnych profili skonfigurowanych od zerowej łączności do różnych etapów łączności krańcowej, z różnym stopniem opóźnienia, utrata pakietów i błędy bitowe. Wspaniałą rzeczą jest to, że możemy je zmieniać w locie bez konieczności ponownego uruchamiania aplikacji w emulatorze. Cena była całkowicie warta dla naszego sklepu i jest martwa prosta w użyciu.

 0
Author: Benjamin Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-02 15:35:30

Musiałem Dławić niski internet na urządzeniu natywnym AndroidTV i na podstawie tego, co czytałem, najbardziej odpowiednim rozwiązaniem było ograniczenie dostępu do Internetu bezpośrednio w moim routerze.
Przejdź do ustawień routera (lokalnie jest to smth jak 192.168.0.1) - > skonfiguruj serwer DHCP (jeśli nie jest uruchomiony) - > wybierz adres IP urządzenia i ustaw ograniczenie;

 0
Author: Artem N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-16 15:39:05