2016-07-01 241 views
12

我正在构建一个应用程序,它使用AsyncTask在执行网络操作(Google翻译)时显示进度条。 但是,问题在于我无法确定它是否正常工作,因为网络速度太快,只要启动它就会完成运行操作。 那么有没有一种方法来模拟一个缓慢的网络,以便我可以判断进度条是否会在等待操作完成时实际运行(可见)?创建Android模拟器时遇到了网络选项。但是,有很多缩写,我仍然无法理解什么表明网络连接速度很慢,而且我仍不确定是否应该设置较慢的网络连接。在Android模拟器上模拟慢速网络

在此先感谢!

+1

你用于模拟器的操作系统是什么? – Anessence

+0

我正在使用Android –

+0

OSX或Windows? – Anessence

回答

19

该模拟器可以让你模拟各种网络条件。您可以近似使用不同网络协议的网络速度,也可以指定“完整”,它可以按计算机允许的速度快速传输数据。

指定网络协议始终比“完整”慢。您还可以指定语音和数据网络状态,例如漫游。默认值在AVD中设置。

选择网络类型:

  • GSM - 全球移动通信系统
  • HSCSD - 高速电路交换数据
  • GPRS - 通用分组无线业务
  • EDGE - 增强数据GSM演进的速率
  • UMTS - 通用移动电信系统
  • HSPDA - 高速下行链路cket访问
  • 满(默认)

GPRS(114Kbps)< EGDE(368Kbps)< 3G(3.1Mbps的)< HSDPA(14Mbps的)< HSPA +(168Mbps)< 4G/LTE(299。为6Mbps)

选择音色状态,数据状态,或两者:

  • 首页(默认)
  • 漫游
  • 搜索
  • 拒绝(仅限紧急呼叫)
  • 未注册(关闭)

欲了解更多信息,请参阅https://developer.android.com/studio/run/emulator.html#extended

+0

谢谢!我之前实际上在这个页面上,但即使在搜索了网络类型后,我仍然不知道哪一个是最慢的。当我测试它时,它仍然看起来很快。 –

2

使用命令行上的telnet,您可以连接到仿真器并更改设备的网络速度。

telnet localhost <<port of device>> 
network speed <<network speed, ex: edge, full>> 

您可以从模拟器的窗口顶部获取设备的端口。

您可以使用android docs here中的任何速度。身份证建议边缘的低速

如果你在Windows上,你将不得不建立telnet,你可以在this SO post找到方向。

+0

谢谢!所以我在模拟器中启动我的应用程序后运行这些命令?而对于网络速度,我应该给它什么参数才能让它变慢?谢谢! –

+0

是的,只要你的模拟器正在运行(你不需要你的应用程序启动)就在命令行中运行这两个命令。为了让它变慢,我建议使用“边缘”作为速度。它看起来像速度的链接没有正确格式化,所以生病了修复 –

3

在OS X中,您可以使用Network Link Conditioner,非常有用。这里有一个链接如何使用它以及如何安装。它会影响所有使用网络的程序。

http://nshipster.com/network-link-conditioner/ enter image description here

您也可以将所有流量进行代理和使用限制。我用查尔斯(商业,30天免费试用) https://www.charlesproxy.com/

+0

谢谢!它是否也适用于Android模拟器?或者它是好的,因为我在mac上运行我的Android模拟器? –

+0

它模拟了在OSX中运行的所有内容的错误网络。代理服务器也是一样。 – Anessence