Имитировать медленное подключение к Интернету на РЕАЛЬНОМ устройстве?

Мне нужно протестировать мое приложение в условиях, когда даже подключение к Интернету 2G не обеспечивает полного охвата (т. е. 2 полоски вместо 4, 2G).

Я предпочитаю проводить эти тесты через WiFi.

Есть ли способ (программно или иным образом) заставить ОС Android на реальном устройстве замедлить или ограничить интернет-соединение со скоростью 56 Кбит/с?

Примечание. Я знаю, как сделать это на эмулятор. Я ищу способ сделать это на реальном устройстве.

Это возможно?


person scatmoi    schedule 15.07.2012    source источник
comment
Проверьте настройки маршрутизатора на наличие ограничителя пропускной способности; иногда есть один в наличии.   -  person Ry-♦    schedule 15.07.2012
comment
@minitech Спасибо. Есть идеи, где можно найти ограничитель полосы пропускания (для WiFi) на маршрутизаторе DD-WRT?   -  person scatmoi    schedule 16.07.2012


Ответы (2)


В одном из своих комментариев вы упомянули, что у вас есть маршрутизатор DD-WRT, который на самом деле представляет собой крошечную коробку с Linux. Таким образом, вы можете получить способ с помощью команды tc:

tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit 
tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit allot 1500 prio 5 bounded isolated 
tc filter add dev $DEV parent 1: protocol ip prio 16 u32 match ip dst 195.96.96.97 flowid 1:1
person Eternal Learner    schedule 17.07.2012

Это зависит от того, что у вас есть на восходящей стороне. Если вы передаете какую-то тестовую нагрузку, напишите драйвер на восходящем конце, который на самом деле замедляет себя, хотя sleep() - плохой выбор. То, что вы будете писать, представляет собой довольно сложную программу реального времени, если вы надеетесь получить что-то похожее на реальную рабочую нагрузку.

(Кстати, когда я говорю «драйвер», я не обязательно имею в виду драйвер устройства, а просто какую-то программу-драйвер.)

Но действительно ли вы пытаетесь имитировать медленное соединение или некачественное и зашумленное соединение с низкой эффективной скоростью передачи данных?

person Charlie Martin    schedule 15.07.2012
comment
Любой код внутри тестируемого приложения, который пытается имитировать медлительность, не соответствует цели (вы когда-нибудь слышали о принципе Гейзенберга?). Что касается вашего вопроса, в идеале я хотел бы иметь возможность моделировать как slow connection, так и degraded and noisy connection с низкой эффективной скоростью передачи данных. Но пока я готов пойти на компромисс только для медленного соединения. Знаете ли вы приложение, которое загружает интернет-соединение подобно тому, как CPU Burn-in для Windows загружает процессор? - person scatmoi; 16.07.2012