關於java和c++好壞我這裏不作評論,不過聽說J2ME在移動這一塊移植性比較好,這裏就花點時間研究一下,前一陣研究了一下Symbain和Windows mobile,都可以用C++開發,但是開發一個mobile的軟件爲這兩個os需要分別開發,代碼很難重用,個人感覺如果開發windows mobile的應用還是用C#比較好,開發效率高而且好維護.
1、什麼是J2ME?
J2ME(Java 2 Micro Edition)是Java(J2SE,J2EE,J2ME)三個分支之一,J2ME其實是一些列規範的集合,由JCP組織制定相關的JSR(Java Specifictian Request),各個廠商按照規範在自己的產品進行實現,不過都得通過TCK的測試,保證其兼容性。
瞭解了什麼是J2ME後,我們還應該瞭解兩個新名詞:CLDC(Connected Limited Devices
Configuration)和MIDP(Mobile Information Devices Profile)
J2ME平臺其實是由配置(CLDC)和簡表(MIDP)搭建而成的.
配置 -- 是提供給最大範圍設備使用的最小類庫集合,在配置中同時包含Java 虛擬機。
簡表 -- 是針對一系列設備提供的開發包集合。
J2ME還有個就是可選包的概念,一些列根據不同的設備開發出來開發包,這裏感覺有零散,例如有專門針對藍牙的api包等。
2、什麼是MIDlet?
MIDlet是MIDP定義的一個應用程序的模型,它被AMS(Appliction Management Software),AMS會負責它的安裝、刪除、下載、運行。
J2ME給自己的程序定義了這種程序模型,就和我們C++的dll的模型一樣,都有自己的入口和出口等,我們姑且先這麼理解,代碼的時候就照毛畫虎就可以了。學習沒有語言都要學習它獨有的規範,沒轍啊,啥時候我們也制定一個自己的規範讓別人去學:)
對我們C++程序員來學語法不是問題,java和C++的很像,最主要的就是去學習它制定的一系列的規範和學習如果去找到自己想要的包並把它用起來,C++我們有STL、ATL、WTL和MFC,還有最基礎的win32的api,在J2ME中我現在知道的是WTK(無線的工具包)還有一些廠商的SDK包,頭腦裏還沒有形成需要的東西應該到哪個包裏去找的概念,這個估計還得慢慢來:),還是那句,語言不難,難的是怎麼把當前能用的工具包都吸收一下自己回籠一邊,網上沒有找到過有人針對C++開發者寫的J2ME的教程,還得自己一點點整理回籠:(!
說明:
個人感覺Java這些規範有點亂,而且每個包放的都比較亂,搭建個環境太麻煩了,入門的門檻有些高,可能是我剛接觸它的原因吧,被MS的VS慣壞了的我,學起來J2ME還真是有些不適應,這裏不是給MS做廣告:),從開發者的角度來向,MS給我們這些人想得太周全了.