J2me的基本概念(转)
生活随笔
收集整理的這篇文章主要介紹了
J2me的基本概念(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文主要介紹J2me的基本概念。因為注意到國內的java站點介紹J2me的還比較少,所以就寫了本文。如果有什么不妥的地方,歡迎您email我,討論商榷。
如您要轉貼,請保留原出處,并勿做刪改。謝謝。
1.名詞
這里我列出一些常見的關鍵詞,方便與下文參照.具體解釋見后文.
J2ME(Java2 Platform, Micro Edition)
CLDC(Connected, Limited Device Configuration)
MIDP(Mobile Information Device Profile)
KVM(The K Virtual Machine)
2.背景
隨著無線應用與嵌入式系統的愈來愈受到人們的重視,SUN也推出了J2ME來迎合這一趨勢.(實際上道也不能算是新推出,熟悉Java歷史的人都知道,java原先本是為了開發消費性電子產品而研制的.誰知,無心插柳柳成蔭,因在網絡應用上的出色表現而流行,以致現在的J2EE、EJB等等,發展地越來越龐大。這次實質是殺了個回馬槍。至于表現如何,還得拭目以待)sun認為,未來的信息設備將比我們今天的更為customizable 和 personal。這一點我們已經可以從手機和pda的流行程度看出。所以為了開發面向這些設備的applications。sun推出了J2ME(Java2 Platform, Micro Edition)。
3.j2me的基本結構
j2me把設備分為兩類,一種是聯接設備( connected device),一種是有限聯接設備(Connected, Limited Device)。前一種對應于那些有電源的,電力充裕,較大的設備。例如:電視機,冰箱等,后一種對應于主要使用電池,小型的設備,例如:手機,pda等。這里我只涉及第二種,有限聯接設備(Connected, Limited Device)。
3.j2me的基本結構
sun把J2me分為兩個部分:configuration 和 profile。
configuration包括虛擬機(virtual machine),核心的類庫與API。configuration層定義一個java虛擬機的特性與java類庫的最小子集。也就是說,configuration層提供了開發人員一個最基礎,最核心的Java平臺。就像我前文提到的,j2me把設備分為兩類,一種是聯接 設備(connected device),一種是有限聯接設備(Connected, Limited Device)。對應這兩種設備就有了兩種J2ME configuration。分別為CDC(Connected Device Con-figuration )和CLDC(Connected, Limited Device Configuration)。這里請注意,CDC使用經典的javaVM,而CLDC使用的是KVM(The K Virtual Machine)。
注:kvm是sun為使用16/32位RISC/CISC微處理器或控制器,并其可用內存為160kb~512kb 的的設備而開發的。
Profile層也包含一組API,主要針對于特定的某一族系的設備而定義。profile層在特定的configuration層上實現,而我們程序員則負責在特定的profile上編寫應用程序。對于手機,pda等Connected, Limited Device。它們的profile層稱為MIDP(Mobile InformationDevice Profile)。于是MIDP與CLDC合在一起就構成了一個完整的J2ME架構。
順便說一句,對于MIDP上的應用程序sun也有獨特的叫法,它們被稱為MIDlet。你是不是覺得有點眼熟。想想java中的applet。
┌───────┐┄┄┄┄┄┄┄
│MIDlet │ 應用程序
├───────┤┈┈┈┈┈┈┈
│ MIDP │ proflie層
├───────┤┄┄┄┄┄┄┄
│J2ME核心API │ configuration層
├───────┤ CLDC
│ KVM │
├───────┤┈┄┄┄┄┄┄
│特定的硬件 │
└───────┘
圖1 J2ME的CLDC&MIDP架構
4。深入理解CLDC
本節的部分內容譯自J2ME White Paper,比較枯燥,但請記住,畢竟,正確的觀念重于一切。
CLDC的目的
?為小型的,且資源有限,Connected Limited的設備定義一個標準的Java平臺。
?允許動態的向這些設備發布內容與應用程序。
?方便第三方軟件廠商與開發者向這些設備移植內容與應用程序。
CLDC的范圍
?Java語言與虛擬機的特性
?核心Java類庫(如java.lang.*, java.util.*)
?輸入/輸出
?對網絡的支持
?對安全性的支持
?對國際化的支持
CLDC不包括的范圍(即由MIDP解決的)
?對應用程序life-cycle的管理(就是指一個應用程序是如何安裝,運行,刪除的)
?UI界面(User Interface)
?Event處理
?高級應用程序模式(這里指用戶與應用程序的交互)。
CLDC的安全性
低端的基于虛擬機的安全性由下載時對class文件的審核(verification)步驟來保證。(如果你寫過并編譯過MIDlet程序,就會知道這一步是必須的。這里有一個概念就行了,我會在以后講述如何創建MIDlet程序時,詳細介紹具體的步驟)。
基于應用程序的安全性通過使每個應用程序分別運行在相對獨立的封閉環境中來保證并且處于被保護的系統package中的類不能被應用程序重載(overridded)。
對于Java語言支持的特殊的方面
CLDC總的來說是與Java語言完全兼容的,但需注意以下幾點:
不支持浮點數據類型(即沒有float和double)(這實際上主要是由于CLDC所面向的設備,其硬件因其內存限制或是基于安全性的考慮不支持浮點運算)
不支持類實例(class instance)的終結(finalization),即不存Object.finalize ()方法。(注:finalization指的是java中提供的有別與garbage collection的另外的一種對象清理方法。具體可參看侯捷老師譯的Bruce Eckel的《Thinking in Java 第二版》,可以在www.jjhou.com中下載)
有限的錯誤處理,即大部分Java.lang.Error的子類都未被支持。與此相反,CLDC包括了相當完備的異常(exception)類。
對于Java虛擬機(Java Virtual Machine)支持的特殊的方面
實質上CLDC在其嚴格的內存限制下達到了對Java虛擬機相當程度的兼容性。不過還是有下列不同點。
?不支持浮點數據類型(沒有float和double)
?不支持JNI (the Java Native Interface )
?不支持用戶自定義的Java級的類載入器(class loaders )
?沒有反射(reflection)特性(注:reflection指java通過java.lang.reflect提供的,可以對類的能力進行分析的功能。常用來對類的結構進行檢查,在JavaBeans上有廣泛運用可參見Gary Cornell的Core Java2 volumeI,II,機工有出中譯本)
?不支持線程組(thread groups)或守護線程(daemon threads)
?不支持類實例(class instance)的終結(finalization)
?沒有弱參考(weak references)(注:weak reference提供了一種解決指向已經被garbage collector清除的對象的方法。在Java2中被介紹。具體請參考java.lang.ref API文檔,和sun網站上關于Reference Objects和Garbage Collection的文章。)
如您要轉貼,請保留原出處,并勿做刪改。謝謝。
1.名詞
這里我列出一些常見的關鍵詞,方便與下文參照.具體解釋見后文.
J2ME(Java2 Platform, Micro Edition)
CLDC(Connected, Limited Device Configuration)
MIDP(Mobile Information Device Profile)
KVM(The K Virtual Machine)
2.背景
隨著無線應用與嵌入式系統的愈來愈受到人們的重視,SUN也推出了J2ME來迎合這一趨勢.(實際上道也不能算是新推出,熟悉Java歷史的人都知道,java原先本是為了開發消費性電子產品而研制的.誰知,無心插柳柳成蔭,因在網絡應用上的出色表現而流行,以致現在的J2EE、EJB等等,發展地越來越龐大。這次實質是殺了個回馬槍。至于表現如何,還得拭目以待)sun認為,未來的信息設備將比我們今天的更為customizable 和 personal。這一點我們已經可以從手機和pda的流行程度看出。所以為了開發面向這些設備的applications。sun推出了J2ME(Java2 Platform, Micro Edition)。
3.j2me的基本結構
j2me把設備分為兩類,一種是聯接設備( connected device),一種是有限聯接設備(Connected, Limited Device)。前一種對應于那些有電源的,電力充裕,較大的設備。例如:電視機,冰箱等,后一種對應于主要使用電池,小型的設備,例如:手機,pda等。這里我只涉及第二種,有限聯接設備(Connected, Limited Device)。
3.j2me的基本結構
sun把J2me分為兩個部分:configuration 和 profile。
configuration包括虛擬機(virtual machine),核心的類庫與API。configuration層定義一個java虛擬機的特性與java類庫的最小子集。也就是說,configuration層提供了開發人員一個最基礎,最核心的Java平臺。就像我前文提到的,j2me把設備分為兩類,一種是聯接 設備(connected device),一種是有限聯接設備(Connected, Limited Device)。對應這兩種設備就有了兩種J2ME configuration。分別為CDC(Connected Device Con-figuration )和CLDC(Connected, Limited Device Configuration)。這里請注意,CDC使用經典的javaVM,而CLDC使用的是KVM(The K Virtual Machine)。
注:kvm是sun為使用16/32位RISC/CISC微處理器或控制器,并其可用內存為160kb~512kb 的的設備而開發的。
Profile層也包含一組API,主要針對于特定的某一族系的設備而定義。profile層在特定的configuration層上實現,而我們程序員則負責在特定的profile上編寫應用程序。對于手機,pda等Connected, Limited Device。它們的profile層稱為MIDP(Mobile InformationDevice Profile)。于是MIDP與CLDC合在一起就構成了一個完整的J2ME架構。
順便說一句,對于MIDP上的應用程序sun也有獨特的叫法,它們被稱為MIDlet。你是不是覺得有點眼熟。想想java中的applet。
┌───────┐┄┄┄┄┄┄┄
│MIDlet │ 應用程序
├───────┤┈┈┈┈┈┈┈
│ MIDP │ proflie層
├───────┤┄┄┄┄┄┄┄
│J2ME核心API │ configuration層
├───────┤ CLDC
│ KVM │
├───────┤┈┄┄┄┄┄┄
│特定的硬件 │
└───────┘
圖1 J2ME的CLDC&MIDP架構
4。深入理解CLDC
本節的部分內容譯自J2ME White Paper,比較枯燥,但請記住,畢竟,正確的觀念重于一切。
CLDC的目的
?為小型的,且資源有限,Connected Limited的設備定義一個標準的Java平臺。
?允許動態的向這些設備發布內容與應用程序。
?方便第三方軟件廠商與開發者向這些設備移植內容與應用程序。
CLDC的范圍
?Java語言與虛擬機的特性
?核心Java類庫(如java.lang.*, java.util.*)
?輸入/輸出
?對網絡的支持
?對安全性的支持
?對國際化的支持
CLDC不包括的范圍(即由MIDP解決的)
?對應用程序life-cycle的管理(就是指一個應用程序是如何安裝,運行,刪除的)
?UI界面(User Interface)
?Event處理
?高級應用程序模式(這里指用戶與應用程序的交互)。
CLDC的安全性
低端的基于虛擬機的安全性由下載時對class文件的審核(verification)步驟來保證。(如果你寫過并編譯過MIDlet程序,就會知道這一步是必須的。這里有一個概念就行了,我會在以后講述如何創建MIDlet程序時,詳細介紹具體的步驟)。
基于應用程序的安全性通過使每個應用程序分別運行在相對獨立的封閉環境中來保證并且處于被保護的系統package中的類不能被應用程序重載(overridded)。
對于Java語言支持的特殊的方面
CLDC總的來說是與Java語言完全兼容的,但需注意以下幾點:
不支持浮點數據類型(即沒有float和double)(這實際上主要是由于CLDC所面向的設備,其硬件因其內存限制或是基于安全性的考慮不支持浮點運算)
不支持類實例(class instance)的終結(finalization),即不存Object.finalize ()方法。(注:finalization指的是java中提供的有別與garbage collection的另外的一種對象清理方法。具體可參看侯捷老師譯的Bruce Eckel的《Thinking in Java 第二版》,可以在www.jjhou.com中下載)
有限的錯誤處理,即大部分Java.lang.Error的子類都未被支持。與此相反,CLDC包括了相當完備的異常(exception)類。
對于Java虛擬機(Java Virtual Machine)支持的特殊的方面
實質上CLDC在其嚴格的內存限制下達到了對Java虛擬機相當程度的兼容性。不過還是有下列不同點。
?不支持浮點數據類型(沒有float和double)
?不支持JNI (the Java Native Interface )
?不支持用戶自定義的Java級的類載入器(class loaders )
?沒有反射(reflection)特性(注:reflection指java通過java.lang.reflect提供的,可以對類的能力進行分析的功能。常用來對類的結構進行檢查,在JavaBeans上有廣泛運用可參見Gary Cornell的Core Java2 volumeI,II,機工有出中譯本)
?不支持線程組(thread groups)或守護線程(daemon threads)
?不支持類實例(class instance)的終結(finalization)
?沒有弱參考(weak references)(注:weak reference提供了一種解決指向已經被garbage collector清除的對象的方法。在Java2中被介紹。具體請參考java.lang.ref API文檔,和sun網站上關于Reference Objects和Garbage Collection的文章。)
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/10294527/viewspace-126999/,如需轉載,請注明出處,否則將追究法律責任。
轉載于:http://blog.itpub.net/10294527/viewspace-126999/
總結
以上是生活随笔為你收集整理的J2me的基本概念(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB2016a启动慢
- 下一篇: flask上传图片解决方案