使用Eclipse和BlackBerry JDE開發黑莓應用程序
在Eclipse中搭建好黑莓開發環境後,使用了快一週了,感覺還不錯,想起之前的曲折,還是很有成就感的,呵呵。所以想把自己搭建的過程寫下來,給同樣和之前的我一樣存在困惑的朋友們,希望能給大家一點幫助吧。
關於開發環境,我嘗試過幾個,直接用BlackBerry JDE的,Eclipse下的,還有NetBeans的,甚至還想過使用WTK。因爲之前一直想把LWUIT運行在黑莓上,所以看過的環境搭建的文章基本上都是圍繞LWUIT的。東一榔頭西一棒槌的,最後終於發現很多評論說是LWUIT的運行速度是個問題,所以一下狠心——放棄。於是就把目標定在BlackBerry的環境搭建上。
但是黑莓的開發環境BlackBerry JDE真的很不好用,像我這種粗心大意的,寫出來代碼後,沒有智能檢測,結果肯定是BUG一堆。我不想挑起Eclipse和NetBeans的爭論,個人的經驗還是感覺Eclipse比較好用,配合BlackBerry JDE和JDWP,利用模擬器調試也很方便。我一般都是同時打開Eclipse、BlackBerry JDE、JDWP,還有黑莓開發文檔,Eclipse用來寫代碼、編譯以及調試,BlackBerry JDE用來看黑莓自帶例子(呵呵,還得學習人家的代碼啊)以及查看自己程序中都使用到了哪些敏感API(以便把這些代碼用其他的方式實現,簽名不是太貴,而是不容易買啊,要信用卡買……),JDWP用來啓動模擬器。
上面這些都是一點使用的小經驗,下面具體說下我搭建的過程。
其實也是根據網上的一篇文章來搭建的,作者是汪晶(Hoperun),原文地址沒有辦法找到了,因爲我是下載的PDF,而且因爲已經設置好了,自己也比較懶,做圖片比較麻煩,所以就直接使用PDF中的圖片了,作者如果覺得欠妥,我馬上改過來。我基本上是按照上面的步驟設置的,只是軟件的版本有些不同。
這裏想先首先說明一下,我按照《BlackBerry應用程序開發者指南》第二章中的《使用Eclipse開發環境》設置,並不能成功,不過可能是我某個地方遺漏或搞錯了吧,大家可以試試,成功的兄弟喊一聲!
開始吧!
準備工具
1、 JDK 1.6.0_03。
2、 Eclipse 3.5。
3、 BlackBerry JDE 4.5.0。
4、 Bb-ant-tools-0.7。(最新版本請到http://sourceforge.net/projects/bb-ant-tools/files/)
環境搭建
一、安裝JDK、BlackBerry JDE、Eclipse
聽說JDK安裝完後不用設置環境變量也可以正常運行,我還是乖乖地設置了,保險嘛,也費不了多少時間。下面是具體的內容:
CLASS_PATH
.;C:/Program Files/Java/jdk1.6.0_13/lib/tools.jar;
C:/Program Files/Java/jdk1.6.0_13/lib;
C:/Program Files/Java/jdk1.6.0_13/lib/dt.jar;
C:/Program Files/Java/jre6/lib;C:/Program Files/Java/jre6/lib/rt.jar
JAVA_HOME
C:/Program Files/Java/jdk1.6.0_13
Path
C:/Program Files/Java/jdk1.6.0_13/bin;C:/Program Files/Java/jre6/bin
Eclipse直接解壓就可以使用,自己嫌麻煩,就沒有安裝語言包,學英語。
BlackBerry JDE 4.5.0直接安裝就可以了,安裝完成後在安裝目錄的docs/api目錄下有文檔,呵呵,很重要的東東。我的手機就是8800,安裝完成後默認的模擬器是8300,我的手機是8800,所以還是比較習慣8800的界面,在安裝目錄下的simulator目錄裏面有個文件defaultSimulator.bat,是個啓動fledge.exe(模擬器配置程序)的批處理文件,我將裏面的8300全部改成8800。後來發現fledge.exe中可以直接選擇手機型號,暈死~
二、Eclipse設置
1、Window->Preferences
(1)點擊Java->Installed JREs,可以看到裏面只有一個jre6項目。
點擊Add,在對話框中選擇Standard VM,然後Next,到下一步。
在JRE home項點Directory,選擇JDK的安裝目錄下的jdk1.6.0_03目錄。JRE name中填寫一個標識你創建的JRE名稱(我的是RIM JRE)。將JRE system libraries中的jar包全部刪除,因爲我們目標只是在黑莓的API中開發應用程序,寫代碼時這些包會干擾視線,通通和諧掉。然後點擊Add External JARs…,在BlackBerry JDE 4.5.0安裝目錄下的lib文件夾中選擇net_rim_api.jar,添加進JRE system libraries。
添加後點前面的小三角,開始設置Javadoc目錄,如下圖:
點Javadoc location,然後點擊右面Javadoc Location…,在彈出來的對話框中點Browse…,選擇BlackBerry JDE安裝目錄下的doc/api/目錄,OK,然後Finish回到Installed JREs。可以看到RIM JREs在列表中,將其打鉤,並且點擊jre6,再點Remove將其移除。
JRE導入完成!
(2)點擊Java->Compiler,將Compiler compliance level設置爲1.4(具體原因不明,誰知道,喊一聲)。其他的不要變,OK。
(3)點Java->Debug->Detail Formatters,點擊Add,在Qualfield type name:中輸入java.lang.String,下面Detal formatter code snippet:輸入toString(),下面Show variable details 選擇In detail pane only,OK完成。
(4)點Java->Debug,將Debugger timeout設置爲15000,Launch timeout設置爲200000,OK完成。
(5)點General->Workspace,去掉Build automatically,將後面兩項打鉤,OK完成。
注:1、上面的設置中的JDK、BlackBerry JDE安裝路徑要根據自己的實際路徑設置。
2、因爲是引用PDF中的圖片,所以圖片中的設置和我的設置不一樣,不過這並不影響什麼,大家照葫蘆畫瓢了。
2、創建工程
(1)點擊File->New->Java Project,填入工程名(我的是HelloWorld),Contents選擇創建一個新的工程,JRE選擇使用一個特殊的JRE(我的是RIM JVM),其他的都是默認的就行。Next。
(2)在這一步,工程中的文件夾可以沒有。不過這樣整個工程會感覺很混亂,還是建議把不同的文件分類存放,例如src存放*.java,img存放圖片,或者再建一個res文件夾存放其他資源文件,等等。
(3)在Order and Export中選中JRE System Library [RIM JVM],Finish。
3、在工程中導入bb-ant-tools
(1)右擊工程名,選擇New->Folder,文件夾名爲lib,點擊Finish。右擊Finish,選擇Import,點General->File System,然後Next。
(2)點Browse…,選擇bb-ant-tools所在的目錄,勾選右面的列表中的bb-ant-tools.jar,在Into folder中選擇HelloWorld/lib,點Finish。
(4)工程中目錄應該是下面這個樣子的:
右擊bb-ant-tools.jar,選擇Build Path->Add to Build Path,之後在Referenced Libraries中會出現。
4、在工程中創建工程配置文件build.xml
右擊工程名->New->File,文件名爲Build.xml,向其中加入如下代碼,其中紅色部分是根據自己的JDK以及BlackBerry JDE的安裝目錄靈活改變的。
<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="buildRIM" basedir=".">
<taskdef resource="bb-ant-defs.xml" classpath="lib/bb-ant-tools.jar" />
<property name="jdehome" value="D:/Program Files/Research In Motion/BlackBerry JDE 4.5.0" />
<property name="javahome" value="C:/Program Files/Java/jdk1.6.0_13" />
<property name="simulator" value="${jdehome}/simulator" />
<property name="bin" value="${jdehome}/bin" />
<property name="output" value=" HelloWorld " />
<property name="title" value=" HelloWorld " />
<property name="vendor" value="W.S" />
<property name="version" value="0.1" />
<property name="description" value="wilesilly`s Blackberry program" />
<target name="buildRIM" description="Composes RIM" depends="clean">
<rapc jdehome="${jdehome}" jdkhome="${javahome}" output="${output}">
<jdp title="${title}" vendor="${vendor}" version="${version}" description="${description}" runonstartup="false" type="cldc" />
<src>
<fileset dir="D:/workspace/HelloWorld">
<include name="**/*.java" />
<include name="resource/**/*.*" />
</fileset>
</src>
</rapc>
<copy todir="${simulator}" overwrite="true">
<fileset dir=".">
<include name="*.cod" />
<include name="*.debug" />
<include name="*.cso" />
</fileset>
</copy>
</target>
<target name="clean">
<delete>
<fileset dir="bin" includes="**/*.class" />
<fileset dir=".">
<include name="*.cod" />
<include name="*.cso" />
<include name="*debug" />
<include name="*.jad" />
<include name="*.jar" />
<include name="*.rapc" />
</fileset>
</delete>
</target>
</project>
具體都是什麼含義,我也不是很清楚,但是jdehome就是BlackBerry JDE的安裝目錄,javahome是JDK的安裝目錄。還好有現成的,否則不會XML還不掛掉了?以後學吧,肯定有用。
(5)設置Builders
右擊工程名->Properties。
New一個,選擇Ant Builder,OK。
Name自己寫一個,在Main標籤中的Buildfile點Browse Workspace…,選擇HelloWorld目錄中的build.xml文件,OK。
在Targets標籤中的During a “Clean”右面點擊Set Targets,僅僅選擇clean,OK,仍然OK。
將RIM_Builder上移,OK。
工程配置終於完成了,可以添加代碼進工程了。首先寫個最簡單的HelloWorld.java。代碼如下:
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.RichTextField;
public class HelloWorld extends UiApplication
{
public static void main(String[] args)
{
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
}
public HelloWorld()
{
pushScreen(new HelloWorldScreen());
}
}
final class HelloWorldScreen extends MainScreen
{
public HelloWorldScreen()
{
LabelField title = new LabelField("Hello World Demo" , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField("Hello World!" ,Field.NON_FOCUSABLE));
}
public void close()
{
Dialog.alert("Goodbye!");
System.exit(0);
super.close();
}
}
保存後,可以右擊工程名->Build Project或者Ctrl+B,Build一下,應該沒有錯誤的。
這樣,Eclipse以及工程的配置已經基本完成,配置文件可以拷貝一份,可能一用好多年,它一直帶在身邊,程序員版的雙截棍。^_^
三、Eclipse調試
使用Eclipse調試黑莓程序,必須將JDWP程序打開,這樣當在Eclipse中點擊調試時,這個程序會自動啓動模擬器。第一次調試的時候可能會提示*.debug文件找不到,別理它,直接點“Don`t ask this again”。
右擊工程名->Debug as->Debug configuration,或者點擊工具欄上那個甲殼蟲圖標右面的小三角選擇Debug configuration。
在Remote Java Application上點右鍵,選擇New。
Eclipse會自動配置好Debug,你只需按Debug就可以調試了。
運行結果: