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