Имитировать медленное подключение к Интернету на устройстве REAL?
Мне нужно протестировать мое приложение в условиях, когда даже интернет-соединение 2G не находится в полном объеме (т.е. 2 бара вместо 4, 2G).
Я предпочитаю проводить эти тесты через WiFi.
Есть ли способ (программно или иначе) сообщить ОС Android на реальном устройстве замедлить или отключить подключение к Интернету 56 Кбит/с?
Примечание. Я знаю, как сделать этот в эмуляторе . Я ищу способ сделать это на реальном устройстве.
Возможно ли это?
Ответы
Ответ 1
В одном из ваших комментариев вы упомянули, что у вас есть маршрутизатор 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
Ответ 2
Это зависит от того, что у вас есть на стороне выше по течению. Если вы передаете какую-то тестовую нагрузку, напишите драйвер на восходящем конце, который фактически замедлит работу, хотя sleep() - плохой выбор. То, что вы будете писать, по существу является довольно сложной программой в режиме реального времени, если вы надеетесь получить что-то похожее на реальную рабочую нагрузку.
(Когда я говорю "драйвер", я не имею в виду драйвер устройства, просто какую-то драйверную программу.)
Но вы действительно пытаетесь имитировать медленное соединение или ухудшенное и шумное соединение, которое имеет низкую эффективную скорость передачи данных?