模拟Android的低网络连接

Mag*_*gie 207 android connectivity

我想测试我的应用程序的低网络连接情况.除了站在电梯里,最好的办法是什么?我试过用铝箔包裹我的手机,但它没有多大帮助.

我需要在真实设备上测试它,而不是在模拟器中测试它.

Sha*_*fiq 255

这可能听起来有点疯狂,但微波炉可作为微波屏蔽.因此,将您的设备放入微波炉(当您的设备在里面时,请勿打开微波炉!)将导致您的信号强度显着下降.它绝对胜过站在电梯内......

  • 起初我以为你会建议启动微波炉会有所帮助.哈哈 (20认同)
  • 我可以站在电梯内测试应用程序,但我不能在微波炉内做同样的事情:D (11认同)
  • 在我的微波炉中不起作用(即连接仍然不错)!啊:| (3认同)
  • 你的想法对我来说是我家的微波炉,而不是办公室的微波炉 (2认同)
  • 哇,现在,如果您能建议我也可以使自己适应烤箱。烤箱设计用于屏蔽2.4 GHz。它可能不适用于较低的频率。IDK! (2认同)

ina*_*ruk 104

您可以使用模拟器.看看这个页面:Android Emulator.注意接下来的两个论点:

  1. -netdelay <delay>

    将网络延迟仿真设置为.默认值为none.有关支持的值,请参阅网络延迟仿真中的表.

  2. -netspeed <speed>

    将网络速度仿真设置为.默认值已满.有关支持的值,请参阅网络速度仿真中的表格.

  • 为什么这被接受为答案?问题清楚地表明"不在模拟器中" (103认同)
  • 我用过电梯:)但不是所有人 (71认同)
  • 非常感谢,但正如我所说,我想在真实设备上进行测试.我可以用htc或三星手机做到这一点吗? (14认同)
  • 要模拟HTTP上的延迟,请使用ResponseCache.setDefault(new CacheResponse(){...})并在其中放置Thread.sleep(200)调用.这具有以编程方式控制(即仅在一个活动中)并且不影响其他过程的优点.但是,要进行更实际的测试,您应该在路由器上设置限制或使用`tc`命令(来自busybox). (3认同)
  • 我的猜测是,唯一的方法就是拥有一台可以控制网络速度的Wi-Fi路由器/ AP.这更像是网络管理员的事情.但理论上这应该是可能的. (2认同)

Kir*_*kov 99

由于iPhone的开发者选择在WiFi网络共享应用,你可以得到一个iPhone拥有iOS 6及以上(和已设置为use for developmentsxcode),将其设置为模拟所需的网络配置文件,您的连接的Android设备到其热点

在此输入图像描述

  • 这也是我们达成的解决方案.遗憾的是,这是最明智的选择.在答案中应该注意的是,iPhone需要3G /蜂窝连接才能工作.还应注意,iPhone实用程序中所需的上载/下载速度需要反转为系留设备. (8认同)

S1L*_*IOR 67

Android Studio v 1.5或更高版本的更新
正如@LouMorda在下面的评论中Emulator提到的,原始帖子中提到的标签已在Android Studio v 1.5中删除.

现在,他们已将这些设置放入模拟器设置中AVD Manager.
要访问这些设置:

  1. 选择 Tools -> Android -> AVD Manager
  2. 点击Edit AVD按钮(铅笔图标)
  3. Network Settings可点击后访问Show Advanced Settings按钮

以下是它可能如何显示的屏幕截图:
Android Studio v 1.5中的网络速度和延迟设置

原始帖子
对于使用Android Studio IDE的任何人:

  1. Run -> Edit Configurations
  2. 选择 Android Application -> [Your App]
  3. 选择Emulator标签
  4. 在这里,您可以更改不同的值Network SpeedNetwork Latency模拟不同的速度和延迟等

或者,您可以Additional command line options在@ inazaruk的答案中提到的文本字段中输入各种参数.

下面的屏幕截图描述了此Run Configuration屏幕的外观:

在Android Studio beta 0.8.6中运行配置屏幕

我知道回答这个问题有点晚了,但我希望这有助于其他人面临类似的问题!

编辑
对于使用eclipse的任何人,请参阅下面的@ Abhi的答案.

  • 此选项卡已在 Android Studio v1.5 中移除 (2认同)

Pkm*_*mte 42

我知道这是一个老问题,但......

现在有些手机只能使用2G.它非常适合在真实设备上模拟慢速互联网.

在此输入图像描述

  • 这家伙是真正的MVP。 (4认同)

Vic*_*cVu 33

岁了,但是嘿,我会用Genymotion的万无一失的方法来加入.

  • 下载Charles免费试用版:http://www.charlesproxy.com/download/

  • 安装它

  • 点击Proxy -> Throttle Settings

  • 设置HTTP限制速度

  • 关闭那个窗口

  • 单击Proxy -> Throttling以启用油门

  • 打开Genymotion模拟器

  • 打开wifi设置

  • 长按启用的wifi连接

  • 点击 Modify Network

  • 点击 Show Advanced Options

  • 设置ProxyManual

  • 设置Proxy hostname10.0.3.2

  • 设置Port8888

  • 点击 Save

现在您的网络将受到限制!


Ben*_*ong 13

我有一个策略来解决你的问题.您可以使用代理应用程序来修改或监控您的净状态.例如,查尔斯.

您应该像我发布的以下图片一样更改Charles的默认配置.

打开节气门设置

设置节流阀设置

最后,您会发现净状态已经降低了.

之前

设置之后

  • 这是到目前为止唯一合适的解决方案:D (2认同)

rm *_*-rf 10

您还可以在真实的android设备上测试慢速的Internet连接:

经过Samsung Galaxy S8 + Android 8.0.0测试

进入设置 - > 连接 - > 移动网络 - >并在网络模式,你可以选择只使用2G3G 连接


pga*_*iga 8

在模拟器中使用低/坏连接测试应用程序的简便方法:

转至运行 > 运行配置,选择您的Android应用程序,并有进入目标选项卡.Look Emulator启动参数.在这里,您可以轻松修改网络速度和网络延迟.


Jam*_*OSM 8

在真实设备上测试低速的简单方法似乎被忽略了.它确实需要Mac和以太网(或其他有线)网络连接.

在Mac上打开Wifi共享,将您的计算机变为Wifi热点,将您的设备连接到此.使用Netlimiter/Charles Proxy或网络链接调节器(您可能已安装)来控制速度.

有关更多详细信息,并了解您应该检查哪种速度:http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -connections /


Ani*_*udh 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/


yhm*_*yhm 6

我很惊讶没有人提到这一点。您可以通过蓝牙进行绑定,并将它们隔开十多米(或更少的障碍物)。您的连接确实不好。没有微波炉,没有电梯,不需要软件。


jpm*_*jpm 5

或者在实际设备上,您可以转到“设置”->“移动网络”->“首选网络类型”,然后选择可用的最慢的网络...当然,这非常有限,但是出于某些测试目的,这可能就足够了。


Mer*_*man 5

在Android Studio中,运行模拟器时:

1-点击模拟器侧栏底部的设置按钮

2-转到手机

3-设置网络类型

屏幕截图