類比Windows Mobile平台
概述
在介紹如何在Windows家族作業系統下類比基於Windows Mobile平台的PPC和Smart Phone之前,先簡要介紹什麼是PPC,Smart Phone,Windows Mobile作業系統。在認識到它們的優點後,能更好的體現出類比Windows Mobile平台的重要性。
Windows Mobile是運行在行動裝置(Pocket PC和Smartphone)上的作業系統,將熟悉的Windows案頭擴充到了個人裝置中。在Windows家族上能實現的功能在Windows Mobile上基本都可以實現,並且與其有著相似的使用者體驗和介面。如辦公方面Windows Mobile內建(Office Mobile, Pocket Outlook),娛樂方面(Windows Media Player 10, Pocket IE)等等。
為Windows Mobile的發展曆程:
本文主要討論Windows Mobile 5.0作業系統。
Pocket PC 和 Smartphone 之間的區別。Smartphone 主要是在使用方面作為一種電話裝置而設計的。並且藉助Windows Mobile 5.0,提供對多媒體娛樂和日常辦公強有力的支援。Pocket PC 主要是作為一種小型個人電腦而設計的,並且目前相當一部分 Pocket PC 裝置也具有電話功能,我們也稱這種帶電話功能的PPC為Pocket PC Phone。這樣出差時不再需要攜帶膝上型電腦,手機,數位相機和MP3隨身聽等等各種裝置,只需帶一個PPC就足夠了,因為其內建Office辦公軟體,可進行投影片的示範;並且也擁有百萬像素層級的網路攝影機,足以滿足一般照相攝像的需要;並且在各種各樣擴充卡的支援下進行視頻示範,播放各種格式及容量的視頻,音樂甚至電影,也不再是“不可能完成的任務”。
Windows Mobile全球市場發展狀況
目前Windows Mobile作業系統擁有45%的全球個人行動裝置佔有率,覆蓋48個國家的68個電訊廠商。41家移動終端生產廠商,30種手機都採用該作業系統。全球近80%的移動企業解決方案都是基於Windows Mobile平台來實現的。全球700萬Visual Studio及38萬Windows Mobile專業開發人員為其研發各種應用軟體。並且全球9000餘家微軟夥伴為其提供各種各樣的支援人員。
類比Windows Mobile平台可以更加方便安全的測試各種應用軟體及其功能。對於普通使用者來說,可以先在模擬器上安裝軟體並進行測試,以檢驗該軟體的功能是否符合自己的需要;對於開發人員來說,可以在模擬器上測試編寫的程式,以免對真正的裝置造成損害。通過下面的章節您將瞭解到,如何在PC上類比Windows Mobile平台,並對其進行配置。
1 模擬器的安裝及其實質1.1 擷取Windows Mobile模擬器1.1.1 Visual Studio 2005
Visual Studio 2005開發環境包含Windows Mobile模擬器。
Visual Studio 2005是一個非常便捷的整合式開發環境,並帶有強大的調試工具。利用其整合的Windows Mobile模擬器(裝置模擬管理器)這個工具,我們可以類比出大部分Windows Mobile裝置,如Pocket PC和Smart Phone等等。
首先啟動Visual Studio 2005,然後選擇“工具”,單擊“裝置模擬管理器”。
通過該管理器,我們可以虛擬啟動和管理基於Windows Mobile平台的Smart Phone和PPC終端裝置。
但Visual Studio 2005的安裝是非常龐大的(基本安裝需要大約2.5-3Gb的空間),而且也不是免費的,所以對於僅進行一般軟體測試,不進行研發來說,安裝Visual Studio 2005是非常奢侈和沒有必要的。因為我們可以通過其他途徑免費的來擷取該模擬器而不需要安裝Visual Studio 2005。
1.1.2 擷取單獨的“裝置模擬管理器”
選擇單獨擷取“裝置模擬管理器”而非Visual Studio 2005,是一種非常靈巧的選擇,因為其佔據更小的資源空間,並且可以免費的從微軟網站上下載。如下:
http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en
在該網站上我們可以下載到“裝置模擬器”(V1Emulator.zip)和Windows Mobile 5.0 MSFP英文版的鏡像(efp.msi)這兩個檔案。下載後分別雙擊安裝即可。
“裝置模擬器(Device Emulator 1.0)”是一個類比基於ARM裝置的獨立版本,他與Visual Studio 2005所內建的模擬器完全相同。 它比它的前輩(x86模擬器)有著更多的優點:
- 直接運行ARM處理器而非x86處理器的編譯代碼。在大部分情況下,你可以在模擬器上運行和裝置相同的二進位代碼。
- 支援“ActiveSync”同步。提供對“ActiveSync”同步的完全支援,可以使你調試軟體的同步功能和實現PC上的真實資料和模擬器的即時同步。
- 提供對更多開發環境的支援。它已經通過測試可以更好的被用於Visual Studio 2005,Visual Studio .Net 2003和eMbedded Visual C++4.0(eVC4)SP4下的軟體開發和調試。並且不需要串口電纜的串連就可以支援ActveSync。
- 提供對GAPI的支援。你可以在模擬器上編寫和調試GAPI遊戲。
注意:“裝置模擬器”中並不帶有作業系統,因此您還必須安裝作業系統的鏡像檔案(efp.msi)。
在安裝作業系統鏡像檔案之前,必須安裝“模擬器虛擬網卡”。該軟體可以在微軟的網站上免費下載,地址如下:
http://www.microsoft.com/downloads/details.aspx?familyid=DC8332D6-565F-4A57-BE8C-1D4718D3AF65&displaylang=en
下載後雙擊安裝。
模擬器虛擬網卡用於將模擬器的網卡映射到PC機物理網卡上,這樣一個物理網卡可以擁有兩個IP地址,一個分配給PC,另外一個分配給模擬器。其工作原理與微軟VPC的虛擬網路服務很類似,它們都是註冊了一個微軟的網路虛擬服務並綁定到網路介面卡上,通過網路介面卡來構建一個虛擬網路。
只有安裝了虛擬網卡,並對模擬器進行設定,才能使其串連到互連網和通過ActiveSync軟體和PC進行資料交換。
1.2 裝置模擬器的實質
某種意義上講“裝置模擬器”和我們經常使用的虛擬機器 (VMware, VPC)的原理是一樣的。為“裝置模擬器”的層次模型圖。
與OSI網路模型圖類似,服務是先從最低層一層一層地傳遞到最高層依次為 “Virtual Service”-->“Device Emulator Manager”-->“Device Emulator”-->“Device Virtual Image”-->“Virtual Windows Mobile”。
“Virtual Services”最低層服務,提供一些如虛擬網路這些服務。它的上一層,“Device Emulator Manager”層管理哪些鏡像是被啟用的,哪些鏡像是被串連的。它的上一層是 “Device Emulator ”這個程式。它通過調用它的上一層 “Device Virtual Image”來類比實際裝置。它的上一層 “Virtual Windows Mobile”可以運行虛擬Windows Mobile系統。
虛擬模擬器最大的好處是可以同時管理多個虛機,虛機同時也具有複原性。當我們遇到一些程式在裝置上運行異常,比如說不能正常地退出。我們可以通過虛機的複原性這個特點,重新“Reste”,避免了在實際裝置上啟動並執行一些風險。
2 模擬器各程式介紹2.1 裝置模擬管理器
裝置模擬管理器是用來管理一個或多個虛擬設備。為裝置類比管理器的介面圖
2.2 裝置模擬器
在上一章介紹過,“裝置模擬器”是工作在“裝置模擬類比管理器”這層之上的,所有的裝置鏡像都需要裝置模擬器進行驅動。這個工具本身是工作在命令列模式的,也就是說可以通過輸入參數的方法來啟動一個特定的虛機環境。該程式在目錄中的檔案名稱為“DeviceEmulator.exe”。當我們雙擊這個檔案時會彈出一個有關參數協助的對話方塊,。
實際上在“裝置模擬管理器”中,也是通過一些之前預定義的一些參數,來運行“裝置模擬器”這個應用程式,從而調用不同的虛擬鏡像,啟動不同的虛擬機器。
2.3 虛擬行動裝置鏡像
如果安裝了如第一章所述的Windows Mobile 5.0鏡像檔案,在其安裝資料夾裡可以找到,的這些檔案。
其中以“.nb0”結尾的檔案均為虛擬設備鏡像檔案。該鏡像檔案就像VPC和VMWare裡面的虛擬硬碟一樣。有一些老版本的鏡像檔案是以 “.bin”為結尾的。 微軟提供不同Windows Mobile系統版本和不同Windows Mobile語言版本的下載。
每個鏡像檔案還有4個與其相關的裝置面板檔案,其中3個繪圖檔案和一個用來描述它的XML檔案。如所示。
3 模擬器的配置及使用
除了可以通過“裝置模擬器管理器”來啟動模擬器以外,我們還可以通過“DeviceEmulator.exe”加參數的形式,來啟動自己定義的模擬器。
3.1 如何使用模擬器的命令列參數
在前面的章節裡,已經提到過,通過執行“DeviceEmulator.exe”加參數的形式來調用各種自訂的模擬器。那如何使用模擬器的命令列參數?最常見的辦法就是使用批次檔(*.bat)。
首先建立一個以.bat結尾的檔案,然後用記事本開啟對其進行編輯,,是一個名為test.bat的樣本檔案。
雙擊運行該批次檔後,可以啟動一個帶有虛擬外接儲存卡的裝置模擬器。下面將介紹如何用“裝置模擬器管理器”和命令列參數,這兩種方式來配置模擬器。
3.2 配置模擬器顯示外觀
啟動裝置模擬器後,單擊“檔案”選項,然後選擇“配置”,便會出現如所示的對話方塊,開啟“顯示”選項卡。在“外觀”這個選項裡,我們可以選擇描述裝置模擬器外觀的XML檔案。
命令列參數:“/skin filename”可以指定皮膚檔案。
3.3 為模擬器添加外接儲存卡
裝置的儲存空間是有限的,所應在實際行動裝置應用上,我們經常把相當一部分檔案放到外接儲存卡上。下面將介紹如何在模擬器上虛擬出外接儲存卡。
啟動裝置模擬器後,單擊“File”選項,然後選擇“Configure”,如所示,在“General”選項卡內的 “Shared folder”上選擇一個已存在的目錄為虛擬外接儲存卡。
命令列參數:“/sharedfolder directoryname”可以為模擬器安裝一個虛擬外接儲存卡。
3.4 為模擬器配置網路連接
啟動裝置模擬器後,單擊“檔案”選項,然後選擇“配置”,在快顯視窗中選擇“網路”選項卡,然後再鉤選“啟用NE2000 PCMCIA網路介面卡並綁定到:”並單擊“確定”按鈕。如所示
此時裝置模擬器,會彈出一個通知, 二者任選其一即可,。
在網卡設定裡,我們可以看到已經通過DHCP伺服器獲得了一個IP地址。
現在我們就可以串連到互連網上了,開啟“Internet Explorer”並在地址欄上輸入你想要瀏覽的網址,。
注意:當你的機器擁有兩塊或以上網卡的時候,模擬器會自動選擇綁定到一塊已經有資料連線的網卡上,以保證資料的連通性。
命令列參數指定虛擬設備的網路綁定:
/p [macaddress] 綁定網卡到虛擬設備的NE2000 PCMCIA網卡上。
/n [macaddress] 綁定網卡到虛擬設備的CS8900網卡上。(此網卡在虛擬設備上不常用)
3.5 串連外部裝置
也許因為企業的特殊需要,行動裝置需要串連到某些外接裝置上,如外接的GPS裝置,條碼掃描器,等等。通常情況下,模擬器可以通過串口來串連這些裝置。
啟動裝置模擬器後,單擊“File”選項,然後選擇“Configure”,在“Peripherals”選項卡上選擇需要把哪個串口映射到哪個指定的電腦連接埠上,然後單擊“OK”。如所示
命令列參數:“/u0 serialport /u1 serialport /u2 serialport”可以把模擬器的序列埠映射到計算的序列埠上。
3.6 組織眾多的虛擬鏡像
“裝置模擬器管理器”的最大優點就是可以管理多個鏡像檔案。
當你開啟一個虛擬鏡像以後,如果沒有給其指定名稱,它將被賦予一個VMID,以便識別虛擬設備。如所示。
不過這樣做也有個缺點,就是當我們同時開啟多個模擬器的時候,無法分辨出哪個是我們想要的模擬器,看到的只是一大堆的VMID代碼。不過我們可以通過命令列參數來解決這個問題,可以不用VMID代碼而是VMname, 也就是說給他們指定特殊的顯示名稱。
命令列參數: “/vmname name”給虛擬設備指定顯示名稱。
當然如果你想指定特殊的vmid通過以下的參數也可以實現:“/vmid {GUID}”
3.7 命令列參數例子
為一個命令列參數的例子。
運行該批次檔,將啟動一個Windows Mobile 5.0 MSFP的虛擬PPC裝置。其特性如下:
- BIN: msfp_beta.nb0
- RAM: 128M
- Skin: PPC
- SD/MMC: ../storagecard
- Name: Windows Mobile 5 MSFP
- Console: Open
3.8 通過ActiveSync將虛擬設備串連到PC
使用ActiveSync,利用DMA可以將虛擬設備串連到PC上,這樣可以實現PC和虛擬機器檔案的交換,而且還可以利用這種辦法在虛擬機器上安裝軟體。並且使用DMA可以提高虛擬設備串連的效率。下面讓我們一步一步的看模擬器是如何通過ActiveSync串連到PC機上的。
首先啟動ActiveSync,然後單擊“檔案”選擇“串連設定”,
然後會出現的對話方塊,在該對話方塊中鉤選“允許串連到以下其中一個連接埠”然後選擇 “DMA”,再單擊“確定”按鈕。
此時已經完成了ActiveSync端的設定,現在來配置“模擬裝置管理員”。
首先選擇好要與電腦進行同步的那個模擬器,然後滑鼠右鍵點取它,選擇“Cradle”選項。
此時ActiveSync會自動與裝置進行串連並同步。
轉載自:http://www.supinfo-projects.com/cn/2006/winmobile_cn/3/