netbeans+j2mepolish 環境下開發黑莓(BlackBerry) 程序

近日公司要求把之前做的一個 j2mepolish 項目在 BB 上運行。我是一個新手,所以一星期了,還是有小部分bug, 沒能成功運行。下邊是我對 BB 應用程序開發的一些見解:

BlackBerry 的介紹我不說了,想了解的朋友可以在網上搜索。在開發之前準備的開發工具:Java JDK, BB JDE, BB emulator. 其中BB JDE/emulator 可以到BB主站下載:[url]www.blackberry.com[/url], 但本人在公司的機上下載不了,顯示IP不允許(=.=),所以找到一個國內網站可以下載:[url]http://down.maxpda.com/download/category-86-1.html[/url]

第一次使用 BB 模擬器的可以瀏覽下[url]http://hi.baidu.com/ay_digitalbaby/blog/item/fa3520384b7213f3b211c7f8.html[/url]裏邊是使用 BB 模擬器的教程。

在網上廣爲流傳的一份 BlackBerry 應用程序開發者指南:[url]http://www.36sign.com/blog/blackberry/the-guide-of-blackberry-development.html[/url]裏邊詳細介紹如何用BB api開發BB application 的各方面內容。

但是我們一般都是用j2me開發,開發出來的程序是 jar 格式,可以運行在大部分型號的手機上。可是 BB 是不支持 jar 的,它支持的是 cod 格式。所以如果你想你開發的 j2me 程序運行在 BB 上,就必須先把它轉爲 cod 格式。
要把一般 j2me 程序轉爲 cod 可以在程序開發編譯過程序中轉,也可以對打包好的jar 轉。

1) 對已經打包好的 jar 文件轉爲 BB cod 格式: 進入 jar 文件所在目錄,在cmd(命令行) 中進入相應目錄,輸入下邊命令就可以了:[quote]rapc import="C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\lib\net_rim_api.jar" codename=TestBB jad=TestBB.jad TestBB.jar[/quote](注:這裏rapc 是 C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\bin\ 目錄裏的 rapc.exe, 如果環境變量沒有設置,這裏就要用絕對路徑:C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\bin\rapc, 當然你可以把它寫成一個.bat文件來執行。而網上你可以搜索到一個名爲 Java2Cod.exe 的小程序可以直接轉換。)

2) 在JDE中編譯程序: 無論你是用 BB api 或者 j2me/midp api 來開發j2me程序,都可以在 JDE 上編譯。最終他會自動打包成 cod 文件。

3) 在其 IDE 中編譯打包:因爲我是用 netbeans 來開發的,所以本人只能提供用 netbeans 開發 BB 程序的見解。[url]http://gceclub.sun.com.cn/NetBeans/tutorials/mobility/blackberry.html[/url] 這裏有介紹如何整合netbean 來開發 BB 程序。
而本人是在 netbean 中用 j2mepolish 來整合開發的。下邊介紹j2mepolish 中開發 BB 程序(可以參考[url]http://www.j2mepolish.org/docs/platform-blackberry.html[/url]):

一)、在 j2mepolish 安裝目錄裏找到 platforms.xml, 在裏邊的 BlackBerry 部分中,加上 <capability name="build.Finalizer" value="jar2cod" />(我用的是Preview 2.0版本,裏邊這一句是註釋掉,所以要把它 activate , 也可以在 devices.xml 中在你想用的 emulator 屬性里加上這一句。如果沒有這一句編譯時就不會自動把 jar 轉換爲 cod 文件的.)
polish裏支持的版本最新系4.2.0, 如果你安裝噶 BB 版本最新的如4.2.1/4.3.0,哪麼你要把${BB目錄}/lib/net_rim_api.jar copy 到 ${j2mepolish}/import 裏,在platforms.xml 的 BlackBerry 中修改<capability name="build.BootClassPath" value="net_rim_api.jar" />

二)、在工程的 build.xml 中添加 blackberry.home 屬性(你安裝的BB JDE目錄)
[code]
<property
name="blackberry.home"
location="C:/Program Files/Research In Motion/BlackBerry JDE 4.2.1"
/>
[/code]
三)、如果你編譯後打包的 jad 文件中缺少 MicroEdition-Configuration 和 MicroEdition-Profile 兩個屬性是不能成功轉成 cod 文件的。這可以在工程的 build.xml 中的<build>屬性裏的<jad>元素中添加:
[code]
<jad>
<attribute target="jad" name="MicroEdition-Configuration" value="CLDC-1.1" if="polish.cldc11"/>
<attribute target="jad" name="MicroEdition-Profile" value="MIDP-2.0"/>
</jad>
[/code]
四)、如果你用了混淆器的(obfuscator),要把它 unactivate, 不要用它,因爲 BB 中的 rapc 轉換過程中會對程序混淆的。
[code]
<obfuscator name="ProGuard" unless="test or polish.blackberry" >
</obfuscator>
[/code]
五)、在工程的 build.xml 中的<j2mepolish>屬性 requirements 用你想編譯的 BB emulator,如:
[code]
<deviceRequirements>
<requirement name="Identifier" value="BlackBerry/8800" />
</deviceRequirements>
[/code]
如果你的程序是一般的j2me程序,那麼就可以編譯運行了。但如果你是用 BB api 開發的,就要就把build.xml裏<build>元素中的<midlet>,改爲<main>,同時要添加 polish.classes.midlet-1 的variable, 如:
[code]
<!-- midlets definition -->
<main class="com.protel.bbim.ui.BBIMMidlet" />

<!-- project-wide variables - used for preprocessing -->
<variables>
<variable name="polish.classes.midlet-1" value=" " />
</variables>
[/code]
(注:polish.classes.midlet-1 的 value 是" ",中間有一個空格的,我試過了,如果沒有這個定義變量或者這個值中間沒有空格,jar 是不能轉爲 cod 格式。)

這是我初接觸 BB 時的一點心得。我用BB api 在netbeans+j2mepolish的環境下寫過一個test app,是能成功運行的,希望對初接觸 BB 的朋友有幫助。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章