[Windows Phone]關於Windows Phone模擬器

  • 5800
  • 0

[Windows Phone]關於Windows Phone模擬器

前言

這篇文章主要在探討Windows Phone 8模擬器啟動程式(讓我們不用Visual Studio就可以啟動)、映像檔結構與運作原理。

 

系統需求與條件

不免俗的還是必須提一下,如果要使用Windows Phone 8的模擬器,您的作業系統必須要是Win8或Win 8.1、CPU處理器一定得要有支援 SLAT(第二層位址轉換)、且要啟用Hyper-V,那關於Windows Phone模擬器的映像檔要如何取得?請到微軟官方下載Windows Phone SDK 8.0(http://www.microsoft.com/zh-tw/download/details.aspx?id=35471)裡頭就有包含了~

PS: 若安裝Visual Studio 2013的讀者,請不用在下載安裝Windows Phone SDK,因為在Visual Studio 2013安裝檔已經有包含,若當初安裝時勾掉的再把它拿出來裝吧!

 

模擬器啟動程式xde

Windows Phone的模擬器啟動程式位於"C:\Program Files (x86)\Microsoft XDE\8.0",基本上是提供模擬器實體的外框(Skin),可以看到此資料夾下有各種螢幕大小的外框圖:

image

而Windows Phone的主要映像檔則在"C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images":

image

仔細一看會發現,Flash.vhd最大(將近2G),而其他大小XXXxYYY的檔案只有3X MB

因為在這裡使用了Hyper-V的差異磁碟技術,所以所有模擬器會先讀Flash.vhd、再讀Flash.XXXxYYY.vhd

知道映像檔位置與啟動程式那就可以開始啟動映像檔了~

 

請絕對先不要做以下敘述:

1. 以"管理員身分"啟動Cmd(Command Prompt)

2. cd到"C:\Program Files (x86)\Microsoft XDE\8.0”

3. xde -vhd "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images\Flash.vhd"

使用以上敘述後,確實可以開啟Windows Phone模擬器,且此模擬器能像Android模擬器一樣具有狀態性,會將所有安裝的APP、設定通通保留,但是從此以後再也不能從Visual Studio正常開啟模擬器除錯了!!!!

 

因為這樣開啟時,會更動Flash.vhd,導致後續無法由Visual Studio正常開啟模擬器!

 

從Visual Studio啟動模擬器

那究竟Visual Studio如何開啟模擬器的?

 

我從Hyper-V管理員發現,原來VS開啟模擬器時,會在

C:\Users\使用者名稱\AppData\Local\Microsoft\XDE

下再建立一個差異磁碟VHD與AVHD檔案

(命名規則: dd.XXXxYYY.ZZZ.vhd,其中XXX螢幕寬、XXX螢幕高、ZZZ記憶體大小)

image

 

這也就是為什麼每次Visual Studio重開模擬器時,所有APP都不見了的原因~~

 

根據MSDN的問答,此種啟動方式應該可以使用以下命令達成:

"C:\Program Files (x86)\Microsoft XDE\8.0\XDE.exe" /vhd "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images\Flash.vhd" /video "720x1280" /memsize 1024 /language 409 /creatediffdisk "%Temp%\dd.720x1280.1024.vhd" /fastShutdown

 

想要獲得更多xde的附帶參數,可以下以下命令:

XDE.exe /?

 

image

 

參考資料

1. Tim Chang's DBlog提姆 的 IT 技術文章 - Windows Phone 8 SDK 內容和注意事項

http://www.dotblogs.com.tw/timchang/archive/2012/10/31/79767.aspx

2. MSDN - How to start Windows Phone 8 Emulator without Visual Studio

http://blogs.msdn.com/b/notime/archive/2013/04/21/shortcut-to-start-windows-phone-8-emulator.aspx

3. TechNET - How to Launch Windows Phone 8 Emulator Without Using Visual Studio 2012

https://social.technet.microsoft.com/wiki/contents/articles/18173.how-to-launch-windows-phone-8-emulator-without-using-visual-studio-2012.aspx