Windows Mobile 開發(fā)常見問題集(一)

2010-08-28 10:49:27來源:西部e網(wǎng)作者:

1、Q:新建項目的時候選擇哪個項目類型才能創(chuàng)建智能設(shè)備的應(yīng)用程序?

  A:在Visual Studio的新建項目對話框中選擇Visual C#或者Visual Basic項目類型,選擇智能設(shè)備模板,然后再選擇相應(yīng)的設(shè)備SDK,最后選擇“Device Application”,就可以創(chuàng)建一個移動設(shè)備的應(yīng)用程序了。

2、Q:托管代碼與本地代碼有哪些區(qū)別?

  A:托管代碼是指使用.NET Compact Framework開發(fā)的程序代碼,可執(zhí)行文件被編譯成IL,執(zhí)行時需要有.NET的運行時環(huán)境。而本地代碼指用C++等語言開發(fā)的程序代碼,可執(zhí)行文件被編譯成與CPU指令集有關(guān)的機(jī)器碼,可以直接運行。 

3、Q:能不能簡要介紹一下Magneto里面對OTA和MMS的支持?

  A:Magneto對OTA有很好的支持,SDK文檔的通訊部分中,有針對OTA的專門介紹。MMS的應(yīng)用程序基本都是由第三方開發(fā)的,因為MMS是基于WAP協(xié)議的,而Magneto本身對WAP的支持也很好,具體的協(xié)議也可以在SDK文檔里找到。

4、Q:請問用Visual Basic .NET開發(fā)PDA數(shù)據(jù)庫程序能不能使用ADO.NET?

  A:Visual Basic .NET開發(fā)PDA數(shù)據(jù)庫不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空間就可以了。該命名空間中的數(shù)據(jù)庫操作類和ADO.NET是基本一致的?梢杂盟鼈儊黹_發(fā)針對SQL Server CE的應(yīng)用程序。

5、Q:在Visual C++2005中,可以使用.Net Compact Framework嗎?

  A:不能,現(xiàn)在.NET Compact Framework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++來開發(fā)Native代碼來支持移動設(shè)備。 

6、Q:從什么地方可以得到Smartphone開發(fā)環(huán)境?

  A:Smartphone的SDK可以在微軟網(wǎng)站上找到,而Visual Studio 2005 Beta 2可以通過參加微軟活動的方式獲得。MEDC 2005的參加者都獲得了VS.NET 2005和Windows Mobile 5 SDK的開發(fā)光盤。 

7、Q:托管性的代碼執(zhí)行效率怎么樣?和使用Visual C++編寫的代碼相比較。

  A:托管代碼的執(zhí)行效率肯定不如本地代碼高,但是托管代碼也有一些好處是無法取代的。

8、Q:是否可以使用Visual Studio .NET 2003來開發(fā)能夠運行在Windows Mobile 2005上的應(yīng)用程序?

  A:首先更正一下,Windows Mobile最新一代的操作系統(tǒng)叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003開發(fā)的應(yīng)用程序是可以在Windows Mobile 5上正常運行的,因為Windows Mobile 5 ROM中內(nèi)置了.NET Compact Framewrok 1.0 SP3。 

9、Q:PDA上不能用Pocket Access么?SQL CE太大了。

  A:可以使用Pocket Access來開發(fā)Windows Mobile上的應(yīng)用程序?梢圆捎肅++調(diào)用OLEDB或者ADOCE的方式來訪問Pocket Access數(shù)據(jù)庫。

10、Q:Visual Studio 2005的新功能是否只在Windows Mobile 5里受到支持,2003是否支持?

  A:新功能分兩個部分,一部分是.NET Compact Framework 2.0中提供的的新功能,這部分的功能可以被Windows Mobile 2003支持,但必須安裝.NET Compact Framework 2.0;而另一部分是Windows Mobile 5的特有功能。.NET Compact Framework 2.0和Windows Mobile 5開發(fā)文檔的“What’s New”部分,分別描述了這兩方面的新特性。

11、Q:請問如何在模擬器里面配置連接到移動網(wǎng)絡(luò)?

  A:模擬器如果需要連接移動網(wǎng)絡(luò)的話,必須有專門的硬件提供支持?梢栽陂_發(fā)PC的串口上連一個GPRS的模擬器,SDK文檔中對此有專門的說明。

12、Q:SQL CE可以像Pocket Access那樣僅使用一個文件就能運行么?是否需要像PC上那樣安個服務(wù)器才能使用?

  A:不會的,只需要在Windows Mobile上安裝SQL Server CE的支持庫,也就是就是一些DLL文件。而SQL Server CE的庫文件是一個單獨的文件,不需要安裝一個服務(wù)器。

13、Q:開發(fā)好的程序通過什么方式部署到手機(jī)上?對手機(jī)有什么要求?

  A:開發(fā)的程序需要打包成cab文件部署到手機(jī)上。除了通過ActiveSync安裝外,還可以通過網(wǎng)絡(luò)下載、存儲卡運行等方式來安裝應(yīng)用程序。對手機(jī)的要求是,必須和開發(fā)程序的目標(biāo)平臺相兼容。比如為Windows Mobile 5開發(fā)的應(yīng)用程序,可能就沒辦法很好地運行在Windows Mobile2003平臺上。

14、Q:在模擬器上面開發(fā)程序,和真實環(huán)境有區(qū)別么?需要注意一些什么?

  A:模擬器的仿真度十分高,Windows Mobile 5的模擬器甚至可以支持ARM指令,所以基本不會遇到兼容性的問題。但是對于一些需要連接外部設(shè)備的應(yīng)用場景,比如前邊說的無線網(wǎng)絡(luò),還有GPS設(shè)備等,就需要用到實際設(shè)備了。

15、Q:當(dāng)開發(fā)國際化應(yīng)用程序時,應(yīng)該特別注意哪些方面?

  A:對于國際化的應(yīng)用程序,.NET本身就已經(jīng)提供了非常好的支持?梢园延脩艚缑娴奈淖直4嬖谙鄳(yīng)的資源文件中,然后由應(yīng)用程序判斷操作系統(tǒng)的語言版本來調(diào)用相應(yīng)的文字。

16、Q:用.NET開發(fā)Pocket PC程序需要考慮設(shè)備具體使用的是哪種CPU嗎?

  A:不必。無論是在虛擬機(jī)上的x86指令集,還是實際設(shè)備上的ARM指令集,對.NET Compact Framework程序的運行來說都一樣。 

17、Q:Windows Mobile 5 是否支持通過語音控制新的開發(fā)程序?

  A:現(xiàn)在還不支持。 

18、Q:可以在vwd2005 bata2中開發(fā)Pocket PC程序嗎?Pocket PC是否具有瀏覽器?

  A:可以,Pocket PC平臺是內(nèi)置瀏覽器的。 

19、Q:Visual Studio 2005的Mobile開發(fā),支持Mobile 2003的設(shè)備嗎?

  A:支持,VS 2005本身就自帶Windows Mobile 2003的SDK。

20、Q:Windows Mobile 5.0 for Smartphone較之前的版本有何明顯的區(qū)別?對于測試這一領(lǐng)域,我們需要注意些什么?

  A:Windows Mobile 5的Smartphone平臺更多的變化是在API層面,比如對數(shù)據(jù)庫的支持、對GPS API的支持等, Windows Mobile 5 SDK文檔中對此有詳細(xì)地說明。

21、Q:對開發(fā)來說CDMA和GPRS的數(shù)據(jù)傳輸是透明的嗎?

  A:對于軟件開發(fā)來說數(shù)據(jù)傳輸是透明的,CDMA和GPRS對于上層應(yīng)用程序來說,只要支持HTTP協(xié)議或者TCP/IP協(xié)議就可以進(jìn)行數(shù)據(jù)傳輸?shù)牟僮鳌?nbsp;

22、Q:Visual Studio .NET能否支持Nokia的S60系列系統(tǒng)開發(fā)?

  A:可以,Visual C++能支持Nokia S60的開發(fā)。 

23、Q:Pocket PC與Mobile開發(fā)的主要區(qū)別在哪里?

  A:Window Mobile是微軟公司基于Windows CE.NET的一個平臺。它包含Pocket PC和Smartphone兩個版本。 

24、Q:SDE從哪里可以下載?Pocket PC 2005的模擬器可以從哪里下載?

  A:SDE是早期用來開發(fā)移動設(shè)備程序的VS擴(kuò)展,目前網(wǎng)上似乎很難找到。其實不用安裝它,安裝所需版本的Pocket PC或者Smartphone的SDK即可。各個版本的Windows Mobile開發(fā)的SDK和模擬器的地址可以從這篇Blog上下載(http://twodays.cnblogs.com/archive/2005/06/30/184107.htm)。 

25、Q:.NET Compact Framework 2.0能裝在Windows Mobile 2003上嗎?

  A:可以。.NET Compact Framework 2.0必須手動安裝到Windows Mobile 2003的機(jī)器上。

26、Q:請問有沒有好的Windows Mobile編程的網(wǎng)站或者論壇?

  A:OpenNETCF.org、www.devbuzz.comwww.codeproject.com、www.msdn.com/mobility/、www.pocketpcdn.com

27、Q:Windows Mobile 2003上的.NET Compact Framework能升級到.NET Compact Framework 2.0嗎?

  A:可以。.NET Compact Framework 2.0必須手動安裝到Windows Mobile 2003的機(jī)器上。

28、Q:請問編寫WML文件與使用.NET Compact Framework進(jìn)行開發(fā)有什么聯(lián)系和區(qū)別?

  A:WML是能夠利用WAP瀏覽器進(jìn)行瀏覽的文件,是一種基于Web的開發(fā)方式。.NET Compact Framework是在設(shè)備上運行的程序,是基于應(yīng)用的開發(fā)方式。

29、Q:在使用.NET Compact Framework 1.0進(jìn)行開發(fā)時,用EVC直接調(diào)用Native代碼與使用C#通過P/Invoke在性能上有什么差別?在.NET Compact Framework 2.0上,用C++直接調(diào)用和用C#通過P/Invoke又如何呢?

  A:用EVC調(diào)用Native API的效率,會比使用.NET Compact Framework通過P/Invoke調(diào)用Native API要高,這是.NET Compact Framework本身的特性。在從托管代碼中調(diào)用Native API時,其內(nèi)部會進(jìn)行一些額外的類型轉(zhuǎn)換動作,這會導(dǎo)致效率的降低。

30、Q:有沒有支持顯示HTML文本的控件?

  A:WebBrowser控件可以用于HTML文本。

31、Q:CAB安裝后會在Pocket PC上自動生成“卸載程序”,如何制作安裝包,才能不自動產(chǎn)生“卸載程序”?

  A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上點擊鼠標(biāo)右鍵選擇Property,即可看到有一個選項為NoUninstall,默認(rèn)為False,改為True就可以了。

32、Q:OpenNETCF能運行在.NET Framework 1.1環(huán)境下嗎?其中的控件可以與.NET Framework 1.1控件混合使用嗎?怎樣在Visual Studio .NET 2003中加入OpenNETCF控件?

  A:當(dāng)初在設(shè)計NET Compact Framework 1.0/1.1時,由于考慮到移動設(shè)備的資源有限,所以有些原本.NET Framework 1.1中已經(jīng)提供的類和控件就被刪除了,OpenNETCF Smart Device Framework主要是針對.NET Compact Framework 1.0/1.1中沒有的功能,開發(fā)出來的類似的類型和額外的功能,以彌補.NET Compact Framework 1.0/1.1不足之處。這套Framework主要是供.NET Compact Framework程序開發(fā)所用,除了少部份針對PC與Pocket PC的同步功能所編寫的類之外,大部分都是在.NET Compact Framework上執(zhí)行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安裝完畢之后,可以在VS 2003左側(cè)的工具箱中看到OpenNETCF的控件,可以直接拖放來使用。

關(guān)鍵詞:dotnet

贊助商鏈接: