我想测试我的应用程序的低网络连接的情况。除了站在电梯里,还有什么最好的方法呢?我试过用铝箔纸包我的手机,但没有用。
我需要在真正的设备上测试它,而不是在模拟器上。
我想测试我的应用程序的低网络连接的情况。除了站在电梯里,还有什么最好的方法呢?我试过用铝箔纸包我的手机,但没有用。
我需要在真正的设备上测试它,而不是在模拟器上。
当前回答
Facebook建立了一个叫做增强交通控制的东西。GitHub页面上的简要总结:
Augmented Traffic Control (ATC) is a tool to simulate network conditions. It allows controlling the connection that a device has to the internet. Developers can use ATC to test their application across varying network conditions, easily emulating high speed, mobile, and even severely impaired networks. Aspects of the connection that can be controlled include: bandwidth latency packet loss corrupted packets packets ordering In order to be able to shape the network traffic, ATC must be running on a device that routes the traffic and sees the real IP address of the device, like your network gateway for instance. This also allows any devices that route through ATC to be able to shape their traffic. Traffic can be shaped/unshaped using a web interface allowing any devices with a web browser to use ATC without the need for a client application.
你可以在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中,运行模拟器时:
1-点击模拟器侧栏底部的设置按钮
2-进入蜂窝网络
3—选择“网络类型”
更新到Android Studio v 1.5或更高版本 正如@LouMorda在下面的评论中提到的,在最初的帖子中提到的模拟器选项卡已经在Android Studio v 1.5中被删除了。
现在他们把这些设置放在AVD管理器的模拟器设置中。 要访问这些设置:
选择“Tools -> Android -> AVD Manager” 点击编辑AVD按钮(铅笔图标) 单击“显示高级设置”按钮后,可以访问“网络设置”
下面是它的屏幕截图:
最初的发布 对于使用Android Studio IDE的人:
执行->编辑配置 选择Android应用程序->[您的应用程序] 选择模拟器选项卡 在这里,您可以更改网络速度(网速)和网络延迟(延迟)的不同值,以模拟不同的速度和延迟等
或者,您可以在其他命令行选项文本字段中输入各种参数,如@inazaruk的回答中所述。
下面的截图描述了运行配置界面的样子:
我知道现在回答这个问题有点晚了,但我希望这能帮助其他面临类似问题的人!
编辑 对于任何使用eclipse的人,请参阅下面@Abhi的回答。
只需从Android工作室转到Android设备监视器,然后DDMS ->模拟器控件。将有速度和延迟属性。
我正在使用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
在我的应用程序中,我使用证书钉住,所以你需要添加证书(私有+公共) 猫私人。关键的公众。密钥> cert.pem
你可以在这里找到一个简单的教程。
您可以在这里找到其他脚本示例。
你可以使用模拟器。看看这个页面:Android模拟器。请注意下面两个论点:
-netdelay <delay> Set network latency emulation to . Default value is none. See the table in Network Delay Emulation for supported values. -netspeed <speed> Set network speed emulation to . Default value is full. See the table in Network Speed Emulation for supported values. Speeds for reference in increasing 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 ∞ ∞