J2ME程序開發新手入門九大要點

一、J2ME中需要的Java基礎知識

  J2ME中使用到的Java基礎知識:

   1、Java語法基礎:包括基本數據類型、關鍵字、運算符等等

   2、面向對象的思想:類和對象的概念,繼承和多態等等。

JAVA手機網[www.cnjm.net]
   3、異常處理

   4、多線程

  J2ME中沒有用到的Java基礎知識:

   1、JDK中javac和java命令的使用

   2、Java基礎中的很多類在J2ME中沒有,或者類中的方法做了大量的精簡。所以建議在J2ME中熟悉類庫。

   3、Applet、AWT、Swing這些知識在J2ME中根本使用不到。 

  二、J2ME中暫時無法完成的功能

JAVA手機網[www.cnjm.net]
  列一些J2ME中暫時無法完成的功能:
JAVA手機網[www.cnjm.net]

   1、在手機中不更改代碼實現移植,主要指遊戲。

JAVA手機網[www.cnjm.net]
   2、動態修改按鈕文字。

   3、在Canvas上接受中文輸入。

   4、操作本地資源、例如地址本、已收短信息等。

   5、製作破壞性的手機病毒。

   6、其他等待大家來補充。

  三、J2ME的跨平臺性

  J2ME技術源於Java,所以也具有JVM的優勢,可以在支持Java的平臺上進行移植,但是現在的J2ME技術在跨平臺上卻做的很糟糕

  1、手機的屏幕尺寸不一:
JAVA手機網[www.cnjm.net]

  這個主要在界面製作上。如果你使用的是高級用戶界面,比如你做的是應用開發或者用戶登陸、用戶註冊這樣的通用功能時,一般沒有什麼問題。

JAVA手機網[www.cnjm.net]
  如果你使用的是低級用戶界面,比如你做的是遊戲,那麼你就需要考慮這個問題了。

  2、廠商的擴展API不統一:

  例如Nokia的擴展API類庫UI系列,在別的手機上或者沒有實現,或者包名不同等等。
JAVA手機網[www.cnjm.net]

  3、手機平臺上實現的bug:

  例如Nokia的7650在實現雙緩衝上有bug,那麼在這種機型上運行的軟件就不能使用雙緩衝。其他NOKIA上的一些bug,可以參看:http://blog.csdn.net/Mailbomb/archive/2005/03/24/329123.aspx

  4、手機性能問題。

  不同手機的可用內存、最大jar文件都有要求,例如Nokia S40的大部分手機支持的最大jar文件爲64K,最大可用內容爲210K。

  所以現在的手機軟件,特別是遊戲都提供支持的機型列表,也纔有了手機遊戲移植人員的存在。

  四、學習J2ME可以從事的工作種類
JAVA手機網[www.cnjm.net]
JAVA手機網[www.cnjm.net]
  1、J2ME遊戲開發人員

  根據遊戲策劃或者文檔要求,在某種特定的機型(以Nokia S40或S60居多)開發遊戲程序。這是現在大部分J2ME程序員從事的工作。

  需要熟練掌握:高級用戶界面、低級用戶界面、線程,如果是網絡遊戲,還需要熟練網絡編程。

  2、J2ME應用開發人員

  現在的移動應用還不是很多,但是還是出現了一些,特別是移動定位以及移動商務相關的內容。需要熟練掌握:高級用戶界面、線程和網絡編程。

  3、J2ME遊戲移植人員

  參照源代碼,將可以在一個平臺上可以運行的遊戲移植到其他平臺上去。例如將Nokia S40的遊戲移植到S60上,或者索愛的T618等等。主要是控制屏幕座標,有些可能需要替換一些API。

  需要熟悉各平臺之間的差異以及相關的技術參數,比如屏幕大小、最大jar文件尺寸等等。
JAVA手機網[www.cnjm.net]

  五、J2ME程序設計的幾個原則

  1、使用面向對象編程。
JAVA手機網[www.cnjm.net]

JAVA手機網[www.cnjm.net]
  雖然使用面向過程編程可以減小文件的尺寸,但是爲了以後維護的方便和利於擴展,還是要使用面向對象編程。

  2、使用MVC模式

  將模型、界面和控制分離。現在很多的程序將三者合一,但是如果你做的程序比較大的話,還是建議你進行分離。

  3、自動存儲用戶設定

  使用RMS來存儲用戶的信息,例如存儲用戶上次輸入的用戶名、密碼、用戶對於系統的設定等,這樣不僅可以減少用戶的輸入,而且對用戶友好。很多程序甚至做了自動登陸等。

  4、一些系統設置允許用戶關閉。如背景音樂、背景燈顯示等。

  5、將低級用戶界面的繪製動作放在一個獨立的線程裏面去。

  6、在需要大量時間才能完成的工作時,給用戶一個等待界面。

  六、從模擬器到真機測試

  對於J2ME開發者來說,模擬器給我們帶來了很多方便,比如可以在模擬器中調試程序以及很方便的察看程序的效果,但是模擬器也給我們帶來了一些問題,比如模擬器實現的bug等等,所以進行真機測試是必須的。

  1、爲什麼要進行真機測試?
JAVA手機網[www.cnjm.net]

  因爲模擬器程序可能存在bug,以及真機的性能有限,所以必須進行真機測試。

  2、如何將程序傳輸到機器中?

  將程序傳輸到機器中有如下方式:

   a) OTA下載

   b) 使用數據線傳輸

   c) 紅外傳輸

   d) 藍牙

  你可以根據條件,選擇合適的方式。
JAVA手機網[www.cnjm.net]

  3、 真機測試主要測什麼?

  真機測試的內容很多,主要測試以下幾個方面:

   a) 程序的功能
JAVA手機網[www.cnjm.net]

   b) 程序的操作性,是否易操作

   c) 程序的大小,比如Nokia S40系列的手機大部分接受的最大文件尺寸爲64K

   d) 程序運行速度,速度是否可以忍受。

  七、從WTK到廠商SDK

  對於J2ME愛好者來說,基本上大家都是從SUN的WTK(J2ME Wireless Toolkit)開始的,但是對於實際應用來說,僅僅使用WTK是遠遠不夠的,所以在學習過程中,必須完成從WTK到SDK的跨越。
JAVA手機網[www.cnjm.net]

  1、廠商SDK的下載地址?

  ·Nokia
JAVA手機網[www.cnjm.net]

  Nokia不愧爲手機行業的老大,對於j2me的支持也是一流的,有專門的網站提供SDK和各種文檔說明。

  網址是:http://forum.nokia.com.cn/sch/index.html

  ·Siemens

  Siemens對於J2ME的支持也不錯,它提供了SDK,模擬器需要獨立安裝。下載地址如下:

 https://communication-market.siemens.de/portal/main.aspx?LangID=0&MainMenuID=2&LeftID=2&pid=1&cid=0&tid=3000&xid=0

  ·SonyEricsson

  SonyEricsson SDK以及自己的模擬器,下載地址爲:

 [url]http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp/url]
JAVA手機網[www.cnjm.net]
  http://mobilityworld.ericsson.com.cn/development/download_hit.asp

  ·Motorola

  Motorola提供了專門的SDK,內部包含模擬器,下載地址爲:

 http://www.motocoder.com/motorola/pcsHome.jsp

  ·SamSung

  SamSung也提供了專門的SDK和模擬器,下載地址爲:

  http://developer.samsungmobile.com/eng/front_zone/bbs/bbs_main.jsp?p_menu_id=1500

  ·NEC:

  NEC也提供了集成模擬器的SDK,下載地址爲:
JAVA手機網[www.cnjm.net]

 http://www.nec-mfriend.com/cn

  2、廠商SDK和WTK有什麼不同?
JAVA手機網[www.cnjm.net]

  廠商SDK最簡單的理解就是在WTK的基礎上增加了自己的模擬器和自己的擴展API。也就是說,你在使用廠商的SDK時,可以使用廠商的擴展類庫,例如Nokia的UI類庫,和廠商自己的模擬器而已。每個廠商的擴展API都不多,而且不盡相同。

  3、如何使用?

  有些廠商SDK的使用都和WTK相同,例如SamSung。Nokia提供了獨立的界面來開發,但是這個界面在實際開發中使用不多。

  4、廠商SDK的問題

  廠商SDK實現過程中,有一些bug,而且和真機實現不一致。例如NOKIA的混音播放問題等等。

  八、在J2ME中獲得手機IMEI的方法

  IMEI是Internation mobile entity identification的簡稱,在手機中輸入*#06#可以顯示該數字,長度爲15位,全球唯一,永遠不會衝突,所以可以作爲識別用戶的一個標誌。

  下面是在J2ME中獲得IMEI的方法:

  1、MOTO系列的手機可以通過讀取系統的IMEI屬性獲得,代碼如下:

   String imei = System.getProperty("IMEI");

  2、SIEMENS系列的手機可以通過讀取系統的com.siemens.IMEI屬性獲得,代碼如下:

   String imei = System.getProperty("com.siemens.IMEI");

  九、J2ME網絡連接中顯示問題的解決辦法

  在網絡編程中,有些時候會出現一些在沒有接收到網絡數據就顯示界面的,造成界面顯示不符合要求(例如公告顯示,會先顯示公告的背景圖片再顯示公告信息),這裏提一個簡單的解決辦法給大家:

  解決這種情況的方法分成三個步驟:

  1、在需要顯示的界面中,調用發送網絡數據的方法。每次顯示時調用該構造方法,不調用Display的setCurrent方法顯示。

  2、顯示等待界面(例如進度條等),給用戶提示,在進行網絡連接。

  3、在處理網絡反饋的數據完以後,調用Display的setCurrent方法顯示顯示當前界面 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章