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

來源:互聯網
上載者:User

轉載自:http://www.csai.cn 

 

1、Q:建立項目的時候選擇哪個項目類型才能建立智慧型裝置的應用程式?

  A:在Visual Studio的建立項目對話方塊中選擇Visual C#或者Visual Basic項目類型,選擇智慧型裝置模板,然後再選擇相應的裝置SDK,最後選擇“Device Application”,就可以建立一個行動裝置的應用程式了。

2、Q:Managed 程式碼與本地代碼有哪些區別?

  A:Managed 程式碼是指使用.NET Compact Framework開發的程式碼,可執行檔被編譯成IL,執行時需要有.NET的運行時環境。而本地代碼指用C++等語言開發的程式碼,可執行檔被編譯成與CPU指令集有關的機器碼,可以直接運行。 

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

  A:Magneto對OTA有很好的支援,SDK文檔的通訊部分中,有針對OTA的專門介紹。MMS的應用程式基底本都是由第三方開發的,因為MMS是基於WAP協議的,而Magneto本身對WAP的支援也很好,具體的協議也可以在SDK文檔裡找到。

4、Q:請問用Visual Basic .NET開發PDA資料庫程式能不能使用ADO.NET?

  A:Visual Basic .NET開發PDA資料庫不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空間就可以了。該命名空間中的資料庫操作類和ADO.NET是基本一致的。可以用它們來開發針對SQL Server CE的應用程式。

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

  A:不能,現在.NET Compact Framework只支援C#和VB.NET,而不支援C++/CLI。但是在VS.NET 2005中可以用C++來開發Native代碼來支援行動裝置。 

6、Q:從什麼地方可以得到Smartphone開發環境?

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

7、Q:託管性的代碼執行效率怎麼樣?和使用Visual C++編寫的代碼相比較。

  A:Managed 程式碼的執行效率肯定不如本地代碼高,但是Managed 程式碼也有一些好處是無法取代的。

8、Q:是否可以使用Visual Studio .NET 2003來開發能夠運行在Windows Mobile 2005上的應用程式?

  A:首先更正一下,Windows Mobile最新一代的作業系統叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003開發的應用程式是可以在Windows Mobile 5上正常啟動並執行,因為Windows Mobile 5 ROM中內建了.NET Compact Framewrok 1.0 SP3。 

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

  A:可以使用Pocket Access來開發Windows Mobile上的應用程式。可以採用C++調用OLEDB或者ADOCE的方式來訪問Pocket Access資料庫。

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開發文檔的“What’s New”部分,分別描述了這兩方面的新特性。

11、Q:請問如何在模擬器裡面配置串連到移動網路?

  A:模擬器如果需要串連移動網路的話,必須有專門的硬體提供支援。可以在開發PC的串口上連一個GPRS的模擬器,SDK文檔中對此有專門的說明。

12、Q:SQL CE可以像Pocket Access那樣僅使用一個檔案就能運行嗎?是否需要像PC上那樣安個伺服器才能使用?

  A:不會的,只需要在Windows Mobile上安裝SQL Server CE的支援庫,也就是就是一些DLL檔案。而SQL Server CE的庫檔案是一個單獨的檔案,不需要安裝一個伺服器。

13、Q:開發好的程式通過什麼方式部署到手機上?對手機有什麼要求?

  A:開發的程式需要打包成cab檔案部署到手機上。除了通過ActiveSync安裝外,還可以通過網路下載、儲存卡運行等方式來安裝應用程式。對手機的要求是,必須和開發程式的目標平台相相容。比如為Windows Mobile 5開發的應用程式,可能就沒辦法很好地運行在Windows Mobile2003平台上。

14、Q:在模擬器上面開發程式,和真實環境有區別嗎?需要注意一些什嗎?

  A:模擬器的模擬度十分高,Windows Mobile 5的模擬器甚至可以支援ARM指令,所以基本不會遇到相容性的問題。但是對於一些需要串連外部裝置的應用情境,比如前邊說的無線網路,還有GPS裝置等,就需要用到實際裝置了。

15、Q:當開發國際化應用程式時,應該特別注意哪些方面?

  A:對於國際化的應用程式,.NET本身就已經提供了非常好的支援。可以把使用者介面的文字儲存在相應的資源檔中,然後由應用程式判斷作業系統的語言版本來調用相應的文字。

16、Q:用.NET開發Pocket PC程式需要考慮裝置具體使用的是哪種CPU嗎?

  A:不必。無論是在虛擬機器上的x86指令集,還是實際裝置上的ARM指令集,對.NET Compact Framework程式的運行來說都一樣。 

17、Q:Windows Mobile 5 是否支援通過語音控制新的開發程式?

  A:現在還不支援。 

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

  A:可以,Pocket PC平台是內建瀏覽器的。 

19、Q:Visual Studio 2005的Mobile開發,支援Mobile 2003的裝置嗎?

  A:支援,VS 2005本身就內建Windows Mobile 2003的SDK。

20、Q:Windows Mobile 5.0 for Smartphone較之前的版本有何明顯的區別?對於測試這一領域,我們需要注意些什嗎?

  A:Windows Mobile 5的Smartphone平台更多的變化是在API層面,比如對資料庫的支援、對GPS API的支援等, Windows Mobile 5 SDK文檔中對此有詳細地說明。

21、Q:對開發來說CDMA和GPRS的資料轉送是透明的嗎?

  A:對於軟體開發來說資料轉送是透明的,CDMA和GPRS對於上層應用程式來說,只要支援HTTP協議或者TCP/IP協議就可以進行資料轉送的操作。 

22、Q:Visual Studio .NET能否支援Nokia的S60系列系統開發?

  A:可以,Visual C++能支援Nokia S60的開發。 

23、Q:Pocket PC與Mobile開發的主要區別在哪裡?

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

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

  A:SDE是早期用來開發行動裝置程式的VS擴充,目前網上似乎很難找到。其實不用安裝它,安裝所需版本的Pocket PC或者Smartphone的SDK即可。各個版本的Windows Mobile開發的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的機器上。

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

  A:OpenNETCF.org、www.devbuzz.com、www.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的機器上。

28、Q:請問編寫WML檔案與使用.NET Compact Framework進行開發有什麼聯絡和區別?

  A:WML是能夠利用WAP瀏覽器進行瀏覽的檔案,是一種基於Web的開發方式。.NET Compact Framework是在裝置上啟動並執行程式,是基於應用的開發方式。

29、Q:在使用.NET Compact Framework 1.0進行開發時,用EVC直接調用Native代碼與使用C#通過P/Invoke在效能上有什麼差別?在.NET Compact Framework 2.0上,用C++直接調用和用C#通過P/Invoke又如何呢?

  A:用EVC調用Native API的效率,會比使用.NET Compact Framework通過P/Invoke調用Native API要高,這是.NET Compact Framework本身的特性。在從Managed 程式碼中調用Native API時,其內部會進行一些額外的類型轉換動作,這會導致效率的降低。

30、Q:有沒有支援顯示HTML文本的控制項?

  A:WebBrowser控制項可以用於HTML文本。

31、Q:CAB安裝後會在Pocket PC上自動產生“卸載程式”,如何製作安裝包,才能不自動產生“卸載程式”?

  A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上點擊滑鼠右鍵選擇Property,即可看到有一個選項為NoUninstall,預設為False,改為True就可以了。

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.