Sun ONE Studio 4 Mobile Edition开发MIDlet入门

<?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的指导。

by Vaughn Spurlin

aawolf的话:这是我第一次翻译关于J2ME的文章,因为项目的关系拖拖拉拉一直翻译了半个多月,终于在入夏来最热的一天完成了。其实觊觎J2ME已经很久了,但是苦于没有下手的时间和切入点,下载了Sun One Studio后,虽说其慢无比,但还是有其独到之处的。好了废话说这么多,最近微软又推出了Pocket PC 2003,我会尽快翻译一些相关资料,希望大家能多去我的专栏看看:http://www.csdn.net/develop/author/netauthor/aawolf/

Introduction

介绍

Sun ONE Studio 4, Mobile Edition封装了创建无线应用程序的基本模块,附加模块用于特定的J2ME开发——为更多的目标设备创建更小的应用。IDE的高级模块化体系可以更容易的添加删除功能,并插入第三方工具。扩展模块可以容易地添加到Mobile版本中——不需要付费——可以从Sun ONE Studio Update Center(或者NetBeans Update Center)下载他们。Mobile版本提供普通JAVA开发的基本工具,加两个支持J2ME的模块。

  • J2ME Wireless module – supports MIDP development with templates, a wizard, emulation integration, and Connected Limited Device Configuration (CLDC) compilation

  • J2ME Wireless module支持MIDP开发,包括模板、向导、综合模拟器和Connected Limited Device Configuration (CLDC)编辑

  • J2ME Wireless Toolkit – the WTK wrapped as a NetBeans technology module for integration with Sun ONE Studio

  • J2ME Wireless Toolkit – WTK作为一个NetBeans技术模块被封装到Sun ONE Studio

Installing Mobile Edition

安装Mobile版本

Mobile版本的JDK和系统需求描述如下,接下来是下载和安装介绍。

JDK Requirements

安装Java 2 SDK是安装Mobile版本的先决条件,因为IDE本身运行在Java 2JVM上。Java 2 Platform, Standard Edition (J2SE), version 1.4.0被强烈推荐,但是1.3.1也工作得很好。更早的J2SE版本不能用来运行IDE,但是如果需要支持老版本的Java代码,可以被作为附加的编译器配置。

J2SE可以在下面的地址下载:
»http://java.sun.com/j2se/.

System Requirements
系统需求

Mobile Edition Release Notes提供了系统需求的详细资料。Mobile版本需要至少350 MHz Pentium II 或者 333 MHz Sparc Ultra 10128M RAM100M有效硬盘空间。

虽然只有正式支持的平台(Solaris 8, Windows NT/2K, and RedHat Linux 6.2 and 7.1)经过了广泛的质量保证测试,IDE仍然可以很好的运行在大多数类UNIX操作系统上——包括Mac OS/X. Mobile版本和Community版本,在Windows 98/ME上也可以很好运行。

Download
下载

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版本模块。

Installation Instructions
安装说明

安装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.一旦你同意许可协议,模块安装将会自动完成。

Figure 1: Selecting modules to install using the Update Center Wizard.

Installing the J2ME Wireless Toolkit – Standalone Version
安装J2ME Wireless Toolkit – Standalone Version

包括在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.0J2MEWTK 1.0.3下载,但是不支持Sun ONE Studio 4。也会包括一些未来的J2MEWTK版本地址。

Emulator Installation
模拟器安装

<shape id="_x0000_i1027" style="WIDTH: 221.25pt; HEIGHT: 234pt" alt="Figure 2: Selecting an emulator installation directory." type="#_x0000_t75"><img src="/Develop/ArticleImages/19/19252/CSDN_Dev_Image_2003-6-251917314.jpg" o:href="http://forte.sun.com/images/articles/MEIntroduction_EmulatorInstall.jpg"><font size="3"></font></shape>

Figure 2: Selecting an emulator installation directory.

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模拟器,需要手动安装他们。如果符合下列任何一个条件,你需要完成下面的步骤。

    • 一些或全部J2MEWTK模拟器丢失

    • J2ME Wireless Toolkit 1.0.3丢失

    • 你将J2MEWTK作为一个standalone产品安装

    • 你需要安装另外的模拟器

    3.右击Installed Emulators节点,并从上下文菜单中选择Add Emulator

    4.在Select emulator installation directory对话框中,选定你希望安装的模拟器的所在路径。

    TIP

    Windows平台上,例如,J2MEWTK的默认安装路径为C:\j2mewtk.

    如果你使用Mobile Edition模块(包含J2MEWTK),路径则为<IDE_installation_directory>/emulator.

    Forte模块中的J2MEWTK组件的默认路径为C:\forte4j\emulator\j2mewtk-1_0_3-win.

    Quick Tour of Mobile Edition's Features

    现在我们将大略看一下Sun ONE Studio Mobile Edition IDE的全部功能。这是为了提供足够多的基础知识,使您能明白创建MIDlet的示范。

    Startup

    启动Mobile Edition IDE,编辑workspace被激活,下列三个窗口被打开:

    • 主窗口——由用于编辑、运行、调试的菜单、工具栏和workspace tabs组成

    • 浏览窗口——包含选择文件系统、工程、JavadocRuntime等视图(默认打开文件视图)

    • 属性窗口——在浏览窗口中显示当前被选中的对象的属性。

    Object-Based Views

    <shape id="_x0000_i1028" style="WIDTH: 221.25pt; HEIGHT: 280.5pt" alt="Figure 3: Explorer window, Filesystems view, showing objects and properties belonging to the UIDemo example." type="#_x0000_t75"><img src="/Develop/ArticleImages/19/19252/CSDN_Dev_Image_2003-6-251917316.jpg" o:href="http://forte.sun.com/images/articles/MEIntroduction_Explorer.jpg"><font face="宋体, MS Song" size="3"></font></shape>

    Figure 3: Explorer window, Filesystems view, showing objects and properties belonging to the UIDemo example.

    每个浏览视图显示一个对象节点的树,每个都包含一些能被打开的子对象节点。例如,在文件系统视图中在顶级节点下显示源代码数——代表本地文件系统中的目录,或者包含目录结构的JAR文件。打开一个上级节点,会显示出包含的节点,比如子目录、 Java对象、或者其他文件。例如,打开一个Java对象节点,则显示出所包含的field节点、constructor节点、method节点和bean pattern节点等。图3UIDemo例子中的对象和属性。

    Options and Properties

    整个IDE通过一个巨大的相互连接的对象树,包含了惊人数量的用户配置属性。IDE对象可以被容易的动态添加、删除和操作。

    例如,为了示范IDE结构,下列步骤说明了如何在Explorer窗口中设置显示扩展名。

    1.从主菜单中,选择Tools > Options打开Options窗口。

    2.通过节点访问,IDE Configuration > System

    3.点击System Settings节点,并注意Options右边打开的属性页。

    4.设置Show File ExtensionsTrue

    立刻,文件对象的扩展名出现在Explorer窗口中。

    Code Samples

    Sun ONE Studio 4, Mobile Edition带有一套分类的MIDletsMIDlet Suites例子,用户可以用来做一些开发的准备工作。这些例子在sampledir文件夹中,可以直接在Explorer窗口的Filesystem页中被访问到。Sampledir文件夹被显示在图2中,直接在Filesystems节点下面。

    Sampledir节点自己包含不同的子节点。Examplemidp节点包含被MIDlet suites讨论过的MIDlet源代码。Icons节点包含imagined和图标。底部的四个节点——UIDemo, demos, games, photoalbum——是MIDlet suites,可以直接被运行。运行这些MIDlet suites,需要右击它们,然后在上下文菜单中选择ExecuteIDE将编译类,并buildJAR文件,配置在默认的模拟器中,并切换到Running workspace中,并运行模拟器。我们可以看到在IDE中测试MIDlet suite是个非常简单的过程,编译、buildJAR都是自动完成的。

    Creating and Testing a MIDlet

    这里的任务是关于创建和测试一个MIDlet

    »Creating a Practice Package
    创建一个练习用的包

    第一个任务是创建一个用来保存MIDlet suite demoJava包:

    1.在你的本地环境中,创建(或者选择)一个练习用的工作空间——就是说,在IDE之外。例如,你可以在Windows环境中创建C:\practice_j2me.

    2.在IDE浏览窗口,Filesystems视图中,右击顶层Filesystems节点,从上下文菜单中选择Mount > Local Directory.

    3.通过New Wizard选择你的练习工作空间(step #1),然后点击完成。

    你选择的工作空间会立即在filesystem中出现。

    4.右击刚配置好的联系工作空间,从上下文菜单中选择New > Java Package.

    5New Wizard此时会提示新Java包的名称,命名这个demo,然后选Finish

    »Creating MIDlet Suite with an Initial MIDlet

    <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><lock aspectratio="t" v:ext="edit"></lock></shapetype>

    Figure 4: Using the New Wizard to create a MIDletSuite.

    下面的任务是从Sun ONE Studio的模板中创建一个新的MIDlet suite,有一个选项用来创建一个单独的MIDlet,以后也许会有另外的MIDlets被添加进来。
    1.在浏览窗口中,右击在上面创建的demo包,从上下文菜单中选择New > MIDP > MIDletSuite.
    2.在New Wizard中,将新的MIDlet Suite命名为demoSuite,然后点击Next
    3.New Wizard接下来的界面中(见图4),选择"Create New MIDlet"选项。选择HelloMIDlet模板,命名新的MIDlet为demoHello,然后点击完成。
    或者,你也可以选择Next来添加一个图标,或者正好去探索一下New Wizard后面的步骤。
    4.在Source Editor(代码编辑器)中打开demoHello MIDlet,并定位到startApp()方法(大概在代码中间的位置)。将"Test string"改成你喜欢的问候语——例如"G'day, Mate!"如果你喜欢澳大利亚。见图6
    5.右击代码的任何位置,并在上下文菜单中选择Compile。
    6.在Explorer窗口中右击demoSuite并从上下文菜单中选择Update JAR.这个命令必须在你没有修改JAR内容后执行。
    7.再次右击demoSuite,这次从上下文菜单中选择Execute。
    默认模拟器将被启动,demoHello MIDlet将被运行。
    8.下载demoHello MIDlet,检查你的问候是不是出现。然后关闭模拟器,并返回编辑空间。模拟器的图象类似于图5,除了System Props MIDlet没有被添加。
    »Adding an Existing MIDlet to a MIDlet Suite
    添加一个存在的MIDlet到一个MIDlet Suite
    多个MIDlets也许可以被添加到一个可以适合目标设备的MIDlet suite中。
    1.在Explorer窗口中,右击demoSuite节点,并在上下文菜单中选择Edit Suite。
    Edit Suite专门编辑器将被打开,并包括MIDlets 和Jar Contents标签。在MIDlets标签中,你可以添加,删除,重新排列一个suite 中的MIDlets。在Jar Contents标签中,你可以添加或者删除MIDlet suite's JAR中的其他资源。
    2.选择MIDlets标签,并点击Add按钮。
    一行新的默认值将被加到MIDlets的列表中。

    <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><lock aspectratio="t" v:ext="edit"></lock></shapetype>

    Figure 5: Running the default emulator.

    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时中断。

    <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><lock aspectratio="t" v:ext="edit"></lock></shapetype>

    Figure 6: Setting a breakpoint.font-size: 10pt; color: black; font-fam

    分享到:
    评论
    izuoyan
    • 浏览: 2471601 次
    • 性别: Icon_minigender_1
    • 来自: 上海
    社区版块
    存档分类
    最新评论

    你可能感兴趣的:(windows,F#,mobile,mobile,ide,sun)