天天看點

開發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的标準庫來完成。

繼續閱讀