明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

J2ME應(yīng)用技術(shù) [轉(zhuǎn)]

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

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

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

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

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

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

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

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

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

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

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

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

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