我需要在甚至 2G 互联网连接没有完全覆盖(即 2 条而不是 4 条 2G)的条件下测试我的应用程序。
我更喜欢通过 WiFi 进行这些测试。
有没有办法(以编程方式或其他方式)告诉真实设备上的 Android 操作系统减慢或限制互联网连接 56 Kbit/s?
注意:我知道如何在emulator上执行此操作。我正在寻找一种在真实设备上执行此操作的方法。
这可能吗?
我需要在甚至 2G 互联网连接没有完全覆盖(即 2 条而不是 4 条 2G)的条件下测试我的应用程序。
我更喜欢通过 WiFi 进行这些测试。
有没有办法(以编程方式或其他方式)告诉真实设备上的 Android 操作系统减慢或限制互联网连接 56 Kbit/s?
注意:我知道如何在emulator上执行此操作。我正在寻找一种在真实设备上执行此操作的方法。
这可能吗?
在您的一条评论中,您提到您有一个 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
这有点取决于您在上游方面拥有什么。如果您要传输某种测试负载,请在上游端编写一个驱动程序,实际上它会减慢自身速度——尽管 sleep() 是一个糟糕的选择。如果您希望获得类似于真实工作负载的任何东西,那么您将要编写的内容本质上是一个相当困难的实时程序。
(顺便说一句,当我说“驱动程序”时,我并不一定是设备驱动程序,只是某种驱动程序。)
但是,您真的是在尝试模拟慢速连接,还是有效数据速率低的退化和嘈杂的连接?