Windows Phone 7 智能型手機應用程序開發總覽

quguiliang 13年前發布 | 1K 次閱讀

摘要

Windows Phone 7 是 Microsoft 推出的全新智能型手機操作系統,不但具有新穎的用戶接口,也支持整合當紅的社交網站與微網志,內建搜尋功能,LBS (Location-Based Service) 適地性服務,視訊與音樂播放功能,先進而且具高度生產力的游戲開發支持,以及多點觸控控制等等,是 Microsoft 逐鹿智能型手機巿場的重要先鋒。在這一篇文章中我們將要為大家介紹開發 Windows Phone 7 智能型手機應用程序的基本知識與相關工具,開啟開發 Windows Phone 7 應用程序的大門。

[環境安裝]

欲開發 Microsoft 最新的 Windows Phone 7 智能型手機應用程序,您必須先下載并安裝 Windows Phone Developer Tools 套件,再利用 Windows Phone Developer Tools 套件提供的 Visual Studio 2010 Express 進行開發 Windows Phone 7 智能型手機應用程序的工作,將開發妥的應用程序部署到 Windows Phone 仿真器進行測試,如果您想要開發智能型手機的游戲程序,也可以利用 Microsoft Expression Blend for Windows Phone 或 XNA Game Studio 發展 2D 與 3D 的游戲程序。請注意 Windows Phone Developer Tools 套件只能安裝在 Windows Vista SP2 或 Windows 7 計算機,而且皆不可以是簡易版 (Starter Edition)。除此之外,欲利用 Windows Phone Developer Tools 套件提供的 XNA Game Studio 4.0 發展游戲程序的程序設計師請特別注意,Windows Phone Developer Tools 套件不支持安裝在任何的虛擬機上,同時計算機配備的顯示適配器必須符合 DirectX 10 版定義的規格,并配備 WDDM 1.1 版的驅動程序。

Windows Phone 7 的硬件支持

Windows Phone 7 的硬件在很多地方都有別于之前的系統,包括 800 x 480 或 480 x 320 屏幕分辨率,支持多點觸控,內建 A-GPS 衛星定位系統 (反應速度更快的衛星定位系統),G-Sensor (Accelerometer),電子羅盤傳感器,光源傳感器,以及不需要直接接觸就可以偵測到附近物體的 Proximity Sensor。

Windows Phone 7 智能型手機支援最少 500 萬畫素的數字相機,內建 Codec 與多媒體影音播放功能,最少 256MB 的 RAM 與最少 8GB 的閃存,GPU (圖形處理器),ARMv7 Cortex/Scorpion 或更佳的處理器,以及 Back、Start、Search 三個硬件按鍵。

Windows Phone 7 的軟件支持

Microsoft 最新推出的 Windows Phone 7 智能型手機主要的要求對象不止是一般的普羅大眾,還包括為數眾多的企業用戶,所以在軟件支持方面加入了對云端服務的支持。圖1所示即為 Windows Phone 7 的軟件支持,上方顯示的是 Runtime 和工具,下方顯示的是云端相關的服務,兩者構成開發 Windows Phone 7 應用程序的支持,以及應用程序執行時期的支持。

圖1:Windows Phone 7 的軟件支持

從圖1 可以看出,開發 Windows Phone 7 應用程序的主要工具除了可以依靠傳統的 Visual Studio 2010 Express for Windows Phone 以外,還可以利用 Expression Blend for Windows Phone,不管使用的是那一種工具,都支持將開發妥的應用程序部署到具仿真 GPU (圖形處理器 - Graphic Processing Unit) 能力的 Windows Phone 7 仿真器進行測試。

使用 Visual Studio 2010 Express for Windows Phone 可以開發以 Silverlight Framework 為基礎的應用程序,也可以開發以 XNA Framework 為基礎的應用程序,而且支持應用程序偵錯與封裝。使用 Expression Blend for Windows Phone 只能開發以 Silverlight Framework 為基礎的應用程序,允許 Silverlight 應用程序設計師以熟知的程序開發經驗開發 Windows Phone 7 應用程序。

除了 Visual Studio 2010 Express for Windows Phone 與 Expression Blend for Windows Phone 以外,欲開發 Windows Phone 7 游戲程序的程序設計師還可以利用 XNA Game Studio 4.0 設計可以適用于 Microsoft Windows、Microsoft Xbox 360、Microsoft Zune、與 Windows Phone 7 的游戲程序。透過 XNA Game Studio 的幫助,Visual Studio 2010 Express for Windows Phone 就可以利用 XNA Framework 進行開發游戲程序的工作。當然,Microsoft 在提供開發 Windows Phone 7 應用程序的工具的同時,也提供了相關的說明文件,教學文件,論壇,部落格,技術網站,以及豐富的范例程序,協助程序設計師解決開發 Windows Phone 7 應用程序的種種問題。

在支持 Windows Phone 7 應用程序開發的 Framework 方面,Windows Phone 7 提供了兩種 Framework,分別是 Silverlight Framework 與 XNA Framework。Silverlight Framework 是以 XAML 文件為基礎的應用程序設計概念,透過事件驅動機制的幫助,提供與開發 Windows 應用程序和 Silverlight 應用程序相同的程序開發體驗。XNA Framework 主要的目的則是用來支持以循環為基礎的游戲程序,意即利用循環不斷地更新畫面顯示的內容,顯示流暢的游戲效果。

Silverlight Framework 和 XNA Framework 都是架構在 NET 平臺上的應用程序開發架構,能夠有效率地協助程序設計師發展安全的智能型手機應用程序,而且程序設計師只要稍微修改現有的 Silverlight 應用程序或 XNA 應用程序,例如修改屏幕的高度和寬度,并加入智能型手機特有的傳感器相關的功能,就可以將 Silverlight 應用程序或 XNA 應用程序移植到 Windows Phone 7 上執行。

使用 Silverlight Framework 來開發 Windows Phone 7 應用程序類似設計 Silverlight 應用程序,以 Silverlight Framework 為基礎的 Windows Phone 7 應用程序是由一堆的 Page (繼承自 PhoneApplicationPage 類別的衍生類別) 組成的,每一個 Page 是一個擴展名為 .XAML 的文件,代表一個操作畫面,程序設計師可以利用 Visual Studio 2010 Express for Windows Phone 或是 Expression Blend for Windows Phone 來設計 Page 的用戶接口。XNA Framework 和 Silverlight Framework 不一樣的地方在于 XNA Framework 主要的用途在支持開發游戲程序,提供 2D/3D 的動畫,音效,及各種游戲相關的功能,協助有志于開發游戲程序的企業或個人發展 Windows Phone、Xbox 360、Zune 播放器、以及 Windows 7 平臺的游戲程序。

在支持應用程序開發方面,程序設計師可以利用 Framework 提供的功能控制 Windows Phone 7 的多點觸控屏幕,傳感器,音效裝置,以及麥克風等硬件,或是播放聲音與影片。

在檔案處理方面 Windows Phone 7 應用程序只能存取位于隔離儲存區 (Isolated Storage) 中的檔案,無法存取隔離儲存區以外的任何檔案,避免惡意軟件危害到其他應用程序或 Windows Phone 7 本身的運作。

Windows Phone 7 支持的 Location 功能可以和云端服務提供的 Location 服務整合,協助應用程序查詢裝置的實際位置,在裝置位置改變時得到通知,判斷裝置移動的方向和速度,或是計算兩點之間的距離。

支持上述種種功能的底層是一組功能完整的 Framework,如圖2 所示,位于最底層的 Common Base Class Library 提供了 Microsoft .NET 平臺的基本功能,也是 Silverlight Framework 與 XNA Framework 的基礎。

圖2:支持開發 Windows Phone 7 應用程序的 Framework

除了內建在 Windows Phone 7 智能型手機的 Framework 以外,Windows Phone 7 應用程序也可以使用到因特網的云端服務,包括 Windows Azure、Xbox LIVE 服務、Notification 服務、Location 服務、以及其他各種第三方提供的 Web 服務和 WCF 服務,甚至是 REST 服務 (Representational State Transfer) 等先進的技術,為 Windows Phone 7 應用程序提供更豐富的功能支持。透過云端服務的幫助,能夠讓使用者在使用不同的計算機裝置時都可以存取到共同的數據,享受相同的服務,是支持發展新一代的行動運算解決方案的重要基礎。

透過云端服務的幫助,程序設計師不但能夠使用到超越 Windows Phone 7 本身內建的功能以外的更多功能,而且云端服務是 24 小時不間斷的服務,不會因為智能型手機的電池電力耗盡而無法取得服務。

[說明]

Xbox Live 是由微軟公司所開發的多用戶在線游戲與數字媒體配送服務平臺,最初是 2002 年 11 月為 Xbox 游戲機平臺推出的服務,之后更新成可以支持 Xbox 360 平臺,Microsoft Zune 可攜式媒體播放器,與 Microsoft Windows 平臺,最新的版本已經可以支持 Windows Phone 7 智能型手機。透過 Xbox Live 服務的幫助,使用者不管使用的是個人計算機,Xbox/Xbox 360 游戲機,Zune 播放器,或是 Windows Phone 智能型手機,都可以利用相同的操作接口方便地取用共享的信息和服務。從發展應用程序的角度來看,Xbox Live 也是支持發展跨越多種平臺與裝置的游戲程序的重要服務。

Microsoft 提供的云端服務中,Notification 服務能夠協助 Windows Phone 7 應用程序以訂閱的方式收到欲處理的事件,節省定時詢問特定的資料或狀態耗費的電力。Location 服務能夠利用 Wi-Fi、Cellular、和 GPS 等數據,為 Windows Phone 7 應用程序提供定位相關的功能。另外,Identity 服務能夠提供身份驗證功能,Feed 服務能夠提供數據喂入服務,Social 服務能夠提供社群服務,而 Map 服務則可以提供地圖與導覽服務。

Windows Phone 7 應用程序開發完成后,程序設計師可以利用 Portal 服務將開發好的應用程序發布到手機在線軟件商店 (即 Marketplace),讓使用者購買和使用。

在上傳 Windows Phone 7 應用程序到手機在線軟件商店之前,您必須先使用 Windows Live 賬號登入到手機在線軟件商店并進入注冊,注冊完成后就可以利用 Portal 服務提供的功能將開發好的應用程序上傳到在線軟件商店。程序設計師必須將欲上傳的應用程序準備成 .xap 格式的壓縮文件再進行上傳,上傳成功之后可以查詢應用程序的認證狀態,并在應用程序通過 Portal 服務的認證之后收到認證信。通過認證的應用程序將會以程序設計師訂立販賣價格發布到在線軟件商店供使用者購買和下載。如果程序設計師修正應用程序的錯誤,為應用程序添加新功能,或是另外開發新的應用程序,都需要重復相同的應用程序認證程序,才能將新的應用程序或是修改過的應用程序發布到在線軟件商店。

在線軟件商店除了能夠提供程序設計師進行應用程序的銷售以外,還有提供 Trial API,協助程序設計師開發試用版的應用程序供用戶下載試用。除此之外,在線軟件商店也提供完整的銷售報告,使用者的回饋意見,用戶對應用程序的使用意見,或是用戶反應的應用程序錯誤等重要信息,供程序設計師參考。

Silverlight Framework vs XNA Framework

了解了 Windows Phone 7 的硬件支持和軟件支持之后,在建立 Windows Phone 7 應用程序項目的時候,程序設計師必須面對選取 Silverlight Framework 或選取 XNA Framework 做為應用程序開發基礎的抉擇。從圖3 所示的 Framework 架構功能圖可以看出,Silverlight Framework 與 XNA Framework 的底層是一組共同的服務,提供傳感器相關的功能,Location 功能,Live 服務功能,網絡通訊功能,XNA 的音效 API,以及 XNA 的媒體 API,而位于這一組共享服務底下的則是 .NET Compact Framework,由 .NET Compact Framework 提供基礎程序開發協助,包括數據型態,XML 文件處理,LINQ 語言整合查詢,Isolated Storage 隔離儲存區,WCF 服務,與串行化等功能。

圖3:Silverlight Framework 與 XNA Framework 的架構與功能

從圖3 可以看出 Silverlight Framework 和 XNA Framework 具有相同的本質,差別在于 Silverlight Framework 和 XNA Framework 支持的是不同類型的應用程序。Silverlight Framework 支持開發一般的 Windows Phone 7 應用程序,提供程序設計師設計應用程序需要的控件以及顯示功能,當然也支持動畫功能供應用程序使用,而 XNA Framework 主要的用途是支持程序設計師設計游戲相關的程序,包括畫面連續更新顯示的協助,Content Pipeline 游戲內容處理功能,以及 2D/3D 的圖形顯示。

[說明]

XNA Framework 的 Content Pipeline 是一種制作游戲內容 (包括 Texture、Sprite、Mesh、Effect、Font、Music、音效、Level 設定、和角色的特質)的功能,協助程序設計師在游戲設計的階段準備游戲程序執行時期需要用到的所有游戲內容,避免游戲程序執行的時候為了將各種不同的數據格式轉換成游戲支持的內容格式而影響游戲執行的速度。

圖4 所示即為 XNA 的 Content Pipeline 功能處理游戲內容的過程:

圖4:XNA Content Pipeline 功能處理游戲內容的過程

由圖4 的內容可以看出,不同格式的游戲內容格式經由 Importer 匯入之后,會轉換成 Content DOM (Document Object Model) 能夠表示的對象格式,也就是 Processor 能夠處理的格式,Content DOM 表示的對象經由 Processor 處理之后,透過 Content Compiler 編譯成 .XNB (XNA Binary File 的縮寫) 格式的內容,以便被 Windows、Xbox 360、或 Windows Phone 7 平臺中執行的游戲加載使用。

[提示]

XNA 的 Content Pipeline 功能允許程序設計師擴充其內建的功能,以處理新興的游戲內容格式,或是產出自定義的輸出格式。

表1 列有 Silverlight Framework 和 XNA Framework 的功能特性以及適用的應用程序類型:

表1:Silverlight Framework 和 XNA Framework 的功能特性以及適用的應用程序類型
Silverlight Framework 的功能特性 XNA Framework 的功能特性
適合開發以 XAML 文件為基礎的事件驅動應用程序 適合開發高效能的游戲
適合應用 Silverlight 網頁開發經驗到 Windows Phone 7 應用程序開發 適合快速開發 2D 和 3D 的游戲
提供控件供應用程序開發使用 提供 Content Pipeline 功能,協助應用程序處理游戲程序執行時期欲使用的游戲內容
支持影音媒體播放功能  
支持提供瀏覽網頁功能的 WebBrowser 控件,支持顯示高互動地圖的 Bing Map Silverlight 控件,支持開發全景式瀏覽功能的 Panoramic 控件,以及支持以軸心的方式來回瀏覽應用程序頁面或數據的 Pivot 控件。  

[提示]

選擇開發 Windows Phone 7 應用程序欲使用的 Framework 之后并未限制應用程序不能使用另外的 Framework 提供的功能,也就是說選擇 Silverlight Framework 做為應用程序發展基礎的應用程序還是能夠透過參考組件的方式使用到 XNA Framework 提供的功能,反之,選擇 XNA Framework 做為應用程序發展基礎的應用程序也同樣能夠透過參考組件的方式使用到 Silverlight Framework 提供的功能。

建立 Windows Phone 7 應用程序項目

欲使用 Visual Studio 2010 Express for Windows Phone 建立 Windows Phone 7 應用程序,您可以啟動 Visual Studio 2010 Express for Windows Phone,執行 [File | New Project] 功能,屏幕上就會出現如圖5 的畫面,于左方窗口的 [Visual C#] 項目下可以看到 Visual Studio 2010 Express for Windows Phone 支持的兩種應用程序型態,分別是 Silverlight for Window Phone 和 XNA Game Studio 4.0。

圖5:使用 Visual Studio 2010 Express for Windows Phone 建立項目的畫面

選擇 [Visual C#] 項目下的 Silverlight for Windows Phone,于中間的窗口選擇 [Windows Phone Application] 項目型態,然后按下 [OK] 鍵,就可以建立以 Silverlight Framework 為基礎的 Windows Phone 7 應用程序,項目建立成功后您就可以看到類似圖6 的結果畫面。請注意 [Solution Explorer] 窗口中名稱為 MainPage.xaml 的檔案代表應用程序的主畫面,您可以直接從 [Toolbox] 窗口將控件拖曳到 MainPage.xaml 放置,設計應用程序的操作畫面,而編輯應用程序操作畫面的結果會反應在 MainPage.xaml 檔案的原始檔編輯畫面中,而為操作畫面上的控件撰寫事件處理程序時,程序代碼會被自動加入到 MainPage.xaml.cs 檔案中,整體的應用程序開發經驗對具備 Windows Form 應用程序開發,或是 Silverlight 應用程序開發經驗的程序設計師而言應該不陌生。

圖6:以 Silverlight Framework 為基礎的 Windows Phone 7 應用程序的項目內容

欲使用 Visual Studio 2010 Express for Windows Phone 發展游戲的程序設計師可以在執行 [File | New Project] 功能后,選擇左方窗口 [Visual C#] 項目下的 [XNA Game Studio 4.0] 項目類型,就可以從右方窗口看到數種不同的游戲項目型態,包括 Windows Phone 7 游戲相關的項目型態,Windows 平臺游戲相關的項目型態,Xbox 360 游戲相關的項目型態,自定義 Content Pipeline 功能的 Content Pipeline Extension Lib 項目型態,以及用來管理游戲內容的 Empty Content Project (4.0) 項目型態,如圖7 所示:

圖7:Visual Studio 2010 Express for Windows Phone 支持游戲開發的項目型態

選擇左方窗口 [Visual C#] 項目底下的 [XNA Game Studio 4.0] 項目類型,于中間的窗口選擇 [Windows Phone Game (4.0)] 項目型態,然后按下 [OK] 鍵,就可以建立以 XNA Framework 為基礎的 Windows Phone 7 游戲程序。項目建立成功后您可以于 [Solution Explorer] 窗口中看到兩個項目,其中項目名稱為 [專案名稱Content] 的項目是負責管理游戲內容的項目,另外一個則是游戲程序項目。如圖8 所示:

圖8:以 XNA Framework 為基礎的 Windows Phone 7 游戲程序項目的內容

您可以開啟游戲程序項目中名稱為 Game1.cs 的檔案,這個檔案是控制游戲的中樞,其中名稱為 Update 的方法負責執行控制游戲進行的邏輯,包括管理游戲的狀態和處理用戶輸入的數據等控制游戲的動作,而名稱為 Update 的方法則負責更新游戲程序顯示的內容。

欲使用 Expression Blend for Windows Mobile 開發 Windows Phone 7 應用程序的程序設計師請注意,完成 Windows Phone Developer Tools 套件安裝之后,Expression Blend for Windows Mobile 工具會出現在 [Microsoft Expression] 程序群組中,您將不會在 [Microsoft Expression] 程序群組中看到名稱為 Expression Blend for Windows Mobile 的工具,因為 Expression Blend for Windows Mobile 已經與 Microsoft Expression Blend 4 工具整合,欲使用 Expression Blend for Windows Mobile 開發 Windows Phone 7 應用程序,您必須啟動 Microsoft Expression Blend 4,然后執行 [File | New Project] 功能,執行建立項目的動作,您就會看到如圖9 的操作畫面:

圖9:使用 Microsoft Expression Blend 4 建立 Windows Phone 7 應用程序的操作畫面

請點選左方窗口 [Project types] 項目底下的 [Windows Phone] 項目型態,就可以在右方窗口中看到 Expression Blend for Windows Mobile 支持程序設計師建立的五種 Windows Phone 應用程序項目型態,分別是:Windows Phone Application、Windows Phone Databound Application、Windows Phone Panorama Application、Windows Phone Pivot Application、與Windows Phone Control Library。請選擇 [Windows Phone Application] 項目型態,然后按下 [OK] 鍵,執行建立項目的動作,項目建立成功后您就會看到類似圖10 的畫面:

圖10:使用 Microsoft Expression Blend 4 建立的 Windows Phone 應用程序項目的內容

您可以利用 [Tools] 窗口提供的控件設計應用程序,利用 [Properties] 窗口設定控件的屬性,設計妥應用程序的功能之后按下 F5 功能鍵執行制作好的應用程序,Expression Blend for Windows Mobile 就會將設計好的應用程序加載到 Windows Phone 仿真器供您測試。

[結語]

Windows Phone 7 是 Microsoft 推出的全新智能型手機操作系統,不但具有新穎的用戶接口,也支持整合當紅的社交網站與微網志,內建搜尋功能,LBS (Location-Based Service) 適地性服務,視訊與音樂播放功能,先進而且具高度生產力的游戲開發支持,以及多點觸控控制等等,是 Microsoft 逐鹿智能型手機巿場的重要先鋒。

 本文由用戶 quguiliang 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!