明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

J2ME應用技術 [轉]

[摘要]J2ME應用技術---- 隨著Java技術的不斷發(fā)展,它根據市場進一步細分為針對企業(yè)網應用的J2EE(Java 2 Enterprise Edition)、針對普通PC應用的J2SE(Java 2 Standard Edition)和針對嵌入式設備及消費類電器的J2ME(Java 2 Micro ...
J2ME應用技術

---- 隨著Java技術的不斷發(fā)展,它根據市場進一步細分為針對企業(yè)網應用的J2EE(Java 2 Enterprise Edition)、針對普通PC應用的J2SE(Java 2 Standard Edition)和針對嵌入式設備及消費類電器的J2ME(Java 2 Micro Edition)等3個版本。J2ME推出之后,Motorola公司作為J2ME的主要支持者,第一個在自己生產的手機上移植了KVM(千字節(jié)虛擬機),又領導全球手機廠家制定了MIDP(移動信息設備框架)規(guī)范。那么,為什么Motorola對J2ME如此青睞?J2ME究竟魅力何在呢? J2ME能給我們帶來什么?

---- 回顧移動電話的發(fā)展歷史,我們不難發(fā)現移動電話上應用軟件的發(fā)展也經歷了3個階段。傳統(tǒng)的移動電話通常只有通話和短消息功能,只能提供基本的語音服務。隨后移動電話上又增加了一些簡單的附加應用,如電話簿和電話鈴聲編輯功能等。而現在隨著WAP技術的發(fā)展,移動電話增加了訪問Internet的功能,使用戶可以直接在手機上以無線方式瀏覽網頁。然而,隨著無線Internet新應用的出現,新的問題也隨之而來。

---- 首先面臨的是開發(fā)瓶頸的問題。目前,手機類嵌入式系統(tǒng)普遍使用C語言和專用的實時操作系統(tǒng),開發(fā)速度慢,也沒有動態(tài)加載應用程序的能力。移動電話上應用程序的開發(fā)變得越來越困難,一方面單純依靠手機廠商自身的軟件開發(fā)能力難以滿足市場的需求,而另一方面廣大的軟件開發(fā)商卻又無法參與進來,開發(fā)適用于移動電話的應用程序。這無疑極大制約了新應用的推廣與普及。

---- 其次,移動電話訪問Internet只能通過WAP方式,而WAP采用Browser/Server方式訪問Internet卻功能有限,F在的WAP解決方案要求手機通過WAP網關才能訪問Internet,而且只能訪問WML而不是主流的HTML,也不能顯示復雜格式的圖形。此外,因為現有的WAP解決方案不夠智能,而且不能訪問本地存儲區(qū),如果進行在線交易會增加服務器負荷,反應速度慢,使無線Internet應用受到了很大的限制。

---- J2ME的出現則使上述問題迎刃而解。因為Java語言是跨平臺運行的,這一特性使第三方軟件開發(fā)商可以很容易地介入進來開發(fā)應用程序,也可以很方便地將應用程序安裝移植到移動電話上,開發(fā)周期也大大縮短,而且還能支持應用程序的動態(tài)下載和升級。J2ME提供了HTTP高級Internet協議,使移動電話能以Client/Server方式直接訪問Internet的全部信息,不同的Client訪問不同的文件,此外還能訪問本地存儲區(qū),提供最高效率的在線交易。

---- J2ME除了能夠更好地增強完善移動電話上已有的應用外,還進一步增加了字典、圖書、游戲、遙控家電和定時提醒等新的應用,并能訪問電子郵件、即時消息、股票和電子地圖等信息。

---- 在J2ME出現之前,我們更多接觸到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和實時Java(Real Time Java)等。其中Java卡是針對SIM卡、智能卡等設備而定制的最小Java子集,比J2ME還要小,移植性也不強。嵌入式Java則針對特殊用戶自行配置Java類庫和VM(Virtual Machine,虛擬機)。它對資源需求極小,可運行在無圖形用戶接口和網絡的設備上,可以添加用戶專用的API,但是它根本就無法移植。實時Java是由IBM領導的RTJE組織(Real Time Specification for Java Experts Group,實時定制Java專家組)負責實施的,現在還在不斷完善中。不過,從嚴格意義上來說,它們都不是真正的J2ME。

---- 為了進一步討論J2ME的技術細節(jié),我們首先需要了解Java的結構。Java內部分為3層,從下到上分別是VM、Configuration(配置)和Profile(框架)。VM負責建立Java虛擬機,解釋Java代碼。Configuration負責建立核心類庫,功能比較少(比如沒有用戶接口),主要面向水平市場。Profile負責建立高級類庫,主要功能豐富,面向垂直市場。

---- 針對手機內存小、速度慢和I/O差的特點,J2ME對VM、Configuration和Profile等3層結構做了特殊的實現:在VM層,Motorola在手機上移植了KVM。顧名思義,KVM只需要幾百KB的內存就可以運行; 在Configuration層,J2ME規(guī)定了連接限制設備配置(Connected Limited Device Configuration,CLDC)。它適用于有雙向網絡連接但是硬件資源有限的設備;在Profile層,J2ME規(guī)定了移動信息設備框架(Mobile Information Device Profile,MIDP),適用于手機或雙向尋呼機。 J2ME與WAP:朋友還是敵人? ---- J2ME剛剛提出的時候,經常會有人討論,在無線Internet應用領域它是不是WAP的對手?其實,它們之間并沒有直接競爭的關系,而是可以共生共存、互補互助。 ---- WAP包括2層內容:一層是無線Internet傳輸層,它針對無線的特點制定了WDP、WTP等等協議; 另一層是應用層,WAP以Browser的方式來訪問Internet。為了適應低速網絡的限制,WAP簡化了Internet標準的HTML,制定了WML標準,并且只能訪問WML腳本。而J2ME在傳輸層提供了一組面向應用程序的高層協議,以支持HTTP協議,在此基礎上,Motorola在它開發(fā)的KVM上又實現了對TCP/IP協議的支持,實際的傳輸可以基于WAP實現,也可以基于其他方式(比如CSD或GPRS等)。在應用層,J2ME提供了全功能的Java開發(fā)環(huán)境,可以用Client/Server方式來訪問Internet上的所有數據,而與標記語言無關。

---- 總的來說,WAP是在線瀏覽技術,只能以Browser/Server 模式運行于在線環(huán)境,而J2ME采用Client/Server模式,既可以用于在線環(huán)境,也可以用于離線應用(如圖3所示)。此外,WAP論壇現在也正在嘗試讓現有WAP瀏覽器通過WAP Profile與Java交談或直接用Java編寫WAP瀏覽器。

---- 由此可見,J2ME與WAP并沒有競爭關系,而是面向不同領域的兩套解決方案。如果是面向瀏覽的應用,比如新聞、天氣預報等,可以繼續(xù)使用WAP方案; 如果是需要智能處理的應用,比如收發(fā)E-mail、股票信息等,就更適合用J2ME實現。

---- 據悉,Motorola公司即將在全球范圍內推出同時支持J2ME和GPRS的大屏幕手機,它將是首款實用的適合于開發(fā)無線Internet應用的移動電話。Motorola在研發(fā)與推廣J2ME終端的同時,還積極培育J2ME應用開發(fā)環(huán)境,并于2001年年初推出支持開發(fā)商開發(fā)應用的網站(http://j2me.motorola.com.cn),不僅提供了大量技術文檔,而且還有供不同層次的開發(fā)商使用的工具軟件、源程序示例、模擬器、技術論壇以及更進一步的技術支持。相信隨著J2ME技術的不斷發(fā)展,一定會產生出新一代的應用,讓無線Internet大放異彩。