程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 2005 J2ME引領移動開發

2005 J2ME引領移動開發

編輯:J2ME
文章摘要
2005年對計算機通信行業的開發者和從業者來說有太多的期待,而最值得期待的就是被稱之為純技術驅動的第三代移動通信系統的商用。姑且不談純技術驅動有沒有市場,能不能成功,但是3G的商用必定會給移動開發插上飛翔的翅膀,筆者認為J2ME將是移動開發這場競賽的領跑者。本文將從總體介紹J2ME的體系結構和主要內容,同時談談J2ME同其他移動開發平台的比較。

J2ME概述
2004年,移動開發恐怕成為了最時髦的字眼。在CSDN的最近一份調查顯示,有24.34%的受訪者涉足嵌入式/移動設備應用開發,這個數字可能略高於實際的比例,但也足可說明嵌入式/移動設備應用開發是一塊誘人的新鮮奶酪。J2ME是嵌入式/移動應用平台的王者,Linux和WinCE分列二、三位。Nokia等廠商力推的Symbian平台目前開發者占有率尚未達到滿意水平,考慮到調查項合並了嵌入式設備(例如PDA)和移動設備(例如智能手機),SymBian、WinCE系列在移動平台上會是競爭的主要兩方。如果廠商能在標准實現上做得更加規范,則J2ME的跨平台特性會發揮得更加淋漓盡致,繼續保有王者地位。

J2ME是SUN公司推出的針對嵌入式消費類電子產品的開發平台,與J2SE和J2EE共同組成Java技術的三個重要的分支。J2ME實際上是一系列規范的集合,由JCP組織制定相關的JSR並發布,各個廠商會按照規范在自己的產品上進行實現,但是必須要通過TCK測試,這樣確保兼容性。比如MIDP2.0規范就是在JSR118中制定的。J2ME平台的形成頗有些Java技術回歸起點的味道,我們知道Java本來就是針對消費類電子產品而生的一門編程語言,而後才慢慢發展為一門技術、一個平台的。

談到J2ME我們通常都會說到一個詞KVM,而這可以認為是J2ME的起源,KVM之父Antero Taivalsaari本來在SUN公司參與一個名叫Spotless的研究型項目,由於他曾經有著在世界知名電信設備制造商工作的經歷,這使得他萌發了在移動終端設備,比如手機,上實現Java虛擬機的想法,而這得到了經理的支持。隨後AT做為領導者帶領團隊開發了能夠在手機這樣的移動終端設備上運行的虛擬機和CLDC核心類庫。慢慢的J2ME浮出了水面。

J2ME的設計應該說是眾多頂級工程師的結晶,她被設計的非常靈活。在J2ME中非常重要的兩個概念是Configuration和Profile。Configuration是支持最大范圍設備的最小的平台,在這一層還包括了Java虛擬機。Profile是針對特定的設備提供相應的開發包集合。另外針對某些設備特有的功能特性,J2ME還推出了Optional Profile的概念。比如Mobile Media API。

J2ME平台中有兩個主要的Configuration,一個是Connected Limited Device Configuration,一個是Connected Device Configuration。區分的標准則是按照設備的處理器、內存、聯網能力等硬件特性。由於這些規范制定比較早,而現在的移動終端設備的處理和存儲能力都有了質的飛躍。因此不再列出區分的標准,因為那已經沒有了意義,你甚至會認為那是錯誤的。目前J2ME的應用主要還是基於CLDC的,因此本文將主要向讀者介紹基於CLDC的J2ME平台。不過筆者在兩家世界著名電信設備商參加的開發項目表明,基於CDC的應用將慢慢占領主流市場,因為CDC提供了更強大的類庫支持。

Mobile information Device Profile位於CLDC之上,在CLDC規范制定出來後並沒有引起開發者的廣泛注意,市場也沒有因此而發生變化。原因是CLDC中並沒有提供圖形用戶界面編程的接口,這樣應用程序就沒有和用戶交互的能力了。MIDP1.0的推出受到了開發者的廣泛關注,在MIDP1.0中提出了一種新的應用程序模型MIDlet,開發者還可以用MIDP中提供的Javax.microedtion.lcdui包開發圖形用戶界面程序,用MIDP1.0的子系統Record Management System進行數據的持久性操作,借助於CLDC中提供的Generic Connection Framework的聯網能力可以通過HTTP協議訪問Web服務器,J2ME幾乎無所不能。然而一些問題也慢慢暴露出來,由於MIDP的規范制定得過於寬泛、提供的功能有限,導致各個廠商在實現MIDP的時候在功能特性上存在很多差異,比如應用程序的大小、RMS的存儲空間、並行存在的線程數量等等。更糟糕的是各個廠商還實現了很多J2ME之外的功能,例如Nokia UI API中提供了聲音處理以及全屏等功能,這樣破壞了Java跨平台的特性,如果你得程序中應用了Nokia UI API的話,那麼它就不能移植到Motorola的手機設備上了。為了彌補這些不足,SUN在隨後的MIDP2.0中推出了MMAPI的一個子集來解決聲音處理的不足,並設計了一個獨立的游戲開發包Javax.microedition.lcdui.game用於游戲開發,還對push、socket聯網等特性提供了支持。在JSR185中更是推出Java Technology for the Wireless Industry使得規范更加嚴格,提高了應用程序的兼容性。不僅如此,J2ME中的可選包更是各顯神通,Bluetooth API,SIP API for J2ME和Mobile 3D Graphics都提供了非常強大的功能。

 

J2ME的發展與競爭
軟件環境飛速發展的同時,J2ME平台的硬件環境和市場同樣越來越成熟。Java手機的數量在成倍增長,預計2006年Java手機數量有望突破6億部。硬件中加快集成Java預計將進一步促進Java在市場中的普及,J2ME將成為事實上的標准。到2006年,Java手機預計將占全部手機出貨量的83%。與此同時移動增值業務的突飛猛進大大的推動了J2ME技術的發展,預計到2008年全球與Java相關的移動增值業務市場總值將達到147億美元。

2004年微軟公司開始逐漸進入移動通信行業,並與美國的電信設備制造商Motorola推出內置微軟SmartPhone的手機,打入手機市場。另外高通的BREW和Nokia的SymBian也一直認為是J2ME的競爭對手。不過目前他們的市場占有量都還很難和J2ME平台相比。BREW的兼容性差是最大的缺點,2004年中國聯通不甘心受制於高通的限制,而與SUN公司聯手打造了UniJa平台。筆者認為微軟提供的Mobile Windows和Nokia的SymBian平台將是J2ME最大的競爭對手,SymBian是目前最成熟的手機操作系統,通過使用Nokia提供的SDK,開發者可以使用Java或者C/C++進行應用程序的開發,遺憾的是SymBian的開發資料相對貧乏,C++語言的開發效率比Java要低 ,這些都給基於SymBian操作系統的C++開發的推廣帶來了不利的影響。國外的Motorola和國內的多普達等廠商陸續推出了基於微軟SmartPhone操作系統的手機,表明了微軟進軍移動開發市場的野心,通過使用微軟提供的SDK,開發者可以在手機上使用Compact .Net Framework進行高效的開發,當然也可以使用C/C++。然而畢竟微軟剛剛進入移動開發市場,市場占有率還不高。

J2ME平台是開放的,目前已經占領了絕對份額的市場。我們有理由相信J2ME將繼續成為移動開發的領導力量。

結束語
走過彌漫著硝煙的市場、信步在大自然的懷抱的時候才可以讓我們開發者更加清醒。無論鹿死誰手,開發者始終應該保持的是那份對技術務實的執著,摒棄那份浮躁與不安。2005年是移動開發走向成熟的一年,J2ME將繼續領跑。讓我們拭目以待!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved