2016-07-01 238 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