基本开发环境的搭建:
如果要为黑莓手机开发Java应用程序,那么我们有两套开发环境可以选择,一个是RIM自己提供的JDE,一个是用eclipse加JDE插件。大多数Java开发者应该对Eclipse比较熟悉啦,所以我也义无反顾的选择了Eclipse。于是就去blackberry.com查文档,发现Java开发的文档分为Tutorials和Manuals and Guides,我在Setting up Necessare Tools中找到了安装方法,虽然它是for 5.0 beta的,不过按它的方法装4.5也没问题。我猜RIM的文档似乎应该以新版本为准,Blackberry Java Development Environment - 4.5.0 - Development Guide中记录的JDE与Eclipse集成方式似乎已经不必要了。顺便一说,RIM的文档还是比较粗的,各文档内容很少重复,但是相互之间却没有链接,具体要下什么东西,下回来怎么装都写得不甚清楚,所以摸索了一阵子才装好,这里就总结一下吧:
- 下载并安装JDK 6 u12以上的版本,我装的是JDK 6 u18。
- 下载并安装Eclipse,我装的是3.4.1 Classic,RIM说3.4.0或3.4.1都行,我也装过3.5.0,感觉也可以,但网上有人说3.5.0有问题,还是保守点儿吧。
- 下载并安装JDE 4.5.0。RIM建议把4.3到4.7都下回来,我觉得似乎不必要,就下4.5装了。
- 下载并安装BlackBerry_JDE_PluginFull_1.0.0.67
- 现在可以为4.5版的OS开发应用了,如果想给其它版本的OS开发,可以下载这里列出的component packs,或者把http://www.blackberry.com/go/eclipseUpdate加入eclipse的升级管理器。
- 打开Eclipse,点击“Help”->“Software Updates”
- 点击“Available Software”->“Add Site”
- 现在有两个选择:
- 输入http://www.blackberry.com/go/eclipseUpdate,点击“OK”。不过我是从来没连上过这个更新站点……
- 或是点击“Archive”,选择下载来的component pack,点击“打开”。我就是这样逐个下载安装的。
- 可以对Eclipse做一些配置:点击“Window”->“Preferences”->“General”->“Workspace”,钩上“Save automatically before build”,取消“Build automatically”和“Refresh automatically”。
- 在Component Package之间切换:点击“Window”->“Preferences”->“BlackBerry JDE”->“Installed Package”,就可以在右侧的下拉列表中选择不同版本的Component Package了。
运行HelloWorld
RIM提供了很多程序示例给我们,它们位于类似“eclipse/plugins/net.rim.eide.componentpack4.5.0_4.5.0.16/components/samples”的路径下,我们现在就用com.rim.sample.device.helloworlddemo.HelloWorldDemo来测试一下开发环境的安装是否正确。
- 在Eclipse中,选择“File”->“New”->“Project”->“BlackBerry”->“BlackBerry Project”,点“Next”按钮,随便填入一个名字后按“Finish”
- 选中新建的项目,打开“File”->“New”->“Class”,在“Package”中填“com.rim.samples.device.helloworlddemo”,“Name”中填“HelloWorldDemo”,然后点击“Finish”
- 复制“samples/com/rim/samples/device/helloworlddemo/HelloWorldDemo.java”的内容到新建的文件中,保存一下。(可能会提示以GBK编码无法保存,我在Preferences中将Text Editors和Workspace的编码都改为“UTF-8”,就可以了)
- 点击“Run”菜单中的“Run”,设备模拟器会自动运行,可以在里面找到刚才写的程序,试着运行一下,应该能够在模拟器屏幕上显示“Hello World”。
在模拟器中测试HTTP应用程序
RIM提供的设备模拟器名叫Fledge,由于Fledge没法像真的手机一样使用移动通信网络,所以也没办法直接上网,那怎样才能用模拟器测试HTTP应用呢?我们知道开通了数据服务的黑莓手机可以通过MDS服务器访问HTTP网站,类似的,RIM也为设备模拟器提供了MDS模拟器。在Eclipse中打开“Window”->“Preferences”->“BlackBerry JDE”->“MDS Simulator”,就可以看到MDS模拟器的路径,手动执行该路径下的run.bat,再启动设备模拟器,就可以在其中上网了。
也可以对Eclipse做些配置,让它每次启动Fledge前自动运行MDS模拟器。Development Guide - BlackBerry Java Plug-in for Eclipse中记载了配置方法:
- 在Eclipse的“Run”菜单中,选择“Run Configurations”或“Debug Configurations”
- 展开“BlackBerry Simulator”项
- 接下来有两种选择
- 如果要使用已经存在的配置,比如“DebugServer”,那么选中它
- 如果要新建一个配置,就双击“BalckBerry Simulator”,并选中新建的配置
- 点击“Simulator”标签,在“Profile”一栏点击“New”按钮,为新配置起个名字后点“OK”
- 钩选上“Lanch Mobile Device System Connection Service (MDS-CS) with simulator”,点“Apply”
- 点“Run”就可以运行了。
现在试一下,应该可以通过模拟器中的浏览器上网了。
在模拟器中测试E-mail应用
虽然设备模拟器能通过MDS模拟器上网,但它无法使用黑莓数据服务收发邮件,那么应该怎样测试E-mail应用呢?RIM自然也意识到了这个问题,于是为我们提供了Email Server Simulaor,简称ESS。ESS和MDS模拟器一样随JDE插件提供,位于类似“eclipse/plugins/net.rim.eide.componentpack4.5.0_4.5.0.16/components/ESS”的位置,在这里手动执行load.bat后即可运行。Development Guide - BlackBerry Smartphone Simulator中对ESS做了介绍,这里我结合自己的经验来谈谈:
ESS运行起来以后有两种模式可以选,一个是“Standalone mode”,一个是“Connected mode”。
- “Standalone mode”中ESS模拟了一个邮件服务器,对外开放25和110端口,可以用Outlook Express和它通信。Outlook Express发送的邮件会直接推送到手机模拟器Fledge中,而Fledge发出的邮件也会转送给Outlook Express。配置的时候,在Outlook Express中新建一个帐户,设置pop3和smtp服务器为localhost,邮箱名和密码可以随便填;ESS这边用户名、邮箱名、PIN码也可以随意填,只要符合格式就行了,不必与Outlook Express的配置相同。配完以后点“Lanch”启动ESS,确保“Lanch”按钮变灰就行了。之后可以用Fledge和Outlook Express互相发邮件测试一下,邮件地址可以随意填,不会收不到的。
- “Connected mode”中ESS模拟了一个邮件客户端,它可以从外部的邮件服务器接收邮件,并推送给Fledge;也可以从Fledge接收邮件,再通过外部邮件服务器发送出去。然而RIM似乎忘了让ESS支持smtp身份验证,所以这种方式我还没用成功过……哪位用起来了可以通知我一声,呵呵。