在 Android 模拟器上模拟慢速网络

Simulate slow network on Android simulator

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

提前致谢!

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

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

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

您可以使用 android docs here 中的任何速度。我推荐慢速边缘

如果您使用的是 windows,则必须设置 telnet,您可以在 this SO post 中找到相关说明。

在OSX中可以使用NetworkLinkConditioner,很有用。这里是 link 如何使用它以及如何安装它。它将影响所有使用网络的程序。

http://nshipster.com/network-link-conditioner/

您还可以将所有流量发送到代理并使用节流。我使用 Charles(商业版,30 天免费试用) https://www.charlesproxy.com/

模拟器可让您模拟各种网络状况。您可以估计不同网络协议的网络速度,或者您可以指定 Full,它会以您的计算机允许的速度传输数据。

指定网络协议总是比 Full 慢。您还可以指定语音和数据网络状态,例如漫游。默认值在 AVD 中设置。

Select 网络类型:

  • GSM - 全球移动通信系统
  • HSCSD - 高速电路交换数据
  • GPRS - 通用分组无线电服务
  • EDGE - GSM Evolution 的增强数据速率
  • UMTS - 通用移动电信系统
  • HSPDA - 高速下行链路分组接入
  • 完整(默认)

增加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           ∞          ∞

Select 语音状态、数据状态或两者:

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

有关详细信息,请参阅 https://developer.android.com/studio/run/emulator.html#extended

在模拟器应用程序中,您可以通过单击侧面的三个点来更改网络设置:

然后选择“蜂窝网络”,即可看到网络设置。