Я хотел бы протестировать свое приложение на предмет низкого сетевого подключения. Как лучше всего это делать, кроме как стоять в лифте? Я пытался обернуть телефон в алюминиевую фольгу, но это не сильно помогло.
Мне нужно проверить это на реальном устройстве, а не в эмуляторе.
android
connectivity
Мэгги
источник
источник
Ответы:
Вы можете использовать эмулятор для этого. Взгляните на эту страницу: Android Emulator . Обратите внимание на следующие два аргумента:
-netdelay <delay>
-netspeed <speed>
Скорости для справки при увеличении кбит / с:
источник
tc
команды (из busybox).Это может показаться немного сумасшедшим, но микроволновая печь служит защитным экраном. Поэтому, если вы поместите ваше устройство в микроволновую печь (НЕ включайте микроволновую печь, когда ваше устройство находится внутри!), Уровень сигнала значительно упадет. Это определенно бьет стоя внутри лифта ...
источник
Так как опция разработчика iPhone применяется при подключении к Wi-Fi, вы можете получить iPhone, который имеет
iOS 6
и выше (и был установленuse for developments
сxcode
), настроить его на эмуляцию нужного сетевого профиля, подключить ваше устройство Android к его точке доступа.источник
Обновление для Android Studio v 1.5 или более
поздней версии. @LouMorda упомянула в комментарии ниже, что
Emulator
вкладка, упомянутая в оригинальном сообщении, была удалена в Android Studio v 1.5.Теперь они разместили эти настройки в настройках симулятора в
AVD Manager
.Чтобы получить доступ к этим настройкам:
Tools -> Android -> AVD Manager
Edit AVD
кнопку (значок карандаша)Network Settings
Можно получить после нажатия наShow Advanced Settings
кнопкуВот скриншот того, как это может выглядеть:
Оригинальный пост
Для тех, кто использует Android Studio IDE:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
вкладкуNetwork Speed
иNetwork Latency
моделировать различные скорости и задержки и т. Д.Кроме того, вы можете ввести различные аргументы в
Additional command line options
текстовое поле, как указано в ответе @ inazaruk.На приведенном ниже снимке экрана показано, как
Run Configuration
выглядит этот экран:Я знаю, что уже поздно отвечать на этот вопрос, но я надеюсь, что это поможет другим, сталкивающимся с подобными проблемами!
Редактировать
Для тех, кто использует затмение, см . Ответ @ Abhi ниже.
источник
Я знаю, что это старый вопрос, но ...
Некоторые телефоны в настоящее время имеют настройку использования только 2G. Он идеально подходит для симуляции медленного интернета на реальном устройстве.
источник
Годы, но эй, я включу мой надежный метод с Genymotion.
Загрузите бесплатную пробную версию Charles: http://www.charlesproxy.com/download/
Установить его
щелчок
Proxy -> Throttle Settings
Настройте свои удушенные скорости HTTP
Закройте это окно
Нажмите,
Proxy -> Throttling
чтобы включить газОткройте эмулятор Genymotion
Откройте настройки Wi-Fi
Длительно нажмите включенное соединение Wi-Fi
щелчок
Modify Network
щелчок
Show Advanced Options
Установите
Proxy
вManual
Установите
Proxy hostname
для10.0.3.2
Установите
Port
для8888
щелчок
Save
И теперь ваша сеть будет ограничена!
источник
Вы также можете проверить медленное интернет-соединение на реальном устройстве Android:
Протестировано с Samsung Galaxy S8 + Android 8.0.0
Перейти к Настройки -> Подключение -> Мобильная сеть -> и под networkmode вы можете использовать только 2G или 3G соединения
источник
У меня есть одна стратегия, чтобы решить вашу проблему. Вы можете использовать приложение прокси для изменения или мониторинга вашего сетевого статуса. например, Чарльз .
Вы должны изменить конфигурацию Чарльза по умолчанию, как показано на следующем рисунке.
И, наконец, вы обнаружите, что сетевой статус был сформирован в более низком темпе.
источник
Простой способ проверить ваше приложение с низким / плохим соединением в эмуляторе:
Выберите « Выполнить» > « Выполнить настройки» , выберите приложение Android и перейдите на вкладку « Цель ». Посмотри параметры запуска Эмулятора . Здесь вы можете легко изменить скорость сети и задержку в сети.
источник
Существует простой способ тестирования низких скоростей на реальном устройстве, которое, кажется, упустили из виду. Для этого требуется Mac и сетевое (или другое проводное) сетевое соединение.
Включите общий доступ к Wi-Fi на Mac, превратив компьютер в точку доступа Wi-Fi, подключите к нему свое устройство. Используйте Netlimiter / Charles Proxy или Network Link Conditioner (который вы, возможно, уже установили) для контроля скорости.
Для получения более подробной информации и понять, какие скорости вы должны проверить при проверке: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -связностей /
источник
В Android Studio при запуске эмулятора:
1- Нажмите кнопку настроек внизу боковой панели эмулятора
2- Перейти к сотовой связи
3- Установить тип сети
источник
Facebook построили что - то под названием Augmented Traffic Control . Краткое резюме со страницы GitHub:
Вы можете найти его здесь на GitHub: https://github.com/facebook/augmented-traffic-control
Об этом они также написали в блоге: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
источник
Я удивлен, что никто не упомянул об этом. Вы можете привязать через Bluetooth, и разделить их на десять + метров (или меньше с препятствиями). У вас есть реальное плохое соединение. Без микроволновки, без лифта, без программного обеспечения.
источник
Или на реальном устройстве вы можете перейти в «Настройки» -> «Мобильные сети» -> «Предпочтительные типы сетей» и выбрать самый медленный из доступных ... Конечно, это очень ограничено, но для некоторых целей тестирования этого может быть достаточно.
источник
ОБНОВЛЕНИЕ на Android студии AVD:
Никаких микроволновок или лифтов :)
источник
Для пользователя Mac OS вы можете использовать Network Link Conditioner, который можно загрузить с Apple. установите его как AP на Mac, и любые устройства могут подключить его.
Вы можете использовать инструменты с открытым исходным кодом Facebook ATC http://facebook.github.io/augmented-traffic-control/
источник
Хотите проверить отсутствие сетевого подключения или просто медленное сетевое подключение? Если первое, вы можете перейти
Settings > Wireless & networks > Airplane mode
и включить режим полета. Это позволит вам проверить недоступность сети на реальном устройстве.источник
Выберите «Выполнить»> «Выполнить настройки», выберите приложение Android и перейдите на вкладку «Цель». Сделайте изменения, как показано на рисунке.
источник
Я боролся с этой проблемой в течение полдня, наконец я пришел к такому решению:
В целом, тестирование на реальном устройстве не имеет особого смысла, так как для того, чтобы оно заработало, нужно много пройти. Единственный логичный способ провести реальное тестирование - это подключить телефон к сотовой сети низкого качества, например EDGE, если это предоставляет ваша телефонная компания. Вы можете попробовать сделать это, набрав
*#*#4636#*#*
в приложении телефонаОригинальный эмулятор Android слишком медленный для тестирования и не достигает большего, чем решение, описанное выше.
Лучший способ сделать это - использовать Genymotion . Это эмулятор Android с гораздо лучшей производительностью, чем оригинальные AVD, и версия для личного использования бесплатна.
После того, как вы создали виртуальное устройство в Genymotion, просто пройдите этот урок, чтобы установить прокси для устройства.
Запустите прокси-сервер на хост-компьютере, который имитирует плохие условия сети, такие как Crapify или Toxiproxy (я только что проверил первый), и все готово .
Обновить:
Я только что понял, что вы можете выбрать ту же стратегию и с реальными устройствами. Я чувствую себя идиотом, потому что не осознаю этого раньше. Просто запустите прокси-сервер Crapify на своем компьютере, установите в прокси-телефоне свой локальный адрес и вуаля, у вас на телефоне будет дрянной интернет.
источник
как предлагает @VicVu Charles (или любой другой прокси-инструмент), это более простой способ. Но я хотел бы добавить, что вы можете делать это и с вашим устройством, а не только с genymotion или другими эмуляторами. Процесс будет таким же:
Измените настройки Wi-Fi вашего устройства / эмулятора, чтобы использовать прокси-сервер вручную. Затем установите имя прокси-сервера и порт a. установите имя хоста как ip вашей системы (получите ip вашего pc / mac, используя ifconfig / ifconfig) b. установить номер порта genymotion (проверьте настройки прокси в charles)
PS: Ваше устройство / эмулятор ДОЛЖЕН использовать тот же Wi-Fi, поскольку используемый вами ip, скорее всего, будет частным ip.
источник
Откройте терминал в Android Studio и перейдите на ../../Android/sdk/tools. Исполняемый файл эмулятора должен быть доступен здесь.
Запустите ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Пример: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Теперь создайте свое приложение и установите его в эмуляторе.
Убедитесь, что у вас есть изменения кода в приложении, которое устанавливает время ожидания для вашего запроса и обрабатывает это.
источник
Просто зайдите на монитор устройства Android из Android studio, затем DDMS -> Emulator Control. Там будут свойства Speed и Latency.
источник
Я обнаружил, что netlimiter4 - лучшее решение для регулирования данных в эмуляторах. Он обеспечивает детальное управление через приличный графический интерфейс и предоставляет графическую обратную связь по пропускной способности данных для каждого процесса. В настоящее время в бесплатной бета-версии. Скриншот
http://www.netlimiter.com/products/nl4
В магазине игр есть приложения, позволяющие регулировать работу реальных устройств, но для них требуется root (я не могу дать никаких советов относительно того, насколько хорошо они работают, или вообще не работают - YMMV.)
поиск bradybound в игровом магазине, я не могу опубликовать более одной ссылки ..
источник
ты пробовал это? Настройки - Сети - Дополнительно - Мобильные сети - Режим сети - Выберите предпочитаемую сеть (например, 2G).
Другой метод, который я использовал, был упомянут выше. Подключите через горячую точку iPhone. Надеюсь это поможет.
источник
Я использую миттропрокси HTTPS прокси. https://mitmproxy.org/
Mitmproxy - это прокси-приложение с открытым исходным кодом, которое позволяет перехватывать соединения HTTP и HTTPS между любым клиентом HTTP (S). Это позволяет отслеживать, захватывать и изменять эти соединения в режиме реального времени. Запрос на изменение, ответ, заголовок, ... Кроме того, вы можете перехватывать различные запросы.
например response_delay.py :
Затем выполнение этого комментария задерживает все ответы от сервера:
Вы можете найти простое руководство здесь .
Вы можете найти другие примеры сценариев здесь .
источник
Очень старый пост, но я добавлю свои два цента. Я был ОЧЕНЬ счастлив с этим аппаратным продуктом ( https://apposite-tech.com/products/linktropy-mini/ ), который позволил нам смоделировать множество реальных условий. Долгое время у нас были проблемы с поиском неисправностей в различных вещах, которые могли бы работать в режиме эмулятора или в режиме самолета
У нас есть несколько различных профилей настройки от нулевого подключения до различных этапов предельного подключения с различными уровнями задержки, потери пакетов и ошибок по битам. Самое замечательное в этом то, что мы можем изменить их на лету без необходимости перезапуска приложения в эмуляторе. Цена полностью стоила того для нашего магазина, и она очень проста в использовании.
источник
Мне нужно было регулировать низкий интернет на устройстве AndroidTV, и, исходя из того, что я прочитал, наиболее подходящим решением было ограничение доступа в Интернет непосредственно в моем маршрутизаторе.
Зайдите в настройки маршрутизатора (локально это что-то вроде 192.168.0.1) -> настроить DHCP-сервер (если он не работает) -> выберите IP-адрес устройства и установите ограничение;
источник