Answers:
您可以为此使用模拟器。看一下此页面:Android Emulator。请注意以下两个参数:
-netdelay <delay>
将网络延迟仿真设置为。默认值为无。有关支持的值,请参见网络延迟仿真中的表。
-netspeed <speed>
将网络速度仿真设置为。默认值已满。有关支持的值,请参见网络速度仿真中的表。
提高kbps的参考速度:
UP DOWN
-------- ----------
gsm GSM/CSD 14.4 14.4
hscsd HSCSD 14.4 57.6
gprs GPRS 28.8 57.6
umts UMTS/3G 384.0 384.0
edge EDGE/EGPRS 473.6 473.6
hsdpa HSDPA 5760.0 13,980.0
lte LTE 58,000.0 173,000.0
evdo EVDO 75,000.0 280,000.0
full No limit ∞ ∞
tc
命令(来自busybox)。
这听起来有些疯狂,但微波炉可作为微波炉的防护罩。因此,将设备放入微波炉内(请勿在设备放入微波炉的状态下打开微波炉!)会导致信号强度显着下降。绝对比站在电梯里好...
由于iPhone的开发人员选项适用于无线网络的束缚,你可以得到一个iPhone拥有iOS 6
及以上(和已设置为use for developments
同xcode
),将其设置为模拟所需的网络配置文件,您的连接的Android设备到其热点
Android Studio v 1.5或更高版本的更新
正如@LouMorda在下面的评论中所述,Emulator
所述,原始帖子中提到选项卡已在Android Studio v 1.5中删除。
现在,他们将这些设置放在的“模拟器设置”中AVD Manager
。
要访问这些设置:
Tools -> Android -> AVD Manager
Edit AVD
按钮(铅笔图标)Network Settings
可点击后访问Show Advanced Settings
按钮 原始文章
对于使用Android Studio IDE的任何人:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
标签Network Speed
并Network Latency
模拟不同的速度和延迟等 或者,您可以Additional command line options
在@inazaruk的答案中提到的文本字段中输入各种参数。
下面的屏幕快照描述了此Run Configuration
屏幕的外观:
我知道回答这个问题有点晚了,但是我希望这可以帮助其他面临类似问题的人!
编辑
对于使用Eclipse的任何人,请参阅下面的@Abhi答案。
我知道这是一个老问题,但是...
如今,某些手机可以设置为仅使用2G。非常适合在真实设备上模拟慢速互联网。
岁但嘿,我会通过Genymotion的万无一失的方法来介绍一下。
下载Charles免费试用版:http : //www.charlesproxy.com/download/
安装它
请点击Proxy -> Throttle Settings
设置您的HTTP限制速度
关闭那个窗口
单击Proxy -> Throttling
以启用油门
打开Genymotion模拟器
开启wifi设定
长按启用的wifi连接
请点击 Modify Network
请点击 Show Advanced Options
设置Proxy
于Manual
设置Proxy hostname
为10.0.3.2
设置Port
为8888
请点击 Save
现在,您的网络将受到限制!
有一种简单的方法可以在似乎已被忽略的真实设备上测试低速运行。它确实需要Mac和以太网(或其他有线)网络连接。
在Mac上打开Wifi共享,将您的计算机变成Wifi热点,然后将设备连接至此。使用Netlimiter /查尔斯代理或网络链接调节器(您可能已经安装)来控制速度。
有关更多详细信息,并了解您应在结帐时测试哪种速度:http : //opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -连接/
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/
我很惊讶没有人提到这一点。您可以通过蓝牙进行绑定,并将它们隔开十多米(或更少的障碍物)。您的连接确实不好。没有微波炉,没有电梯,不需要软件。
对于Mac OS用户,您可以使用可从Apple下载的Network Link Conditioner。在Mac上将其设置为AP,任何设备都可以连接它。
您可以使用Facebook开源工具ATC http://facebook.github.io/augmented-traffic-control/
您是否要测试是否没有网络连接,或者只是测试速度较慢的网络连接?如果是前者,则可以转到Settings > Wireless & networks > Airplane mode
并打开飞行模式。这样一来,您就可以在实际设备上测试网络的不可用性。
我在这个问题上苦苦挣扎了半天,终于找到了这个解决方案:
从整体上讲,在真实设备上进行测试没有多大意义,因为您必须经过很多工作才能使其正常工作。进行真实测试的唯一合乎逻辑的方法是,如果您的电话公司提供电话,则使电话连接到EDGE等低质量的蜂窝网络。您可以尝试通过拨打*#*#4636#*#*
电话应用程序来执行此操作
原始的Android模拟器进行测试的速度太慢,并且只能实现上述解决方案。
最好的方法是使用Genymotion。这是一个Android模拟器,性能比原始的AVD好得多,而且供个人使用的版本是免费的。
在Genymotion中创建虚拟设备后,只需完成本教程即可为该设备设置代理。
在您的主机上运行代理服务器,以模拟不良的网络状况,例如Crapify或Toxiproxy(我只测试了前者),一切顺利。
更新:
我只是意识到您也可以在实际设备中选择完全相同的策略。我觉得自己是个白痴,没有早日意识到这一点。只需在计算机上启动Crapify代理,将电话代理设置为计算机的本地地址,瞧,您的电话上网情况就很糟。
我发现netlimiter4是将数据限制到模拟器的最佳解决方案。它通过一个不错的gui提供了精细的控制,并为您提供了每个过程的数据吞吐量的图形反馈。目前处于免费测试阶段。 屏幕截图
http://www.netlimiter.com/products/nl4
Play商店中有可用的应用程序可用于实际设备,但它们需要root用户(如果有的话,我无法提供有关其运行情况的任何建议-YMMV。)
在Play商店上搜索“ bradybound”,我不能发布多个链接。
我正在使用mitmproxy HTTPS代理。https://mitmproxy.org/
Mitmproxy是一个开放源代码代理应用程序,它允许拦截任何HTTP(S)客户端之间的HTTP和HTTPS连接。它允许实时监视,捕获和更改这些连接。更改请求,响应,标题等。此外,您还可以截取不同的请求。
例如response_delay.py:
from mitmproxy import http
from time import sleep
def response(flow: http.HTTPFlow) -> None:
sleep(5.0)
然后执行此注释会延迟服务器的所有响应:
mitmproxy --cert \*.asdf.at=./cert.pem --scripts response_delay.py
在我的应用中,我使用的是证书固定,因此您需要添加证书(私有+公共)
猫private.key public.key> cert.pem
您可以在此处找到一个简单的教程。
您可以在此处找到其他脚本示例。
很老的职位,但我要加两分钱。我对这个硬件产品(https://apposite-tech.com/products/linktropy-mini/)感到非常满意,这使我们能够模拟许多现实情况。长期以来,我们一直面临着对各种在模拟器或飞机模式下可以正常工作的故障进行故障排除的挑战。
从零连接到边缘连接的各个阶段,我们有几种不同的配置文件设置,它们具有不同程度的延迟,数据包丢失和误码。很棒的是,我们可以即时更改这些内容,而不必在模拟器中重新启动应用程序。对于我们的商店来说,价格已经完全值得了,而且使用起来非常简单。
我需要在AndroidTV本机设备上限制低速互联网,根据我所阅读的内容,最合适的解决方案是直接在路由器中限制互联网访问。
转到路由器设置(本地为192.168.0.1)->设置DHCP服务器(如果未运行)->选择设备的IP地址并设置限制;