除了站在电梯里,我想测试我的应用程序在网络连接差的情况下的表现。有没有更好的方法?我曾尝试过用铝箔裹住手机,但效果并不明显。
我需要在真实设备上进行测试,而不是模拟器。
除了站在电梯里,我想测试我的应用程序在网络连接差的情况下的表现。有没有更好的方法?我曾尝试过用铝箔裹住手机,但效果并不明显。
我需要在真实设备上进行测试,而不是模拟器。
在模拟器中测试应用程序的简便方法:
点击 运行 > 运行配置,选择您的Android 应用程序,然后进入目标选项卡。 查看模拟器启动参数。在这里,您可以轻松修改网络速度和网络延迟。
我很惊讶没人提到这个。你可以通过蓝牙连接热点,把它们分开十多米(或者障碍物较少时更近)。你会得到一个非常糟糕的连接。不需要微波炉、电梯或软件。
或者在实际设备上,您可以进入“设置” -> “移动网络” -> “首选网络类型”,选择最慢的可用网络类型...... 当然,这很有限,但对于一些测试目的来说可能已经足够了。
Facebook建立了一个叫做增强型流量控制的工具。从他们的GitHub页面简要概括:
增强型流量控制(ATC)是一种模拟网络条件的工具。它允许控制设备与互联网的连接。开发人员可以使用ATC在不同的网络条件下测试他们的应用程序,轻松模拟高速、移动和严重受损的网络。可以控制的连接方面包括:
- 带宽
- 延迟
- 数据包丢失
- 破损的数据包
- 数据包排序
为了能够塑造网络流量,ATC必须在路由流量并看到设备的真实IP地址的设备上运行,例如您的网络网关。这也允许通过ATC路由的任何设备能够塑造其流量。可以使用Web界面来塑造/取消塑造流量,使任何带有Web浏览器的设备都可以使用ATC,无需客户端应用程序。
您可以在GitHub上找到它:https://github.com/facebook/augmented-traffic-control
他们还撰写了一篇关于此的博客文章:https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
关于Android Studio AVD的更新:
无需微波炉或电梯 :)
对于使用 Mac OS 的用户,您可以使用苹果公司提供的 Network Link Conditioner。从苹果公司下载该软件,并将其设置为 Mac 上的 AP,任何设备都可以连接它。
您也可以使用 Facebook 开源工具 ATC,详情请参考http://facebook.github.io/augmented-traffic-control/
运行Go>运行配置,选择您的Android应用程序,然后转到目标选项卡。按照图中所示进行更改。
在实际设备上进行测试总的来说没有太多意义,因为你必须经历很多步骤才能使其正常工作。实现真正的测试的唯一逻辑方法是使您的手机连接到低质量的蜂窝网络(如果您的手机公司提供),例如EDGE。您可以尝试在电话应用程序中拨打*#*#4636#*#*
实现此目的。
原始Android模拟器速度过慢,无法进行测试,也无法达到上述解决方案。
最好的方法是使用Genymotion。它是一个比原始AVDs性能更好的Android模拟器,且个人用户可免费使用。
在Genymotion中创建虚拟设备后,请按照本教程为设备设置代理。
在主机上运行代理服务器,模拟不良网络条件,例如Crapify或Toxiproxy(我只测试了前者),然后就可以开始测试了。
更新:
我刚意识到你也可以使用同样的策略来测试真实设备。我感觉太蠢了,没能早点想到。只需在计算机上启动Crapify代理,将您的电话代理设置为计算机的本地地址,即可拥有糟糕的互联网体验。
我需要在AndroidTV本机设备上限制低速网络,根据我的阅读,最适合的解决方案是直接在我的路由器中限制互联网访问。
进入路由器设置(本地地址通常为192.168.0.1)->设置DHCP服务器(如果未运行)->选择设备的IP地址并设置限制。