<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><lock aspectratio="t" v:ext="edit"></lock></shapetype>
Sun ONE Studio 4 Mobile Edition开发MIDlet入门
Sun ONE Studio 4 Mobile Edition——结合Java 2 Platform, Micro Edition (J2ME)——提供了完整的Mobile Information Device Profile (MIDP)开发环境,包括完整的Java Platform Debugger Architecture (JPDA),用来在移动设备模拟器上调试执行Universal Emulator Interface (UEI).这篇文章介绍了Mobile版本的特点,并提供了创建和调试一个简单MIDlet suite的指导。
aawolf的话:这是我第一次翻译关于J2ME的文章,因为项目的关系拖拖拉拉一直翻译了半个多月,终于在入夏来最热的一天完成了。其实觊觎J2ME已经很久了,但是苦于没有下手的时间和切入点,下载了Sun One Studio后,虽说其慢无比,但还是有其独到之处的。好了废话说这么多,最近微软又推出了Pocket PC 2003,我会尽快翻译一些相关资料,希望大家能多去我的专栏看看:http://www.csdn.net/develop/author/netauthor/aawolf/
Sun ONE Studio 4, Mobile Edition封装了创建无线应用程序的基本模块,附加模块用于特定的J2ME开发——为更多的目标设备创建更小的应用。IDE的高级模块化体系可以更容易的添加删除功能,并插入第三方工具。扩展模块可以容易地添加到Mobile版本中——不需要付费——可以从Sun ONE Studio Update Center(或者NetBeans Update Center)下载他们。Mobile版本提供普通JAVA开发的基本工具,加两个支持J2ME的模块。
Mobile版本的JDK和系统需求描述如下,接下来是下载和安装介绍。
安装Java 2 SDK是安装Mobile版本的先决条件,因为IDE本身运行在Java 2的JVM上。Java 2 Platform, Standard Edition (J2SE), version 1.4.0被强烈推荐,但是1.3.1也工作得很好。更早的J2SE版本不能用来运行IDE,但是如果需要支持老版本的Java代码,可以被作为附加的编译器配置。
J2SE可以在下面的地址下载:
»http://java.sun.com/j2se/.
Mobile Edition Release Notes提供了系统需求的详细资料。Mobile版本需要至少350 MHz Pentium II 或者 333 MHz Sparc Ultra 10,128M RAM和100M有效硬盘空间。
虽然只有正式支持的平台(Solaris 8, Windows NT/2K, and RedHat Linux 6.2 and 7.1)经过了广泛的质量保证测试,IDE仍然可以很好的运行在大多数类UNIX操作系统上——包括Mac OS/X. Mobile版本和Community版本,在Windows 98/ME上也可以很好运行。
Sun ONE Studio 4, Mobile Edition可以在下面的地址下载:
»http://forte.sun.com/ffj/downloads.html.
或者,你也可以下载并安装Sun ONE Studio 4, Community Edition,然后从Sun ONE Studio Update Center上安装Mobile版本模块。
安装Sun ONE Studio Mobile Edition请依照Getting Started Guide的方法进行。Mobile版本在安装完成后就配置好了。事实上,如果你更愿意在Community 或者 Enterprise版本上安装Mobile版本模块的话,依照下面的方法去做。(这些介绍也适用于将Community版本功能添加到Mobile版本中)。
1.打开IDE,在IDE的主菜单中选择Tools > Update Center打开Update Center向导。
2.选中radio button "Check the Web for Available Updates and New Modules"并选择位置"Forte for Java Update Center",然后点击Next(Java Update Center将在不久后被更名为Sun ONE Studio Update Center)。
3.在适当的位置输入你的开发资源用户名和密码,然后点击Next。
4.在"Available Updates and New Modules"中选择所有Mobile版本模块,和另外一些你想安装的模块。点击最上面的按钮,将这些模块选入"Include in Install"中,然后点击Next(见图一)。
5.一旦你同意许可协议,模块安装将会自动完成。
|
包括在Sun ONE Studio 4 Mobile Edition中的J2ME Wireless Toolkit模块是J2ME Wireless Toolkit (J2MEWTK) 1.0.3。所有的Sun ONE Studio 4 editions也可以被配置使用一个单独版本的J2ME Wireless Toolkit作为替换或者新增的模块。
最新版本的J2MEWTK可以在下面的网址下载:
»http://java.sun.com/products/j2mewtoolkit.
注意:安装过程会询问你安装Integrated或者Standalone的版本。选择Standalone选项——Integrated选项会尝试将J2MEWTK安装到一个存在的Sun ONE Studio中去。
注意:这些模块将包括兼容Sun ONE Studio 3.0的J2MEWTK 1.0.3下载,但是不支持Sun ONE Studio 4。也会包括一些未来的J2MEWTK版本地址。
|
在Sun ONE Studio的安装完成之后,你应该检验J2MEWTK的模拟器是否被正确安装了。你也会使用这个过程来安装另外的模拟器,或者如果你将J2MEWTK作为一个单独的产品来安装。
1.启动IDE,并在Explorer窗口的底部,点击Runtime tab。
2.打开下面的节点Device Emulator Registry > Installed Emulators > J2ME Wireless Toolkit 1.0.3.
J2MEWTK模拟器应该被列出在J2ME Wireless Toolkit节点下。如果你希望所有的模拟器都被列出来,你必须保证他们被正确安装并可以跳过下面的步骤。
事实上,在一些配置中,版本兼容性问题会影响自动安装的J2MEWTK模拟器,需要手动安装他们。如果符合下列任何一个条件,你需要完成下面的步骤。
3.右击Installed Emulators节点,并从上下文菜单中选择Add Emulator。
4.在Select emulator installation directory对话框中,选定你希望安装的模拟器的所在路径。
|
现在我们将大略看一下Sun ONE Studio Mobile Edition IDE的全部功能。这是为了提供足够多的基础知识,使您能明白创建MIDlet的示范。
启动Mobile Edition IDE,编辑workspace被激活,下列三个窗口被打开:
|
每个浏览视图显示一个对象节点的树,每个都包含一些能被打开的子对象节点。例如,在文件系统视图中在顶级节点下显示源代码数——代表本地文件系统中的目录,或者包含目录结构的JAR文件。打开一个上级节点,会显示出包含的节点,比如子目录、 Java对象、或者其他文件。例如,打开一个Java对象节点,则显示出所包含的field节点、constructor节点、method节点和bean pattern节点等。图3为UIDemo
例子中的
对象和属性。
整个IDE通过一个巨大的相互连接的对象树,包含了惊人数量的用户配置属性。IDE对象可以被容易的动态添加、删除和操作。
例如,为了示范IDE结构,下列步骤说明了如何在Explorer窗口中设置显示扩展名。
1.从主菜单中,选择Tools > Options打开Options窗口。
2.通过节点访问,IDE Configuration > System
3.点击System Settings节点,并注意Options右边打开的属性页。
4.设置Show File Extensions为True
立刻,文件对象的扩展名出现在Explorer窗口中。
Sun ONE Studio 4, Mobile Edition带有一套分类的MIDlets和MIDlet Suites例子,用户可以用来做一些开发的准备工作。这些例子在sampledir
文件夹中,
可以直接在Explorer窗口的Filesystem页中被访问到。Sampledir
文件夹被显示在图
2
中,直接在
Filesystems节点下面。
Sampledir
节点自己包含不同的子节点。
Example
和
midp
节点包含被
MIDlet suites讨论过的MIDlet源代码。Icons
节点包含
imagined和图标。底部的四个节点——UIDemo
, demos
, games
, 和photoalbum
——是
MIDlet suites,可以直接被运行。运行这些MIDlet suites,需要右击它们,然后在上下文菜单中选择Execute。IDE将编译类,并build成JAR文件,配置在默认的模拟器中,并切换到Running workspace中,并运行模拟器。我们可以看到在IDE中测试MIDlet suite是个非常简单的过程,编译、build为JAR都是自动完成的。
这里的任务是关于创建和测试一个MIDlet。
第一个任务是创建一个用来保存MIDlet suite demo的Java包:
1.在你的本地环境中,创建(或者选择)一个练习用的工作空间——就是说,在IDE之外。例如,你可以在Windows环境中创建C:\practice_j2me
.
2.在IDE浏览窗口,Filesystems视图中,右击顶层Filesystems节点,从上下文菜单中选择Mount > Local Directory.
3.通过New Wizard选择你的练习工作空间(step #1),然后点击完成。
你选择的工作空间会立即在filesystem中出现。
4.右击刚配置好的联系工作空间,从上下文菜单中选择New > Java Package.
5.New Wizard此时会提示新Java包的名称,命名这个demo,然后选Finish
|
|
3.根据下面的解释,定义新行的属性,然后点击OK。
MIDlet Name –用户在MIDlet suite菜单中看到的名字,改为"System Props".
MIDlet Class –被添加到suite中的存在的MIDlet,通过sampledir > example节点浏览,并选择PropExample.
注意:这仅仅是在菜单中添加了一个引用——compiled 和 preverified类文件必须被添加到MIDlet中。
Icon –在菜单中显示在MIDlet名称后的图标。这里可以忽略。
4.现在选择Jar Contents标签,再次浏览sampledir > example节点,选择PropExample并点击Add。
MIDlet将被添加到Selected Content pane中.
5.点击OK关闭Edit Suite窗口。
6.再次右击demoSuite节点,并从上下文菜单中选择Update JAR(记住在每次修改JAR的内容后需要更新)
7.再次右击demoSuite节点,并在上下文菜单中选择Execute。
默认模拟器将被再次启动。检查菜单,看demoHello 和 PropExample是否被正确运行(见图5)。
Importing an Existing MIDlet
引入一个存在的MIDlet
Sun ONE Studio对在其他地方完成的Java代码的执行是非常好的。为了使用存在的Java代码,可以简单的拷贝代码到一个存在的filesystem中,或者设置包含代码的目录。事实上,引入MIDlets时有一个缺陷。默认编译器指定引入Java代码为External Compilation,虽然MIDlets必须指定为Preverify Compiler。而且,如果你使用了错误的编译器,MIDlet将不会编译出错,但是在模拟器中报错,因为preverify步骤被省略了。
使用下面步骤确保引入的MIDlet被正确的编译,执行和调试,或者被正确设置,如果必要的话。这个例子使用在sampledir下的一个MIDlet,替代一个新引入的MIDlet。所有在sampledir中的对象都已经被正确设置,因此这个示例将演示如何检验正确设置,替代示范和修改错误。
1. 在Explorer中,选择sampledir > example节点,右击PropExample,从上下文菜单中选择Properties,并点击Execution标签。
2.点击Compiler属性值,使可用编译器列表可见。
注意,调试器(Debugger)也需要设置成Emulator Debugger, 并且Executor被设置成Emulator Executor.他们对引入代码的默认设置也是错误的,需要改正过来。
Debugging a MIDlet
Sun ONE Studio的调试器开始全部使用JPDA。有几个不同的调试器类型建筑在基本调试器的基础上,以支持不同的技术,例如Emulator Debugger, Applet Debugger和J2EE Server Debugger。MIDlets需要Emulator Debugger.
Setting Breakpoints
设置断点
简单起见,我们只在demoHello MIDlet里设置一个断点:
1.在Explorer窗口中双击demoHello,打开代码编辑器(Source Editor)。
2.将光标放置到startApp()方法中第一行可执行声明处:
TextBox t = new TextBox("Hello MIDlet", "G'day, Mate!", 256, 0);
3.在IDE主窗体中打开Debug菜单。在这一行建立一个断点的快速方法是选择Toggle Breakpoint菜单项。但是这次我们选择Add Breakpoint来打开Add Breakpoint对话框。
4.在Add Breakpoint对话框中打开Breakpoint Type列表。我们可以看到,
Line –断点类型,当执行到指定的行数则阻断。
Method –执行到某一指定事件时中断。
Exception –当指定异常抛出时中断。
Variable –当指定值被访问时中断。
Thread –在线程开始或结束时中断。
Class –当指定类被loaded或者unloaded时中断。
|
评论