向前向前向前!向Windows Phone平臺前進

作者: 楊中科  來源: 博客園  發布時間: 2011-03-30 13:49  閱讀: 1253 次  推薦: 0   原文鏈接   [收藏]  
摘要:距離2010年10月11日微軟正式發布Windows Phone 7(簡稱WP7)已經過去半年了,2011年2月初由傳出微軟和諾基亞結盟的利好消息,我通過微博、百度知道等網站看到wp7的關注度也在持續上升,但是在國內.net開發人員中對于Windows Phone 7開發技術卻響應者很少,雖然有Terry_龍 、Alexis 、linzheng、金山崟霸等牛人撰寫了不少wp7開發的文章,但是這些文章的評論卻少得可憐,0評論的一堆,常見的就是一兩條評論,“WP7有約”的十多條評論也是“人情評論”多一點,少見技術型評論。

  就像PC機取代小型機、Web取代桌面大潮一樣,現在移動終端時代已經到來,移動開發必將成為新的增長點,做為.Net開發者的我們對Windows Phone 7的關注應該是非常高的,為什么會出現現在的情況呢?我和我身邊的朋友已經在開發社區上認識的朋友交流這個問題,很多人目前對WP7關注不足的原因如下:
  1)windows phone 7平臺剛推出,還不知道發展前景怎么樣,iphone、android發展都那么火了,還有wp7的市場嗎?而且大陸還沒有上市,沒有中文支持,用的人太少,也沒有這方面的工作需求,怕學了一門沒發展的技術。
  2)windows phone 7集成的都是Windows Live、FaceBook、Twitter等中國人不怎么用的應用,沒有對我們QQ、騰訊微博、優酷的支持,來中國肯定水土不服。
  3)Windows phone 7的學習資料非常少,沒有這方面的書。
  4)WP7的開放性性不足,比如沒有提供輸入法接口、不能編寫真正的多任務、不能直接訪問攝像頭、不能直接訪問短信、不能編寫本地代碼。
  5)Windows phone 7 的開發環境搭建麻煩,沒有開發調試的真機,Windows phone 7開發必須在Windows7下,由于種種原因我現在只能用windows xp。

  對于第一點,傳智播客.Net培訓班的學生就經常問我“老師,你說windows phone能火起來嗎?”,我的回答是“如果我能準確預測windows phone能不能火起來,我就比巴菲特還厲害,我就不在這教你們,我早去投資微軟了”。雖然我不能給“windows phone能火起來”作擔保,但是我是非常相信微軟的實力的。很多人看iphone、android那么火,就好像沒有wp7的容身之地了,我不想說iphone、android的缺點,省得挨罵,我只能說“戰斗還沒開始”。遙想當年Netscape曾經最高占據了95%的瀏覽器市場,微軟IE還不是短短幾年就把Netscape踩死了?游戲開發領域的OpenGL當年也是非常風光,但是微軟靠結盟的方式推廣DirectX,現在DirectX的已經蓋過了OpenGL;同是游戲領域的微軟XBox不也從曾經獨占鰲頭的PSP中搶走了一大塊市場;離我們最近的.Net平臺也不是后發制人從Java中奪下了很大一塊市場,現在國內.Net開發的職位和Java開發職位數量相差無幾。微軟后發制人這一招一貫玩兒的很好,所以我個人情感上相信在移動開發領域微軟也會再現一場經典的戰役。微軟目前推廣WP7的切入點找的也非常好,微軟利用他XBOX的市場優勢來推廣WP7,由于WP7支持XBOX的XNA游戲開發技術,據說XBOX下的XNA游戲只要修改幾行代碼就可以移植到WP7下運行。XBOX平臺下有大量優秀的游戲,這樣在WP7下游戲的數量就會出現井噴(這點已經在真實的上演了),對于普通的手機用戶來說,他不管你是什么系統,用的什么技術,手機除了打打電話、發發短信、照照片之外,大部分時間就是一臺隨身游戲機,所以微軟是準備靠WP7的游戲優勢搶占市場,期待微軟這步棋走好。
  當然即使微軟敗了,那么難道我們學習的WP7開發的知識就浪費了嗎?要知道對于一個平臺上的開發來說,最難的不是具體某個技術,而是這個平臺的理念。比如對于Web開發,最難的是如何處理客戶端和服務器端的交互、如何做好頁面優化、如何做好SEO、如何處理用戶的訪問壓力等等,無論是asp.net開發還是J2EE開發還是PHP開發,開發一個大型的互聯網應用面對的問題不都是一樣的嗎?一個做PHP開發的人轉做asp.net會很難嗎?肯定不會,因為在php中遇到的問題在asp.net中也能會遇到,php中解決一個難題和思路和asp.net中是一樣的。同樣對于手機開發來說,最難的不是一門語言,而是移動開發和桌面開發的不同要求、移動開發界面交互的特點、觸摸屏的應用、LBS等新理念。因此如果我們熟悉了Windows Phone7開發,即使微軟敗了,我們仍然能夠用易經掌握的移動開發的理念去很快熟悉其他移動操作系統的開發。
  “大陸還沒有上市,沒有中文支持”這樣的問題也不用擔心,因為這只是暫時性的問題,Windows Phone7中文版在2011年底就會推出。“windows phone 7集成的都是Windows Live、FaceBook、Twitter等中國人不怎么用的應用,來中國肯定水土不服。”這也只是一個臨時性問題,微軟根本還沒有發布中文版,現在看到的都是給老美用的版本,當然只有FaceBook這些應用了,你用擔心中文版里FaceBook不能用?微軟本地化做的是非常優秀的,微軟非常懂中國國情,這就是為什么谷歌離開中國而微軟在中國則發展的很happy的原因。Windows Phone7中文版推出的時候大家在手機上肯定看到的是QQ、新浪微博等這些本地化應用的。

  “用的人太少,也沒有這方面的工作需求”,我只能說,現在不趁著業余時間學習一下,等大家都看清的時候早就晚了,閑著也是閑著,學一下Windows Phone開發,2011年底Windows Phone中文版出來,眾多廠商會需要大量Windows Phone開發的崗位的,到時候再臨時抱佛腳準備就趕不上最好的時機了,最好技術儲備,這種事情及早不及晚。
  “Windows phone 7的學習資料非常少”,看似書店里沒有Windows phone 7開發的書,網上關于Windows phone 7開發的資料也比較少,其實研究過Windows phone 7的開發人員都知道,Windows phone 7開發大部分的內容都是Silverlight、XNA這些東西,真正WP7特有的技術并不多。如果不進行游戲開發,那么WP7開發只涉及到Silverlight和少量的WP7特有API了,而且Windows phone 7下的Silverlight和普通的Silverlight差別非常小,現在Silverlight資料非常多,所以這些Silverlight學習資料都相當于WP7的學習資料了。所以想學Windows phone 7又懶得裝WP7開發環境的可以直接去學Silverlight就行。WP7特有API非常少,一兩天時間就可以基本掌握。   
  WP7的開放性性不足確實是大問題。我看著Windows Phone SDK的就來氣,開發的API太少了:沒有開放輸入法開發接口,所以我們只能坐等微軟推出官方的中文輸入法!無法直接訪問攝像頭,只能通過CameraCaptureTask讓用戶手動拍攝,我要做一個條碼掃描的程序就做不了呀!無法直接發送短信,只能調用SmsComposeTask調用起來短信發送程序讓用戶點擊發送,我怎么做短信群發程序呀!無法響應來電通知,我怎么做“響一聲就掛”等來電防火墻呀!無法訪問非獨立存儲之外的空間,我怎么做一個文件瀏覽器,我怎么做一個手機安全掃描軟件呀!無法訪問聯系人列表,我怎么寫一個聯系人導入導出程序呀!無法編寫多任務程序我怎么做定時任務提醒程序呀,連G-Alarm的WP7版本也只能尷尬的運行在前臺,一旦被別的程序帶進墓碑就只能干等著睡過頭上班遲到了!有木有!Native Code的編寫權限只有OEM伙伴才有,普通開發人員無法編寫本地代碼,我怎么做自己的系統應用呀!

  以目前微軟開放的API來看,我們非OEM開發人員只能開發游戲、大眾點評網客戶端這類的應用,像手機360安全衛士、來電通、鬧鐘等這類應用無法實現。我相信這些都是暫時的,微軟在逐步完善,而不是一開始就推出一個完善的版本,這也是適合互聯網時代的發展速度,隨著Windows Phone的升級,Windows Phone的API會越來越豐富的,比如多任務功能在下個版本中就將提供,希望微軟盡快開放這些接口,能讓我們開發出更豐富的應用。Windows Phone是基于Windows CE內核的,因此也請Windows CE高手研究一下Windows Phone,能讓我們有更多undocumented的資料。當然對于想找一份Windows Phone開發的工作的人來說不用擔心這些,未來Windows Phone程序開發的工作大部分都是開發大眾點評網客戶端、優酷網客戶端、手機版騰訊微博等類型的應用,開發這些應用使用WP7目前的API足夠了,可見微軟開放API也是考慮了目前手機應用開發的主流的。   
  最后一點“Windows phone 7開發必須在Windows7下”確實是大問題,微軟為了賣Windows7做出了這樣的決定,微軟可以這么玩兒,可以咱們傷不起呀!我認識的很多朋友都由于這樣那樣的原因暫時只能工作在Windows XP下,他們本來是對Windows Phone開發感興趣的,后來聽說Windows phone 7開發必須在Windows7下就放棄了,看到網站上Windows phone 7的開發文章也只能看一看,沒法把代碼拿過來run一把。而且在Windows7上搭建起了WP7開發環境也不爽,因為微軟的WP7的仿真器有很多缺點,比如很多設備無法用,比如FM收音機永遠是off,加速度感應器永遠是平躺靜止狀態,振動控制器看不到效果,GPS無法使用,攝像頭模擬器永遠都是一個隨機動的黑色方塊,麥克風無法用……;而且WP7的仿真器和主機交互麻煩,比如想把一首mp3放到仿真器中播放很難,想把仿真器中生成的一個文件拷出來也很難;WP7的仿真器對硬件要求高,配置差一點的電腦運行起來非常卡,卡的無法忍受。 
  我想WP7開發環境的這些缺點是很多人無法關注WP7的一個重要原因,為了解決這個問題,我用了一個月的時間折騰出一個“傳智播客Windows Phone7的模擬器”。這款模擬器有如下的優點(好像廣告耶):

  1)可以運行在windows xp下
  2)實現了WP7絕大部分API。包括啟動器、選擇器、外設(收音機、GPS、振動器、麥克風、攝像頭、加速度感應器)、WP7特殊控件(樞軸視圖、全景視圖、DatePicker、TimePicker、ListPicker、ApplicationBar)、XNA部分功能(Audio、觸摸屏、MediaLibrary、InputScope鍵盤處理)、墓碑機制(TombStone)等。
  3)不需要DirectX10支持,在低端顯卡上也能運行
  4)資源占用小,不像WP7仿真器那樣對計算機性能要求高,因此普通筆記本就能運行

  5)開發調試方便,能夠把本機磁盤映射為手機的媒體庫。 
  注意這里我用的詞是模擬器,而不是仿真器。模擬器和仿真器的區別是:Emulator中文叫仿真器,是精確地在一種環境下仿真另一種環境下的運行方式,其目的是完全仿真。Simulator中文叫模擬器,是通過某種手段來模擬某些東西,不一定要完全正確的原理,追求的只是盡可能的相像。但是如果應用能夠在這個模擬器下運行,幾乎不用做任何的修改就可以在仿真器、真機中運行。 
  以下是一些截圖: 
  DatePicker控件

  InputScope軟鍵盤

  加速度感應器和手機方向感應

  由于我這段時間只是在做API的整合,所以沒有做太多美化,界面還很難看,我將繼續整理,爭取早日把這個版本發布出來供大家分享,希望能幫助Windows Phone開發的推廣盡自己的微薄之力。我的騰訊微博:http://t.qq.com/yzk369 。再加一句廣告:傳智播客.Net培訓飛速發展,急需牛X講師的加入,年薪10——20W。

0
0
 
標簽:Windows Phone
 
 

文章列表

arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()