開發者眼中Windows Phone 7的進步與退步
編者按:本文為DevDiv移動開發社區創始人吳學友在Windows Phone 7發布之際寫得了一篇觀感文章。從Windows Phone 7與對比Windows Mobile6.5到Windows Phone 7與對比主流操作系統,詳盡描述Windows Phone 7的優缺點,進步與退步。
從3月份的CTP(Community Technical Preview,社區技術預覽版本),到4月的CTP Refresh,然后是7月的Beta版本,正式版本的Windows Phone 7的SDK終于和大家見面了。下面我就從開發者的角度談談Windows Phone 7:
首先,從對比Windows Mobile6.5開始吧。
升級變化之一:編程語言的變化
與Windows Mobile6.5不同,托管代碼成了Windows Phone 7唯一的編程語言,而編寫托管代碼將有兩種方式,一種是編寫Silverlight的程序,針對一般的手機應用;另外一種方式是編寫XNA的程序,更適合游戲的開發。
這里的Silverlight 程序不同于傳統意義上的Silverlight,雖然它是源于Silverlight 3,但是去掉了一部分不適用于移動設備的特性,同時又加入了一些Silverlight 4的特性或者是針對移動設備的代碼。另外,傳統的Silverlight程序都是在瀏覽器中執行的;但Windows Phone 7上的Silverlight是脫離瀏覽器單獨運行的。
對于XNA程序,絕大部分國內開發者或許比較陌生。XNA是以前微軟用來開發XBox上的游戲以及Zune上的應用程序的一套開發工具。不過由于XBox和Zune一直沒有正式進入國內,國內開發者關注這方面的內容甚少。XNA的開發環境是一套基于Visual Studio的,被稱為XNA Game Studio的東西。
升級變化之二:對第三方應用限制增多
Windows Phone 7的另一個顯著變化是對第三方應用開發限制增多了,主要包括:
由于Windows Phone 7的第三方軟件不能在后臺執行,只能單任務。后臺監控短信、電話等傳統應用基本行不通;
開發者不能在使用C++作為編程語言,當前C#是Windows Phone 7 Series平臺上唯一支持的開發語言;
目前還不支持VB開發;沒有任何機制調用系統API。
對比主流操作系統
除了app store外,現在iPhone是大家學習的目標:多點觸摸、手勢、電容屏、絢麗的界面……等等。與Symbian, Android, iPhone比較,我們沒辦法單純說它比那個平臺好,比那個平臺差,就對比說說Windows Phone 7的進步與退步:
進步一: 開發更簡單
開發難度較Android、iPhone相當,甚至要更簡單,微軟有出色的Visual Studio這款IDE,手機平臺模擬器,電話、短信模擬工具做的也非常出色。
Visual Studio可以是說是***的集成開發工具,相對于Android采用的Eclipse,優勢比較明顯。Eclipse經常會出現無法編譯,需要反復更 新、反應遲鈍等現象;同時Android模擬器占用資源很大;Android開發包與Eclipse協同工作需要做復雜配置工作,而Windows Phone直接安裝SDK即可,幾乎不需要配置。
另外,開發Windows Mobile/Windows Phone應用只能在Windows操作系統上;開發Android應用,Windows, Linux, Mac OS操作系統都可以。
iPhone開發工具簡單實用,但是缺少必要的如模擬電話、短信等工具支持。
相對來說,Symbian開發就復雜很多了,Symbian目前是唯一一款非ARM指令的模擬器, 由于與手機環境有差異,導致很多問題沒法在模擬器上復現,尤其對底層開發人員來說Symbian模擬器用處不大;另外,Symbian還沒有很好解決在Linux上開發的問題;電話、短信模擬工具配置復雜,配置成功者少之又少。
進步二: 徹底變革菜單 增強觸控體驗
Android/iPhone就是為觸摸屏設計的,后來者具有先天的優勢。
Windows Phone 7為了更好的支持觸摸屏,對菜單進行了徹底的改革,基本上拋棄了傳統Windows的菜單形式,屏幕分配出來特定區域作為菜單,菜單占用的空間變大,更適合于手觸摸;這點上已經達到了Android/iPhone的水平,再加上電容屏、多點觸摸,相對于Windows Mobile 6.5是個巨大的進步,也是它***的亮點。
而Symbian 3的菜單仍舊停留在傳統的Windows菜單水平,由于菜單項之間間距過小,很容易出現點錯菜單的現象,這是Symbian 3被認為落后其他平臺一代的重要原因之一。
退步: 暫不支持多任務
目前Symbian/Android是支持多任務的,Android對多任務進一步做了些特殊處理,系統資源不足時候優先關閉后臺執行的程序,保證關鍵任務(如電話)可以穩定執行。
Windows Phone 7不再支持多任務,不再支持后臺任務,這點與iPhone 3GS及以前的機制相同,某種程度上來說這是一個退步。
iPhone 4只支持部分多任務;程序可以放到后臺,但是在后臺處于掛起狀態,程序是不能執行任何操作的,只是免去了程序退出保存狀態之苦。
開發者:多數人處于觀望狀態
開發人員對Windows Phone 7反應不一,有人贊許Windows Phone取得的巨大進步,有的人對微軟的進度頗有微詞,對Windows Phone 7的iPhone化很不以為然,多數人則處于觀望狀態。
目前還不清楚 Windows Phone 7能獲得廠商多大程度的支持,開發者的態度很大程度上取決于第三方軟件公司的戰略,軟件公司戰略則取決于終端廠商對Windows Phone7認可程度,所以現在是考驗微軟的公關時刻了。
總之,從開發人員角度來講,Windows Phone進步是明顯的,電容屏、多點觸摸、手勢支持、更加絢爛的界面、編程門檻變得更低。但是Windows Phone退步的地方也不少,單任務,不支持后臺程序,不支持c/c++編程接口,使開發人員能做的事情變得少了很多。不過,就單任務問題,以微軟的角度來說,似乎他們認為手機的穩定性,快速響應用戶也許是更重要的,這個也是iPhone以前強調的理念,但是iPhone 4已經華麗轉身了,也許微軟跟錯了方向。
吳學友,DevDiv移動開發社區創始人,具有7年的移動研發經驗。曾服務于微軟、諾基亞從事系統研發工作。目前主要致力于Windows Phone/Android/Symbian/iPhone的沙龍、培訓工作。
微博地址:http://t.sohu.com/u/21689415
個人網址:http://www.devdiv.net/blog/Vincent
【編輯推薦】
- Windows Phone 7今日面世 微軟“絕地反擊”
- 微軟發布Beta版Windows Phone 7開發工具
- 微軟正式發布Windows Phone 7開發路線圖
- Windows Phone 7打破移動平臺的天平
- 微軟推Windows Phone 7 Silverlight程序員成贏家