適用於 Windows 10 Mobile 的 Microsoft 模擬器
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
適用於 Windows 10 的 Microsoft 模擬器是模擬執行 Windows 10 之行動裝置的傳統型應用程式。它提供虛擬化環境,讓您可以在其中針對 Windows 應用程式進行偵錯與測試,而不需要擁有實體裝置。它也提供隔離的環境供您的應用程式原型使用。
模擬器的設計是要提供相當於實體裝置的效能。不過,在將應用程式發佈到 Windows 市集之前,建議您先在實體裝置上測試您的應用程式。
您可以針對各種螢幕解析度與螢幕大小設定,使用獨特的 Windows 10 Mobile 模擬器映像來測試您的通用應用程式。您可以使用 Microsoft 模擬器來模擬與裝置的實際互動,並測試應用程式的各功能。
系統需求
您的電腦必須符合下列需求:
BIOS
- 硬體協助虛擬化。
- 第二層位址轉譯 (SLAT)。
- 硬體型資料執行防止 (DEP)。
RAM
- 4 GB 或更多。
作業系統
- Windows 8 或更高的版本 (強烈建議使用 Windows 10)
- 64 位元
- Pro 版本或更高的版本
若要檢查 BIOS 需求,請參閱如何為 Windows Phone 8 的模擬器啟用 Hyper-V。
若要檢查 RAM 與作業系統的需求,請在 [控制台] 中,按一下 [系統及安全性],然後按一下 [系統]****。
適用於 Windows 10 Mobile 的 Microsoft 模擬器需要 Visual Studio 2015,它無法與舊版 Visual Studio 回溯相容。
適用於 Windows 10 Mobile 的 Microsoft 模擬器無法載入以 Windows Phone OS 7.1 之前的 Windows Phone OS 版本為目標的應用程式。
安裝與解除安裝
安裝。
適用於 Windows 10 Mobile 的 Microsoft 模擬器隨附於 Windows 10 SDK。安裝 Visual Studio 2015 時也可以安裝 Windows 10 SDK 與模擬器。請參閱 Visual Studio 下載頁面。
您也可以使用 Microsoft 模擬器安裝程式來安裝適用於 Windows 10 Mobile 的 Microsoft 模擬器。請參閱 Windows 10 工具下載頁面。
解除安裝。
您可以使用 Visual Studio 安裝程式/修復功能來解除安裝適用於 Windows 10 Mobile 的 Microsoft 模擬器。或者,您可以使用 [控制台] 下的 [程式和功能]**** 來移除模擬器。
當您解除安裝適用於 Windows 10 Mobile 的 Microsoft 模擬器時,系統並不會自動移除建立供模擬器使用的 Hyper-V 虛擬乙太網路介面卡。您可以從 [控制台] 中的 [網路連線]**** 手動移除此虛擬介面卡。
適用於 Windows 10 Mobile 的 Microsoft 模擬器中的新增功能
除了提供對通用 Windows 平台 (UWP) 的支援之外,模擬器也新增下列功能:
- 滑鼠輸入模式支援,以區分滑鼠與單點觸控輸入。
- NFC 支援。 模擬器可讓您模擬 NFC,並測試及開發具有 NFC/近接功能的通用 App。
- 原生硬體加速可在模擬器中使用本機顯示卡提升圖形效能。您必須已安裝支援的顯示卡,並在模擬器的 [其他工具] 設定使用者介面的 [感應器]**** 索引標籤上啟用加速,才能使用加速。
此版本的模擬器也提供舊版 Windows Phone 模擬器的所有功能。如需使用此工具的詳細資訊,請參閱在 Windows Phone 模擬器中測試 App 功能。
注意
已經進行了一個重要的使用者介面變更。在此版本的模擬器中,顯示或隱藏硬體鍵盤的鍵盤快速鍵現在是 F4,其作用是切換,而不是舊版模擬器中使用的 Page Up/Page Down 鍵組。
滑鼠輸入
使用 Windows 電腦上的實體滑鼠或觸控板以及模擬器工具列上的滑鼠輸入按鈕來模擬滑鼠輸入。若應用程式為使用者提供使用滑鼠搭配 Windows 10 裝置提供輸入的功能,此功能非常實用。
點選模擬器工具列上的滑鼠輸入按鈕來啟用滑鼠輸入。模擬器組建區塊內的任何按一下事件現在都會以滑鼠事件形式傳送到在模擬器 VM 中執行的 Windows 10 Mobile OS。
已啟用滑鼠輸入的模擬器畫面。
模擬器工具列上的滑鼠輸入按鈕。
近距離無線通訊 (NFC)
使用模擬器 [其他工具] 功能表中的 [NFC]**** 索引標籤,在 Windows 10 Mobile 上建置及測試使用近距離無線通訊 (NFC) 功能的應用程式。NFC 對於一些情節而言非常實用,包括近接情節 (例如「輕觸以分享」) 或卡片模擬 (例如「輕觸以支付」)。
您可以使用一組模擬器,透過模擬一組手機彼此輕觸來測試您的應用程式,或者您可以透過輕觸標籤來測試您的應用程式。此外,在 Windows 10 中,行動裝置也已啟用 HCE (主機卡模擬) 功能,而且您也可以使用手機模擬器來模擬將您的裝置與付款終端機彼此輕觸以處理 APDU 命令回應流量。
NFC 索引標籤支援三種模式:
- 近接模式
- HCE (主機卡模擬) 模式
- 智慧卡讀卡機模式
在所有模式中,模擬器視窗都有三個區域。
- 左上角區段視選取的模式而異。此區段的功能取決於選取的模式,我們將在下面的模式特定小節詳細說明。
- 右上角區段會列出記錄檔。當您將一組裝置彼此輕觸 (或與 POS 終端機輕觸) 時,系統會記錄輕觸事件;而當裝置結束輕觸時,系統會記錄結束輕觸事件。此區段也會記錄您的應用程式是否在連線中斷之前回應,或您是否在模擬器 UI 中採取任何其他動作 (以及其時間戳記)。記錄檔在模式切換時仍會保留,而且您可以隨時點選 [記錄檔] 畫面上的 [清除]**** 按鈕來清除記錄檔。
- 畫面下半部是訊息記錄檔,其中顯示目前所選連線上傳送或接收之訊息的文字記錄 (視選取的模式而定)。
重要 第一次啟動 Tapper 工具時,您會看到 Windows 防火牆提示。您必須選取全部 3 個核取方塊,並允許該工具通過防火牆,否則該工具會失敗,而且不會顯示任何訊息。
啟動快速啟動安裝程式之後,請確認您已按照上面的指示在防火牆提示上選取全部 3 個核取方塊。此外,您也必須在已安裝 Microsoft 模擬器的相同實體主機電腦上安裝並使用 Tapper 工具。
近接模式
若要模擬一組手機彼此輕觸,您將需要啟動一組 Windows Phone 8 模擬器。因為 Visual Studio 不支援同時執行兩個相同的模擬器,您必須為每個模擬器選取不同的解析度,以因應此問題。
當您選取 [啟用對等裝置的探索] 核取方塊時,[對等裝置]**** 下拉方塊會顯示 Microsoft 模擬器 (在相同的實體主機電腦上或區域網路中執行) 與執行模擬器驅動程式的 Windows 電腦 (在相同的電腦上或區域網路中執行)。
兩個模擬器都執行之後:
- 在 [對等裝置] 清單中選取要做為目標的模擬器。
- 選取 [傳送到對等裝置]**** 選項按鈕。
- 按一下 [輕觸] 按鈕。這樣會模擬兩部裝置彼此輕觸,而且您應該會聽到 NFC 輕觸通知音效
- 若要將 2 個裝置中斷連線,只要按一下 [取消輕觸]**** 按鈕。
或者,您可以啟用 [在 (秒) 後自動取消輕觸] 核取方塊,並在其中指定您要讓裝置輕觸的秒數,這樣裝置將會在指定的秒數過後自動取消輕觸 (模擬使用者實際操作時會遇到的情況,他們只需要短暫地輕觸手機)。請注意,連線取消輕觸之後,目前的訊息記錄檔無法使用。
模擬從標籤讀取訊息或從另一部裝置接收訊息:
- 選取 [傳送給自己]**** 選項按鈕,以測試只需要一部已啟用 NFC 之裝置的情節。
- 按一下 [輕觸] 按鈕。這樣會模擬將裝置與標籤輕觸,而且您應該會聽到 NFC 輕觸通知音效
- 若要中斷連線,只要按一下 [取消輕觸]**** 按鈕。
使用近接模式,您可以插入訊息,就像訊息來自標籤或另一個對等裝置。工具可讓您傳送下列類型的訊息。
- WindowsURI
- WindowsMime
- WritableTag
- Pairing:Bluetooth
- NDEF
- NDEF:MIME
- NDEF:URI
- NDEF:wkt.U
您可以透過編輯 [承載] 視窗或在檔案中提供訊息,來建立這些訊息。如需這些類型與其使用方式的詳細資訊,請參閱 ProximityDevice.PublishBinaryMessage 參考頁面的<備註>一節。
Windows 8 驅動程式套件 (WDK) 包含驅動程式範例,此範例公開與 Windows Phone 8 模擬器相同的通訊協定。您將需要下載 DDK、建置範例驅動程式、在 Windows 8 裝置上安裝,接著將 Windows 8 裝置的 IP 位址或主機名稱新增到裝置清單,並將它與另一部 Windows 8 裝置或 Windows Phone 8 模擬器輕觸。
主機卡模擬 (HCE) 模式
在主機卡模擬 (HCE) 模式中,您可以測試您的 HCE 型卡模擬應用程式,方式是撰寫您的自訂指令碼以模擬智慧卡讀卡機終端機,例如銷售點 (POS) 終端機。此工具假設您熟悉在讀取器終端機 (例如 POS、識別卡讀取器或大眾運輸卡讀取器) 與智慧卡 (您在您的應用程式中所模擬) 之間傳送的命令回應組合 (與 ISO-7816-4 相容)。
- 按一下指令碼編輯器區段中的 [新增] 按鈕,以建立新的指令碼。您可以提供指令碼名稱,而且可以在完成編輯之後使用 [儲存]**** 按鈕來儲存指令碼。
- 下次啟動模擬器時,您將可以使用儲存的指令碼。
- 按一下指令碼編輯器視窗中的 [播放] 按鈕,以執行您的指令碼。此動作會執行模擬將您的手機與終端機輕觸並傳送您在指令碼中撰寫之命令的動作。或者,您可以按一下 [輕觸]**** 按鈕,然後按一下 [播放] 按鈕,在您按一下 [播放]**** 之後,才會執行指令碼。
- 按一下 [停止] 按鈕以停止傳送命令,這樣會停止傳送命令到您的應用程式,但在您按一下 [取消輕觸]**** 按鈕之前,裝置將維持輕觸狀態。
- 在下拉式功能表中選取指令碼並按一下 [刪除] 按鈕,以刪除您的指令碼。
- 在您使用 [播放]**** 按鈕執行指令碼之前,模擬器工具不會檢查您的指令碼語法。 由您的指令碼傳送的訊息取決於您卡片模擬器應用程式的實作。
您也可以使用 MasterCard (https://www.terminalsimulator.com/) 提供的終端機模擬器工具來進行付款應用程式測試。
- 選取指令碼編輯器視窗下方的 [啟用 MasterCard] 接聽程式核取方塊,然後啟動 MasterCard 的模擬器。
- 使用該工具時,您可以產生轉送到您應用程式 (透過 NFC 工具在模擬器上執行) 的命令。
若要深入了解 HCE 支援以及如何在 Windows 10 Mobile 中開發 HCE 應用程式,請參閱 Microsoft NFC 小組部落格。
如何針對 HCE 測試建立指令碼
指令碼是以 C# 程式碼撰寫,且當您按一下 [播放]**** 按鈕時,會呼叫您指令碼的「執行」方法,此方法接受 IScriptProcessor 介面,此介面是用來收發 APDU 命令、輸出到記錄檔視窗,以及控制等候來自手機之 APDU 回應的逾時。
以下是可用功能的參考:
public interface IScriptProcessor
{
// Sends an APDU command given as a hex-encoded string, and returns the APDU response
string Send(string s);
// Sends an APDU command given as a byte array, and returns the APDU response
byte[] Send(byte[] s);
// Logs a string to the log window
void Log(string s);
// Logs a byte array to the log window
void Log(byte[] s);
// Sets the amount of time the Send functions will wait for an APDU response, after which
// the function will fail
void SetResponseTimeout(double seconds);
}
智慧卡讀卡機模式
模擬器可以連線到您主機電腦上的智慧卡讀卡機裝置,如此插入或輕觸的智慧卡將顯示在您的手機應用程式中,而且可以使用 Windows.Devices.SmartCards.SmartCardConnection 類別來與 APDU 通訊。為了讓此功能運作,您需要將相容的智慧卡讀卡機裝置連接到您的電腦,USB 智慧卡讀卡機 (NFC/無接觸式與插入式/接觸式) 非常普及。若要讓模擬器可搭配已連接的智慧卡讀卡機運作,請先選擇 [讀卡機] 模式 (這樣會顯示一個下拉方塊,其中列出已連接到主機系統的所有相容智慧卡讀卡機),然後從下拉式清單中選擇要連線的智慧卡讀卡機裝置。
請注意,並非所有 NFC 相容智慧卡讀卡機都支援所有類型的 NFC 卡,而且部分不支援標準 PC/SC 儲存卡 APDU 命令。
在模擬器中執行應用程式
如需在模擬器中執行 app 的詳細資訊,請參閱如何部署並執行適用於 Windows Phone 8 的 app。
已知問題
以下是關於模擬器的已知問題,以及當您遇到這類問題時該如何解決的建議方法。
錯誤訊息:「移除虛擬乙太網路交換器時發生錯誤」
在某些情況下 (包括在您更新為新的 Windows 10 正式發行前小眾測試版之後),與模擬器相關聯的虛擬網路交換器會進入無法透過使用者介面刪除它的狀態。
若要從此情況中復原,請從系統管理員命令提示字元執行 "netcfg -d":C:\Program Files (x86)\Microsoft XDE\<version>\XdeCleanup.exe
。當命令完成執行時,需重新啟動電腦,才能完成修復程序。
注意 這個命令將會刪除所有網路裝置,而不只是與模擬器相關聯的裝置。當您的電腦重新啟動時,將會自動探索所有硬體網路裝置。
無法啟動模擬器
Microsoft 模擬器包含 XDECleanup.exe,這是一個工具,可刪除所有的 VM、差異磁碟及模擬器特定的網路交換器,而它已經隨附於模擬器 (XDE) 二進位檔中。如果模擬器 VM 進入錯誤狀態,您應該使用這個工具來清除它們。從系統管理員命令提示字元執行此工具:C:\Program Files (x86)\Microsoft XDE\<version>\XdeCleanup.exe
注意 XDECleanup.exe 會刪除所有模擬器特定的 HYPER-V VM,而且也會刪除任何的 VM 檢查點或儲存狀態。
解除安裝 Windows 10 行動裝置版映像
當您安裝模擬器時,即會安裝 Windows 10 行動裝置版 VHD 映像,其會在控制台的 [程式和功能] 清單中取得自己的項目。如果您想要解除安裝該映像,可在安裝的程式清單中尋找 Windows 10 行動裝置版映像 - <版本>、在其上按一下滑鼠右鍵,然後選擇 [解除安裝]。
在目前版本中,您接著必須手動刪除模擬器的 VHD 檔案。如果您已將模擬器安裝到預設路徑,VHD 檔案即會在 C:\Program Files (x86)\Windows Kits\10\Emulation\Mobile\<版本>\flash.vhd 中。
針對模擬器進行疑難排解
如需針對模擬器進行疑難排解的詳細資訊,請參閱下列主題:
支援資源
若要尋找使用 Windows 10 工具遇到的問題及解決問題,請瀏覽 Windows 10 工具論壇。若要查看所有 Windows 10 開發論壇,請瀏覽此連結。