溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

向前向前向前!向Windows Phone平臺(tái)前進(jìn)

發(fā)布時(shí)間:2020-06-22 16:08:45 來(lái)源:網(wǎng)絡(luò) 閱讀:1200 作者:cownew 欄目:開發(fā)技術(shù)

  距離2010年10月11日微軟正式發(fā)布Windows Phone 7(簡(jiǎn)稱WP7)已經(jīng)過(guò)去半年了,2011年2月初由傳出微軟和諾基亞結(jié)盟的利好消息,我通過(guò)微博、百度知道等網(wǎng)站看到wp7的關(guān)注度也在持續(xù)上升,但是在國(guó)內(nèi).net開發(fā)人員中對(duì)于Windows Phone 7開發(fā)技術(shù)卻響應(yīng)者很少,雖然有Terry_龍 、Alexis 、linzheng、金山崟霸等牛人撰寫了不少wp7開發(fā)的文章,但是這些文章的評(píng)論卻少得可憐,0評(píng)論的一堆,常見的就是一兩條評(píng)論,“WP7有約”的十多條評(píng)論也是“人情評(píng)論”多一點(diǎn),少見技術(shù)型評(píng)論。


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

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


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

     以目前微軟開放的API來(lái)看,我們非OEM開發(fā)人員只能開發(fā)游戲、大眾點(diǎn)評(píng)網(wǎng)客戶端這類的應(yīng)用,像手機(jī)360安全衛(wèi)士、來(lái)電通、鬧鐘等這類應(yīng)用無(wú)法實(shí)現(xiàn)。我相信這些都是暫時(shí)的,微軟在逐步完善,而不是一開始就推出一個(gè)完善的版本,這也是適合互聯(lián)網(wǎng)時(shí)代的發(fā)展速度,隨著Windows Phone的升級(jí),Windows Phone的API會(huì)越來(lái)越豐富的,比如多任務(wù)功能在下個(gè)版本中就將提供,希望微軟盡快開放這些接口,能讓我們開發(fā)出更豐富的應(yīng)用。Windows Phone是基于Windows CE內(nèi)核的,因此也請(qǐng)Windows CE高手研究一下Windows Phone,能讓我們有更多undocumented的資料。當(dāng)然對(duì)于想找一份Windows Phone開發(fā)的工作的人來(lái)說(shuō)不用擔(dān)心這些,未來(lái)Windows Phone程序開發(fā)的工作大部分都是開發(fā)大眾點(diǎn)評(píng)網(wǎng)客戶端、優(yōu)酷網(wǎng)客戶端、手機(jī)版騰訊微博等類型的應(yīng)用,開發(fā)這些應(yīng)用使用WP7目前的API足夠了,可見微軟開放API也是考慮了目前手機(jī)應(yīng)用開發(fā)的主流的。
   
  最后一點(diǎn)“Windows phone 7開發(fā)必須在Windows7下”確實(shí)是大問(wèn)題,微軟為了賣Windows7做出了這樣的決定,微軟可以這么玩兒,可以咱們傷不起呀!我認(rèn)識(shí)的很多朋友都由于這樣那樣的原因暫時(shí)只能工作在Windows XP下,他們本來(lái)是對(duì)Windows Phone開發(fā)感興趣的,后來(lái)聽說(shuō)Windows phone 7開發(fā)必須在Windows7下就放棄了,看到網(wǎng)站上Windows phone 7的開發(fā)文章也只能看一看,沒(méi)法把代碼拿過(guò)來(lái)run一把。而且在Windows7上搭建起了WP7開發(fā)環(huán)境也不爽,因?yàn)槲④浀腤P7的仿真器有很多缺點(diǎn),比如很多設(shè)備無(wú)法用,比如FM收音機(jī)永遠(yuǎn)是off,加速度感應(yīng)器永遠(yuǎn)是平躺靜止?fàn)顟B(tài),振動(dòng)控制器看不到效果,GPS無(wú)法使用,攝像頭模擬器永遠(yuǎn)都是一個(gè)隨機(jī)動(dòng)的黑色方塊,麥克風(fēng)無(wú)法用……;而且WP7的仿真器和主機(jī)交互麻煩,比如想把一首mp3放到仿真器中播放很難,想把仿真器中生成的一個(gè)文件拷出來(lái)也很難;WP7的仿真器對(duì)硬件要求高,配置差一點(diǎn)的電腦運(yùn)行起來(lái)非??ǎǖ臒o(wú)法忍受。
  
  我想WP7開發(fā)環(huán)境的這些缺點(diǎn)是很多人無(wú)法關(guān)注WP7的一個(gè)重要原因,為了解決這個(gè)問(wèn)題,我用了一個(gè)月的時(shí)間折騰出一個(gè)“傳智播客Windows Phone7的模擬器”。這款模擬器有如下的優(yōu)點(diǎn)(好像廣告耶):
  1)可以運(yùn)行在windows xp下
  2)實(shí)現(xiàn)了WP7絕大部分API。包括啟動(dòng)器、選擇器、外設(shè)(收音機(jī)、GPS、振動(dòng)器、麥克風(fēng)、攝像頭、加速度感應(yīng)器)、WP7特殊控件(樞軸視圖、全景視圖、DatePicker、TimePicker、ListPicker、ApplicationBar)、XNA部分功能(Audio、觸摸屏、MediaLibrary、InputScope鍵盤處理)、墓碑機(jī)制(TombStone)等。
  3)不需要DirectX10支持,在低端顯卡上也能運(yùn)行
  4)資源占用小,不像WP7仿真器那樣對(duì)計(jì)算機(jī)性能要求高,因此普通筆記本就能運(yùn)行
  5)開發(fā)調(diào)試方便,能夠把本機(jī)磁盤映射為手機(jī)的媒體庫(kù)。
  
  
  注意這里我用的詞是模擬器,而不是仿真器。模擬器和仿真器的區(qū)別是:Emulator中文叫仿真器,是精確地在一種環(huán)境下仿真另一種環(huán)境下的運(yùn)行方式,其目的是完全仿真。Simulator中文叫模擬器,是通過(guò)某種手段來(lái)模擬某些東西,不一定要完全正確的原理,追求的只是盡可能的相像。但是如果應(yīng)用能夠在這個(gè)模擬器下運(yùn)行,幾乎不用做任何的修改就可以在仿真器、真機(jī)中運(yùn)行。
  
  以下是一些截圖:
  


  
向前向前向前!向Windows Phone平臺(tái)前進(jìn)   

DatePicker控件

向前向前向前!向Windows Phone平臺(tái)前進(jìn)

InputScope軟鍵盤

向前向前向前!向Windows Phone平臺(tái)前進(jìn)

加速度感應(yīng)器和手機(jī)方向感應(yīng)

 

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

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI