Symuluj niską łączność sieciową dla Androida [zamknięta]
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 pytanieChciał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.27 answers
Możesz użyć emulatora do tego. Spójrz na tę stronę: Android Emulator . Zwróć uwagę na następne dwa argumenty:
-
-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.
-
-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 ∞ ∞
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...
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
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ń:
- Wybierz
Tools -> Android -> AVD Manager
- Kliknij przycisk
Edit AVD
(ikona ołówka) - dostęp do pliku
Network Settings
można uzyskać po kliknięciu przyciskuShow Advanced Settings
Oto zrzut ekranu jak to może wyglądać:
Oryginalny Post
Dla każdego, kto używa Android Studio IDE:
- przejdź do
Run -> Edit Configurations
- Wybierz
Android Application -> [Your App]
- Select
Emulator
tab - tutaj możesz zmienić różne wartości dla
Network Speed
(prędkość Internetu) iNetwork 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
:
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.
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.
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
Klik
Proxy -> 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
naManual
Ustaw
Proxy hostname
na10.0.3.2
Ustaw
Port
na8888
Klik
Save
A teraz twoja sieć zostanie zdławiona!
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
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.
I wreszcie odkryjesz, że stan sieci został ukształtowany w niższym tempie.
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/
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.
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.
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
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ć.
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/
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:
- open avd manager
- Tworzenie / edycja AVD
- Kliknij Ustawienia zaawansowane
- Wybierz preferowane ustawienie łączności
Żadnych kuchenek mikrofalowych i wind:)
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/
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.
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.
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.
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.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.
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
Otwórz terminal inAndroid Studio i przejdź do ../../ Android / sdk / tools. plik wykonywalny 'emulator' powinien być dostępny tutaj.
-
Uciekaj ./emulator-netdelay "delay_in_millis" - avd "emulator_device_name"
Ex: ./ emulator-netdelay 60000-avd Nexus_5_API_21
Teraz Zbuduj swoją aplikację i zainstaluj ją w emulatorze.
- Uruchom scenariusz w aplikacji.
Upewnij się, że masz zmiany kodu w aplikacji, która ustawia timeout na Twoim poproś i załatw to.
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.
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..
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.
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.
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.
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;
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