[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定

我在 Win81 時的 Hyper-V 中,透過 Loopback 網卡來分享 WiFi 給虛擬機用:

[Hyper-V] 我 NB 用的虛擬網卡
https://tlcheng.wordpress.com/2016/02/22/hyper-v-%e6%88%91-nb-%e7%94%a8%e7%9a%84%e8%99%9b%e6%93%ac%e7%b6%b2%e5%8d%a1/

當時的 NB 是效能不是很好,所以一直沒考慮使用 Hyper-V 跑 Android 模擬機,一直用 VirtualBox 來跑 Android 模擬機。

Visual Studio 2015 (VS) 以後,微軟推出了整合 VS IDE 開發環境與模擬機的架構,提高 Android 行動軟體開發速度,沒有安裝 VS 的電腦也可以安裝來跑 Android 模擬機:

Visual Studio Emulator For Android (以下簡稱模擬器)
https://www.visualstudio.com/zh-hant/vs/msft-android-emulator/

當然有安裝 VS 2017 的有內建,VS 2017 內建的版本比上述網站下載的還新。

我開始在 Hyper-V 測試模擬器,一開始就卡在開機中的畫面,不知道啥原因:

卡在開機中的畫面

卡在開機中的畫面

 

Terry Lin 建議我依照下面這篇除錯:

Visual Studio Emulator for Android 疑難排解
https://msdn.microsoft.com/zh-tw/library/mt228282.aspx#NoStart

無法解決問題,之後 Ian Chen 建議我把所有 Virtual Switch 全部砍掉一預設值重建,砍掉前我有看了一下設定後,砍掉重建,重建後我的模擬機就能完成開機,但卻出現不能上網。

Windows Phone Emulator Internal Switch

Windows Phone Emulator Internal Switch

註:後來是因為我的 Windows Phone Emulator Internal Switch 內不知道為啥預設是 169.* 開頭的 IP ,這裡必須是動態取得 IP

一開始無法上網,我依據先前跑 Windows VM 的慣例,把 Microsoft Loopback 網卡設定給 Android 模擬器,但是還是無法上網,Aska Su 建議我用 Hyper-V 建一個 Hyper-V Loopback 內部虛擬網路:

Hyper-V Loopback

Hyper-V Loopback

再把 WiFi 分享給 Hyper-V Loopback 虛擬網卡:

共用 WiFi 給 Hyper-V Loopback

共用 WiFi 給 Hyper-V Loopback

 

我用 Windows VM 測試,也可正常成功。

Hyper-V Loopback 速率 10 Gbps

Hyper-V Loopback 速度

Hyper-V Loopback 速度

比 Microsoft Loopback 網卡 1.2 Gbps 快。

Microsoft Loopback 速度

Microsoft Loopback 速度

 

但是 Android 模擬器仍無法上網。測試各種方案,Android 模擬機都會自動把 Windows Phone Emulator Internal Switch 虛擬網卡自動加入,若是參數不正確,還會自動把前次設定錯誤的網卡刪除。

苦無對策,拜了 google 大神,一般解決方案都是將無線網卡加入第二張 Android 模擬機網卡,這表示我得放棄不將 WiFi 加入虛擬交換器,必須將 WiFi 加入到 Hyper-V 內。

虛擬交換器管理員

虛擬交換器管理員

WiFi 一加入虛擬交換器就會組成網路橋接器,這讓網路管理複雜很多:

網路橋接器

網路橋接器

加入到 Android 模擬機第二張網卡:

WiFi 加到第二張網卡

WiFi 加到第二張網卡

就可正常上網了:

從無線基地台取得實體 IP

從無線基地台取得實體 IP

註:若網路設定錯誤,Android 模擬機仍會自動將無線網卡刪除

成功上網後,摸清楚特性,就測試改用 Hyper-V Loopback 網卡,由於 Hyper-V Loopback 網卡為內部網卡,只要一設定 IP ,例如共用網路變成 192.168.137.1 ,就會造成模擬機無法開機,只有外部網卡能設 IP。因此又回頭使用 Microsoft Loopback 網卡加入虛擬交換器:

Microsoft Loopback 加入第二張網卡

Microsoft Loopback 加入第二張網卡

再將 WiFi 分享給 Microsoft Loopback 虛擬網卡

WiFi 分享給 Microsoft Loopback

WiFi 分享給 Microsoft Loopback

一樣自動被設定為 192.168.137.1

虛擬網段 IP

虛擬網段 IP

讓網路設定變得比較乾淨:

實體網卡好管理

實體網卡好管理

終於,可以把先前的 Microsoft Loopback 網卡分享給 Android 模擬機。

透過 Microsoft Loopback 取得虛擬 IP

透過 Microsoft Loopback 取得虛擬 IP

平常沒有使用 Hyper-V 的時候,我就會停用不相關的網卡,另外重新把 Windows VM 網卡設給 Microsoft Loopback ,反正 1.2 Gbps 也夠我用了,平常就懶得動,直接用同一張須擬網卡就可以,這樣在外沒有無線基地台的情況下,模擬器也可以透過 192.168.137.* 網段與 NB 溝通,恢復到我的習慣工作環境了。

廣告
Categories: 工作點滴, 技術分享 | 標籤: | 2 則迴響

文章分頁導航

2 thoughts on “[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定

  1. 引用通告: [WiFi] 無線網路無法列舉搜尋附近的無線訊號 | 鄭子璉

  2. 引用通告: [WINS] 網卡內的 NetBIOS over Tcpip 無法正常啟用 | 鄭子璉

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: