模擬器提供多種用途的網路功能,可讓您針對應用程式設定複雜的模型和測試環境。本頁將介紹模擬器網路架構和功能。
每個執行個體的虛擬路由器會管理 10.0.2/24 網路位址空間。
- 由路由器管理的所有位址都會採用
10.0.2.xx的格式,其中xx是數字。
下表顯示模擬器或路由器如何預先分配這個空間中的位址:
| 網路位址 | 說明 |
|---|---|
| 10.0.2.1 | 路由器或閘道位址 |
| 10.0.2.2 | 主機回送介面的特殊別名 (即開發機器上的 127.0.0.1) |
| 10.0.2.3 | 第一個 DNS 伺服器 |
| 10.0.2.4、10.0.2.5、10.0.2.6 | 選用的第二、第三和第四個 DNS 伺服器 |
| 10.0.2.15 | 透過乙太網路連線時的模擬裝置網路 |
| 10.0.2.16 | 透過 Wi-Fi 連線時,模擬裝置網路。 |
| 127.0.0.1 | 模擬裝置回送介面 |
除了 Wi-Fi,透過乙太網路連線時,所有執行中的模擬器執行個體都使用相同的指派位址。也就是說,如果您在機器上同時執行兩個執行個體,每個執行個體都會有各自的路由器,而路由器後方的每個 IP 位址都會是 10.0.2.15。執行個體由路由器隔離,無法在同一個網路中偵測到彼此。如要瞭解如何讓模擬器執行個體透過 TCP/UDP 進行通訊,請參閱「互連模擬器執行個體」。
開發機器上的位址 127.0.0.1 會對應至模擬器的回送介面。如要存取在開發機器回送介面上執行的服務,請改用特殊位址 10.0.2.2。
模擬裝置的預先分配位址為 Android Emulator 專用,且可能和實際裝置上的情況相差甚遠 (通常也會經過網路位址轉譯,特別是在路由器或防火牆後方)。
區域網路限制
在模擬器上執行的 Android 應用程式可以連線至工作站的可用網路。不過,應用程式是透過模擬器連線,而非直接連線至硬體,而模擬器的運作方式就如同工作站上的一般應用程式。這可能會造成下列限制:
- 機器上執行的防火牆程式可能會封鎖與模擬裝置的通訊。
- 與機器連線的另一個 (實體) 防火牆或路由器可能會封鎖與模擬器裝置的通訊。
模擬器的虛擬路由器可以處理模擬裝置的所有輸出 TCP 和 UDP 連線與訊息,前提是開發機器的網路環境允許這些連線。除了主機作業系統和網路的限制外,通訊埠號碼或範圍沒有內建限制。
根據環境的不同,模擬器可能不支援其他通訊協定,例如用於「連線偵測」(ping) 的 ICMP。模擬器不支援 IGMP。 舉例來說,使用者無法使用 ping 指令 ping 主機或區域網路上的其他裝置。