開發J2ME應用必須知道的一些問題

1. 什麼是J2ME?
      答:J2ME是Java 2 Micro Edition的簡稱,是SUN推出的針對嵌入式消費類電子產品的開發平臺,例如手機、PDA和電視機頂盒等。事實上,J2ME是一整套技術和規範的集合。

2. 開發J2ME應用程序使用什麼開發環境?
      答:目前比較主流的開發環境有JBuilder、Eclipse、NetBeans和SUN Mobile等。本站推薦免費、開源功能強大的eclipse、NetBean,

3. Configuration 和Profile的區別和聯繫是什麼?
      答:目前,根據目前市場上移動設備的硬件特性劃分出兩個主要的Configuration,一個是 Connected Limited Device Configuration和Connected Device Configuration,在Configuration層定義了Java的核心類庫和虛擬機。而Profile則是根據設備的功能特性提供的一系列的 API,比如Mobile Infomation Device Profile(MIDP)。

4. 什麼是可選包?
      答:由於設備的功能差別很大,如果用一個Profile進行概括不切合實際,因此根據不同的功能特性制定了相應的Profile,我們把他們叫做Optional Profile,比如Bluetooth。
      可以參考介紹J2ME可選包的概念。

5. J2ME中不支持浮點運算怎麼辦?
      答:由於硬件的原因,在CLDC1.0中沒有提供浮點數的支持,但是在CLDC1.1中這個問題已經解決了,如果你基於CLDC1.0開發的話可以使用第三方的函數庫比如mathfp。

6. 哪裏可以找到Samsung SDK的參考API DOC?
      答:三星基本是依據一些規範來實現的,所以參考規範文檔即可,同時在三星SDK的安裝目錄下面也有一些文檔可以參考。

7. J2ME開發時,服務器端必須要在運營商註冊嗎?
      答:不需要

8. 如何在J2ME開發中使用混淆器?
      答:推薦使用Proguards,請參考使用Proguard混淆J2ME應用程序

9. 聯網的程序編譯通過,運行的時候提示block之類的錯誤
      答:聯網應該在新線程中進行,檢查一下自己的程序是否這麼做的,關於聯網可以參考本站專題

10. 出現無法創建MIDlet的錯誤提示如何解決?
      答:通常這樣的問題是由於jad文件錯誤引起的,檢查jad文件的Midlet-n的屬性之是否正確

11. 如何把其他的圖片格式轉換爲PNG格式的?
      答:可以用Photoshop

12. 如何獲得當前手機屏幕的大小?
      答:使用Canvas類的getWidth()和getHeight()方法

13. 如何學好J2ME?
      答:推薦找本系統的書籍,另外多關注這個網站的知識庫和論壇中的文章連載,一定會有你所需要的。

14. 能否使用eclipseME+WTK2.1進行J2ME應用程序調試(debug)?
      答:可以,注意選擇windows->preferences->java->debug 不要選擇suspend execution的前面兩個選項,在debuger timeout選項中 第一個時間至少設置爲15000ms 這樣就可以調試了

15. 使用NetBeans和Eclipse開發J2ME應用程序,圖片資源該如何處理並在程序中正常顯示?
      答:請參考關於Jbuilder和Eclipse中使用圖片的問題

16. 開發好的應用程序安裝到手機的時候,會出現版本不合適等問題導致安裝失敗。
      答:通常這樣的問題是由於真機支持的CLDC/MIDP版本和應用程序版本不一致造成的,如果你確認你的應用程序可以在真機上運行,那麼請修改你的jad文件。

17. 如何在Eclipse中使用藍牙包進行開發?
      答:三星SDK是支持藍牙功能的,因此你需要使用EclipseME把它集成到Eclipse開發環境中,在新建項目的時候把 jsr082.jar加入到項目中,jsr082.jar的位置在/lib/jsr082.jar

18. 如何正確解決J2ME開發中的中文問題?
      答:請參考下面兩篇文章,J2ME中文問題的解決方案 在J2ME中讀取各種格式的文本文件

19. 如何接受GET方式傳輸過來的中文數據?
      答:推薦使用servlet規範中新推出的Filter組件,在Request傳給servlet之前使用Filter對request進行編碼的改變。

20. WAP開發和J2ME開發有什麼異同?
      答:用J2ME開發手機應用程序進行聯網的時候,這時候實際上是client-server構架的,由J2ME程序本身提供UI和聯網等操作的,我們要寫大量的代碼。用wml或者jsp servlet asp php等開發wap應用程序的時候,是browser-server構架的。我們只需要提供server端的程序,這些程序通過手機中的wap browser來解釋顯示給用戶,就像用IE訪問一樣。

21. ASP、PHP等技術可以用來和MIDlet進行聯網通信嗎?
      答:可以

22. 如何通過J2ME獲得手機的號碼?
      答:在J2ME提供的API中是不能實現這樣的功能的,很多廠商可能會有自己的API來實現這樣的功能,請參考他們的開發文檔,另外,如果是c/s程序, 在服務器端可以通過移動網關取得大多數的手機號碼.phoneNumber= request.getHeader("x-up-calling-line-id"); 其中request是HttpServletRequest的對象

23. MIDP2.0中提供的PUSH技術要在什麼環境下才能正常工作?
      答:你必須把使用了PUSH的MIDlet Suite通過OTA的方式安裝到手機模擬器上纔可以,可以通過RUN via OTA(ktoolbar)

24. MIDP1.0中支持聲音嗎?
      答:MIDP1.0中不支持,在MIDP2.0中包括了MMAPI的一個子集用來處理音頻方面的需求

25. 如何用J2ME訪問手機文件系統上的文件?
      答:一般是不可以的,如果你的手機支持JSR75的話,那麼你可以使用FileConnection來進行操作。

26. 怎樣用eclipse打開一個用eclipse建的項目?
      答:File ——import ——existing project into workplace

27. 如何在J2ME中解析XML?
      答:可以採用第三方的程序kxml,如果手機支持jsr172的話那麼可以使用j2me的標準庫來完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章