Java手機技術 之 J2ME新手入門要點

來源:互聯網
上載者:User

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

現在有大部分人,都是從零開始學J2ME的,學習J2ME的時候,總是從Java基礎開始學習,而且現在講Java基礎的書籍中都是以J2SE來講基礎,這就給學習造成了一些不必要的麻煩,下面將J2ME中用到的和不需要的Java基礎知識做一個簡單的說明。

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

1、Java文法基礎:包括基礎資料型別 (Elementary Data Type)、關鍵字、運算子等等

2、物件導向的思想:類和對象的概念,繼承和多態等等

3、異常處理

4、多線程

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

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

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

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

簡單說這麼多,希望學J2ME的朋友們能少走一些彎路,不足之處希望大家積極指正和補充。

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

列一些J2ME中暫時無法完成的功能,希望大家能積極補充:

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

2、動態修改按鈕文字。

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

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

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

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

三、J2ME的跨平台性

J2ME技術源於Java,所以也具有JVM的優勢,可以在支援Java的平台上進行移植,但是現在的J2ME技術在跨平台上卻做的很糟糕,我們來簡單看一下原因:

1、手機的螢幕尺寸不一:

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

如果你使用的是低級使用者介面,比如你做的是遊戲,那麼你就需要考慮這個問題了。

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

例如Nokia的擴充API類庫UI系列,在別的手機上或者沒有實現,或者包名不同等等。

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可以從事的工作種類

現在J2ME技術可以說相當的火暴,這裡介紹一些學好了J2ME之後可以從事的工作的種類:

1、J2ME遊戲開發人員

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

需要熟練掌握:進階使用者介面、低級使用者介面、線程,如果是網路遊戲,還需要熟練網路編程。

2、J2ME應用開發人員

現在的行動裝置 App還不是很多,但是還是出現了一些,特別是移動定位以及移動商務相關的內容。需要熟練掌握:進階使用者介面、線程和網路編程。

3、J2ME遊戲移植人員

參照原始碼,將可以在一個平台上可以啟動並執行遊戲移植到其他平台上去。例如將Nokia S40的遊戲移植到S60上,或者索愛的T618等等。主要是控制螢幕座標,有些可能需要替換一些API。

需要熟悉各平台之間的差異以及相關的技術參數,比如螢幕大小、最大jar檔案尺寸等等。

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

1、使用物件導向編程。

雖然使用面向過程編程可以減小檔案的尺寸,但是為了以後維護的方便和利於擴充,還是要使用物件導向編程。

2、使用MVC模式

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

3、自動儲存使用者設定

使用RMS來儲存使用者的資訊,例如儲存使用者上次輸入的使用者名稱、密碼、使用者對於系統的設定等,這樣不僅可以減少使用者的輸入,而且對方便使用。很多程式甚至做了自動登陸等。

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

5、將低級使用者介面的繪製動作放在一個獨立的線程裡面去。

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

六、從模擬器到真機測試

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

1、為什麼要進行真機測試?

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

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

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

a) OTA下載

b) 使用資料線傳輸

c) 紅外傳輸

d) 藍芽

你可以根據條件,選擇合適的方式。

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

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

a) 程式的功能

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

c) 程式的大小,比如Nokia S40系列的手機大部分接受的最大檔案尺寸為64K

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

七、從WTK到廠商SDK

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

1、廠商SDK的?

•Nokia

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以及自己的模擬器,為:

http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp

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,為:

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

2、廠商SDK和WTK有什麼不同?

廠商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方法顯示顯示當前介面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.