模拟 Android 低网络连接性能

286

除了站在电梯里,我想测试我的应用程序在网络连接差的情况下的表现。有没有更好的方法?我曾尝试过用铝箔裹住手机,但效果并不明显。

我需要在真实设备上进行测试,而不是模拟器。


1
还要研究一下法拉第笼(Faraday cages)。它们很容易制作。 - jww
2
很遗憾,此线程已关闭。但我在Play商店上找到了一个有用的应用程序,名为Throttly(不是我的)。我认为它非常适合模拟缓慢的连接。 - Alexa289
27个回答

9

在模拟器中测试应用程序的简便方法:

点击 运行 > 运行配置,选择您的Android 应用程序,然后进入目标选项卡。 查看模拟器启动参数。在这里,您可以轻松修改网络速度和网络延迟。


9

我很惊讶没人提到这个。你可以通过蓝牙连接热点,把它们分开十多米(或者障碍物较少时更近)。你会得到一个非常糟糕的连接。不需要微波炉、电梯或软件。


这实际上是一个好的解决方案,除非你有非常好的蓝牙连接。需要使用旧设备来完成。 :) - android developer

6

或者在实际设备上,您可以进入“设置” -> “移动网络” -> “首选网络类型”,选择最慢的可用网络类型...... 当然,这很有限,但对于一些测试目的来说可能已经足够了。


6

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/


4

关于Android Studio AVD的更新:

  1. 打开AVD管理器
  2. 创建/编辑AVD
  3. 点击高级设置
  4. 选择您喜欢的连接设置

无需微波炉或电梯 :)


3

对于使用 Mac OS 的用户,您可以使用苹果公司提供的 Network Link Conditioner。从苹果公司下载该软件,并将其设置为 Mac 上的 AP,任何设备都可以连接它。

您也可以使用 Facebook 开源工具 ATC,详情请参考http://facebook.github.io/augmented-traffic-control/


2

运行Go>运行配置,选择您的Android应用程序,然后转到目标选项卡。按照图中所示进行更改。

enter image description here


2
非常古老的帖子,但我想要补充我的见解。我对这款硬件产品(https://apposite-tech.com/products/linktropy-mini/)非常满意,它使我们能够模拟许多真实世界的条件。很长一段时间以来,我们在排除各种在模拟器或飞行模式下工作的问题方面遇到了挑战。
我们设置了几个不同的配置文件,从零连接到各种程度的边缘连接,具有不同程度的延迟、数据包丢失和位错误。它的好处是我们可以随时更改这些配置文件,而无需在模拟器中重新启动应用程序。对于我们的商店来说,价格完全值得,而且使用起来非常简单。

2
我曾经为这个问题苦苦挣扎了半天,最终找到了以下解决方案:
  • 在实际设备上进行测试总的来说没有太多意义,因为你必须经历很多步骤才能使其正常工作。实现真正的测试的唯一逻辑方法是使您的手机连接到低质量的蜂窝网络(如果您的手机公司提供),例如EDGE。您可以尝试在电话应用程序中拨打*#*#4636#*#* 实现此目的。

  • 原始Android模拟器速度过慢,无法进行测试,也无法达到上述解决方案。

最好的方法是使用Genymotion。它是一个比原始AVDs性能更好的Android模拟器,且个人用户可免费使用。

Genymotion模拟器

在Genymotion中创建虚拟设备后,请按照本教程为设备设置代理。

在主机上运行代理服务器,模拟不良网络条件,例如CrapifyToxiproxy(我只测试了前者),然后就可以开始测试了。

更新:

我刚意识到你也可以使用同样的策略来测试真实设备。我感觉太蠢了,没能早点想到。只需在计算机上启动Crapify代理,将您的电话代理设置为计算机的本地地址,即可拥有糟糕的互联网体验。


2

我需要在AndroidTV本机设备上限制低速网络,根据我的阅读,最适合的解决方案是直接在我的路由器中限制互联网访问。

进入路由器设置(本地地址通常为192.168.0.1)->设置DHCP服务器(如果未运行)->选择设备的IP地址并设置限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接