本章概要: php
1、Eclipse下J2me開發環境搭建html
2、實現J2me環境下運行C2D引擎java
3、使用自定義的WTK模擬器和KE模擬器網絡
4、分離引擎,實現J2me和Android快速平臺切換oracle
預先說明,本章示例在Windows下面編寫,MAC的同窗過程大體相同。另外就是有一個提示,咱們在安裝Eclipse插件或者更新一些SDK的時候,因爲咱們須要鏈接到國外,所以咱們網絡會變得很脆弱,這個時候你就最好不要使用無線網絡了,直接插上網線吧,由於那樣只能使得網絡更加脆弱,容易致使莫名的更新失敗。另外這裏的引擎代碼請使用GoogleCode上面1.1以上的引擎包。app
要開發J2me應用程序,咱們首先須要搭建J2me應用程序開發環境,實際上也就是要安裝J2me的SDK,即WTK以及一個插件叫MTJ的插件。eclipse
首先咱們安裝WTK,在Oracel的網站上找到WTK的下載地址:工具
http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html學習
我如今看到的最新版本是3.0.5,咱們作遊戲有經驗的同窗都知道,WTK並不是越新越好,由於越新的WTK須要的JDK也就越新,有時候須要針對的手機終端對應的JDK的版本比較低,那麼咱們就必須使用低的JDK進行打包,有時候可能還得用回舊的WTK,固然若是你知道怎樣去在打包時指定JDK版本甚至知道如何手動使用Jar指令去打J2me的包,則另當別論。另外跟插件的兼容性也有關係,如今的Eclipse插件MTJ彷佛還不支持WTK3.0以後的版本,會發現找不到模擬器的問題,咱們索性仍然使用舊的版本2.5.2,下載地址在這裏
http://www.oracle.com/technetwork/java/download-135801.html網站
咱們下載這個版本,不須要註冊
好像官網上能下到的最老的版本也就是2.5.2了,它的JDK要求是1.5.還須要再老的話,本身去搜索吧。
下載完成以後,就是安裝了,最好就按照默認的狀況安裝,默認安裝在C:\WTK2.5.2,
安裝完成以後,在C:\WTK2.5.2\bin,咱們能夠看到不少的exe文件,這些文件包括了模擬器,設備管理器等等,在C:\WTK2.5.2\apps下面,咱們能夠看到不少的工程源碼,這裏是WTK自帶的示例工程,也是咱們學習J2me的很好的資源。C:\WTK2.5.2\lib,這個目錄是J2me的庫,包含了不少jar文件,C:\WTK2.5.2\wtklib這裏是工具庫,也就是WTK工具所須要的庫,並不是咱們最終打包成的J2me應用程序所須要的庫。在C:\WTK2.5.2\docs,這裏是J2me的API文檔。在C:\WTK2.5.2\toolkit-lib\devices,這個目錄包含了模擬器配置,在其下面的每一個文件夾,對應一個模擬器外觀,在任意的文件夾內部,咱們能夠看到.properties結尾的文件,它即是存儲了此模擬器的配置信息,咱們能夠經過修改這個文件,達到咱們本身手動配置模擬器的目的。
安裝好模擬器以後,咱們其實能夠啓動bin目錄下的那些可執行文件,例如啓動模擬器使用ktoolbar.exe。也可使用命令行來啓動一些校驗等工具,可是若是你是新手,如今應該還不習慣用命令行這麼作,其實開發過程當中,咱們也不多須要這麼作,除非你本身去寫WTK的打包過程。接下來咱們先安裝一個Eclipse插件,叫作MTJ,有了它以後咱們能夠從Eclipse中的工程去啓動模擬運行。
MTJ插件主頁在這裏:http://www.eclipse.org/mtj/
咱們可使用前面章節講過的安裝Eclipse的插件的方法來安裝MTJ,就是在Install New SoftWare界面,從http://download.eclipse.org/mtj/updates/1.1.2/stable/這個網址去安裝插件,具體過程我就不去詳述,能夠參考前面安裝ADT的過程。
上面這幅畫面在個人電腦上持續了大概5分鐘,因此你也耐心點吧,會過去的,只要進度條開始走動,後面就快了,整個安裝過程我這裏持續了10分鐘左右。
安裝以後,要求重啓Eclipse,重啓事後,打開Window->Preferences,會看到增長了一個Java ME標籤,如圖:
其中WTK Root就是咱們須要提供的WTK安裝地址,這個是必需要填寫的,若是咱們須要針對咱們的應用程序進行混淆,咱們須要下載Proguard,這是能夠混淆咱們的J2me應用程序代碼的一個工具,下載地址在這裏:
http://proguard.sourceforge.net/
下載完成以後,解壓縮好放在某個地址,而後將路徑拷貝到Proguard Root Directory裏面就能夠了,像我上圖作的那樣。至於Antenna,在這裏,MTJ自己也是能夠集成Antenna的,或者也能夠單獨安裝這個插件,這個問題咱們稍後再討論。(上面的Antenna路徑能夠不填,除非你本身已經會使用了,你本身來決定怎麼樣使用)
接下來,選中「Java ME」下面的「Device Managerment」,這裏用來導入咱們在WTK中創建的模擬器,點擊右側的「Manual Install…」,找到咱們的WTK的安裝目錄,個人目錄是C:\WTK2.5.2,指定給它以後,它會自行搜索目標目錄下的全部模擬器,結果以下圖:
肯定以後,咱們便配置完成了MTJ的插件。
接下來,咱們演示一個J2me工程的運行示例。File->New->Other挑選Java Me->MIDlet Project,如圖:
而後,就是爲咱們的J2me應用程序設置名稱,以及目標的CLDC、MIDP版本
直接點擊Finish,完成以後咱們能夠看到一個新的J2me工程創建完成。
可是此時尚未任何代碼,咱們知道J2me的啓動類叫MIDlet,所以,咱們在src文件夾上點擊右鍵->New->Java ME MIDlet,進入咱們的啓動類設置
點擊Finish以後,咱們的啓動類就加好了,默認添加了一些方法。
開是模擬器執行,打開菜單Run->RunConrigurations->雙擊Emulated JavaME MIDlet,設置成如圖配置
而後點擊Run,能夠看到咱們的模擬器啓動了,雖然只是一個空白屏幕。
至此,咱們的J2me開發環境就配置完成了。
在咱們的J2meHelloWorld工程上點擊右鍵->Refactor->Rename,填入「C2D_Com_J2me」後肯定,此時將重命名咱們的工程。而後展開src下面的java代碼,在HelloWorld.java上點擊右鍵->Refactor->Rename,填入」 MainMidlet」,後肯定。這些過程是爲了讓咱們把配置作的跟Android工程能夠互相交換代碼,固然在此時的Run下面的Midlet路徑也須要更改一下。
到目前爲止,咱們其實仍然是那個Helloworld的工程,只是更換了名字而已。接下來,咱們把Android工程源碼src目錄的內容拷貝到本工程的src下面,注意,在Android工程下面的game.core包裹上面拷貝(或者直接拷貝Windows文件夾),而後選中本工程的src進行粘貼,此時會出現一個警告,詢問是否覆蓋,點擊肯定覆蓋。引擎文件夾也使用如上的方法進行拷貝粘貼,由於af下面的文件夾多,因此能夠多選之後複製,在本src進行粘貼。完成以後,是代碼拷貝完成了,接下來,選中Android工程下面的assets裏面的全部內容,粘貼到當前的res目錄,完成資源的拷貝。完成後的工程如圖所示:
這個時候,會出現不少的紅叉叉,表明java代碼有錯,如今沒關係,是由於咱們尚未使用預處理工具來進行預處理。
接下來,咱們須要安裝一個叫作Antenna的工具,也是一個Eclipse插件。關於Antenna的使用方法見這個頁面
http://antenna.sourceforge.net/wtkpreprocess.php,它是用來預處理Java代碼的一個工具,相似C裏面的預處理,提供了#define #ifdef等指令,不過由於若是直接寫這樣的代碼,java代碼確定報錯,所以就在前面加上了//,看起來爲註釋,Antenna則去讀取他們進行預處理。
具體的安裝方法也在下方有介紹,其實也就是前面咱們講過的通常安裝Eclipse插件的過程,插件安裝地址是:
http://antenna.sf.net/update
安裝過程在此不作詳述。
安裝完成以後,此時即可以應用Antenna了,咱們在工程上點擊右鍵,而後勾選Antenna Preprocessor,這個表明你的工程已經加入預處理了。可是此時代碼報錯好像變多了,這是由於咱們雖然指定了預處理,可是尚未指定預處理的參數。此時,若是咱們打開工程屬性,點擊Antenna,會出現下圖所示:
Key-Value這種鍵值對存放的就是預處理參數,這些參數是存放在Antenna的xml配置文件裏面的,至關於「固定參數」,咱們只能經過邊上的search來進行選擇不一樣的配置,一旦配置不一樣,這裏的key-value也將徹底不一樣,上方的Defines是至關於「手動參數」,它的參數名稱若是跟下方的「固定參數」相同,則會覆蓋他們。固然此時你search的話,也不會改變什麼,不會去掉工程裏面的錯誤,咱們還須要進一步處理。
由於我在Antenna裏面添加了引擎所需的一些參數配置,所以須要大家將個人一些參數更新進去,你能夠打開googleCode上下載的那個包裹,裏面提供了一個名叫「antenna.eclipse.preprocessor_1.1.8.jar」的文件,你將它拷貝,而後覆蓋到你的Eclipse安裝文件夾下面的plugins目錄,替換掉原有文件,而後從新啓動eclipse,重啓的時候注意添加clean參數,你能夠在命令行裏面輸入相似「D:\DevTools\eclipse-SDK-3.7.1-win32\eclipse.exe -clean」這樣的命令來啓動你的eclipse,也能夠在快捷方式上面設置,以下圖,在目標後面添加」 -clean」,這樣的話,每次啓動Eclipse都會刷新一下Eclipse插件。
重啓Eclipse以後,咱們再打開剛纔的Antenna設置界面,再次進行Search,如圖
此時,已經看到我設置的一些咱們經常使用的機型了。裏面的參數都是我一一記錄的。固然也有可能有些問題,大家使用的時候再當心檢查吧。咱們選擇「Nokia/N73」以後肯定。此時,咱們的代碼就已經切換到了J2me版本了。而後使用前面講過的方式進行運行。結果以下: