我想测试我的应用程序的低网络连接的情况。除了站在电梯里,还有什么最好的方法呢?我试过用铝箔纸包我的手机,但没有用。

我需要在真正的设备上测试它,而不是在模拟器上。


当前回答

我为这个问题纠结了半天,终于想出了这个解决方案:

在真正的设备上进行测试并没有太大意义,因为你必须经历很多事情才能让它正常工作。实现真正测试的唯一合理方法是让你的手机连接到低质量的蜂窝网络,比如EDGE,如果你的电话公司提供这种网络的话。你可以试着在手机应用程序中拨打*#*#4636#*#* 最初的Android模拟器对于测试来说太慢了,并且不能实现比上面的解决方案更多的功能。

最好的方法就是使用Genymotion。这是一个Android模拟器,性能比原来的avd要好得多,个人使用的版本是免费的。

在Genymotion中创建虚拟设备后,只需通过本教程为设备设置代理。

在您的主机上运行一个模拟恶劣网络条件的代理服务器,如Crapify或Toxiproxy(我只测试了前者),这样就可以了。

更新:

我刚刚意识到,你也可以在真实的设备上选择同样的策略。我觉得自己像个白痴,没有早点意识到这一点。只要在你的电脑上启动一个Crapify代理,将你的手机代理设置为你电脑的本地地址,瞧,你的手机上就有了蹩脚的互联网。

其他回答

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

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

您是想测试没有网络连接,还是只是网络连接很慢?如果是前者,可以进入设置>无线和网络>飞行模式,打开飞行模式。这将允许您在实际设备上测试网络不可用性。

更新到Android Studio v 1.5或更高版本 正如@LouMorda在下面的评论中提到的,在最初的帖子中提到的模拟器选项卡已经在Android Studio v 1.5中被删除了。

现在他们把这些设置放在AVD管理器的模拟器设置中。 要访问这些设置:

选择“Tools -> Android -> AVD Manager” 点击编辑AVD按钮(铅笔图标) 单击“显示高级设置”按钮后,可以访问“网络设置”

下面是它的屏幕截图:

最初的发布 对于使用Android Studio IDE的人:

执行->编辑配置 选择Android应用程序->[您的应用程序] 选择模拟器选项卡 在这里,您可以更改网络速度(网速)和网络延迟(延迟)的不同值,以模拟不同的速度和延迟等

或者,您可以在其他命令行选项文本字段中输入各种参数,如@inazaruk的回答中所述。

下面的截图描述了运行配置界面的样子:

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

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

我正在使用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

你可以在这里找到一个简单的教程。

您可以在这里找到其他脚本示例。

我为这个问题纠结了半天,终于想出了这个解决方案:

在真正的设备上进行测试并没有太大意义,因为你必须经历很多事情才能让它正常工作。实现真正测试的唯一合理方法是让你的手机连接到低质量的蜂窝网络,比如EDGE,如果你的电话公司提供这种网络的话。你可以试着在手机应用程序中拨打*#*#4636#*#* 最初的Android模拟器对于测试来说太慢了,并且不能实现比上面的解决方案更多的功能。

最好的方法就是使用Genymotion。这是一个Android模拟器,性能比原来的avd要好得多,个人使用的版本是免费的。

在Genymotion中创建虚拟设备后,只需通过本教程为设备设置代理。

在您的主机上运行一个模拟恶劣网络条件的代理服务器,如Crapify或Toxiproxy(我只测试了前者),这样就可以了。

更新:

我刚刚意识到,你也可以在真实的设备上选择同样的策略。我觉得自己像个白痴,没有早点意识到这一点。只要在你的电脑上启动一个Crapify代理,将你的手机代理设置为你电脑的本地地址,瞧,你的手机上就有了蹩脚的互联网。