漫游 J2ME Polish

Robert Virkus

Enough Software

(本文由李天宇翻译)

感谢Eric Meyer提供这么棒的工具!

操作指导:

用鼠标点击或用方向键播放幻灯片。点击"J2ME Polish"上的链接返回。

J2ME Polish是什么?

J2ME Polish 是用于开发J2ME应用的工具集:

  • 从一份源代码中为多种设备和多种语言创建应用的建造工具(build tools)。
  • 一个设备数据库,您的应用可以用它通过预处理为不同的手机进行调整.
  • 一套用户界面(GUI), 可以在应用程序代码之外进行设计。
  • 工具类(Utiliy classes),如 BitMapFont 和 ArrayList。
  • 编辑修改二进制文件的独立工具。
  • ...这仅仅是个开始。

创建J2ME应用程序

用J2ME Polish创建应用程序很容易:

  • 通过列表或描述其性能来选择您的目标设备。(如:"支持 WMAPI and MIDP/2.0")。
  • J2ME Polish 为您进行预处理、编译、混淆和打包应用程序。
  • 你还可以在开发时自动启动相应的模拟器。
  • 由于建造工具(build tools)基于Ant, J2ME Polish 可以优雅地集成到所有Java IDE中。

资源管理

  • J2ME Polish 为您的应用程序自动包含相应的资源。
  • 把公用的资源放入"resources"文件夹内。
  • 您可以把特定的资源放入相应的文件夹内,如:"resources/Nokia", "resources/Siemens/S65" or "resources/BitPerPixel.16+".
  • 对资源的管理进行调整非常容易,比如您可以仅在设备支持MIDI音效时把MIDI文件包含进去。

本地化

  • 当应用程序要在不同地区销售时就需要进行本地化。
  • 用J2ME Polish,您可以为不同的地区很容易地调节文字和其他资源,如图片、声音。
  • 当您用J2ME Polish来进行本地化时,相对未做本地化处理的应用程序来说,不会产生额外负担,因为翻译内容直接嵌入到了应用程序中。

设备数据库

设备数据库帮助您为不同的手机调节您的程序:

  • 存储了超过 230种 J2ME 设备和相应的J2ME 参数,如 Canvas的大小, APIs, 支持格式等。
  • 您不仅仅能看到各种设备的性能,在预处理阶段,还可以直接在代码中应用它们。
  • 因为数据库基于XML,您可以很容易地进行扩展。

预处理

  • 在编译前就预先对代码进行处理。
  • 通过与处理,您可以在不损失移植性的情况下为各种设备调节应用程序。
  • J2ME Polish 提供了强大的预处理命令和标准的命名方案。
  • 您可以使用在设备数据库中定义过的任何性能。

//#if polish.midp2 || polish.api.mmapi // okay the audio-playback of the MMAPI can be used: Player player = ...//#endif

GUI (1/2)

  • J2ME Polish 让你用简单的CSS文本文件来设计MIDP应用程序的界面。
  • 设计界面并不难:

    background-color: rgb(123, 54, 233);

  • 根据item 或 screen,您可以使用特定属性。
  • 您可以使用图片,基于位图的字体,不同的背景,动画效果等等。
  • 整个设计完全在应用程序代码之外完成。
  • 所以您可以很容易地为您的应用程序换肤,而不用更改代码。
  • 用J2ME Polish GUI,您可以在MIDP/1.0手机上使用MIDP/2.0特性,如CustomItems!

用户界面GUI (2/2)

上面的屏幕截图screenshots 显示的是应用了不同外观主题的范例程序。

当然,您也可以创建自己的item,如背景。

游戏引擎

  • 用 J2ME Polish 的游戏引擎,你可以在MIDP/1.0 设备上使用MIDP/2.0 game API。
  • 你可以应用不同的优化策略,如为TiledLayer应用后端缓存backbuffer。
  • J2ME Polish 的游戏引擎已经被高度优化(速度)。
  • 用一份源代码给所有的目标设备开发游戏。

工具类

  • 使用一些J2ME标准中不包括,却很常用的工具。
  • de.enough.polish.util.BitMapFont

    用基于位图的字体显示消息文字。

  • de.enough.polish.util.ArrayList

    提供为Vector提供了另一个高效的选择。

  • de.enough.polish.util.TextUtil

    提供一般字符串操作功能,并且可以将文本分割开以便显示。

Logging Framework

  • 用 logging framework 您可以在真机上看到

    System.out.println()输出的消息

  • 您可以为特定的类(class)和包(packages)启用不同的记录级别,如:"debug", "warn" or "error"。
  • 定义您自己的记录级别,如: "performance"。
  • 在最终版本里关闭消息记录,在引用程序中绝对不会遗留任何痕迹。

try { Connection con = Connector.open( url ); ...} catch (Exception e) { //#debug error System.out.println("Unable to connect" + e );}

独立工具

  • 二进制编辑器(binary-editor) 来创建和修改二进制数据文件,比如游戏中的关卡数据文件。
  • 用字体编辑器(font-editor) 从true type字体中创建基于位图的自定义字体。

谢谢阅读!

更进一步:

  • Features 页描述了大部分重要特性,提供到完整文档的链接。
  • Tutorial 页解释了范例程序并帮你开始第一步。
  • Documentation 页获取完整的信息。
  • 别忘了到 Download 页下载J2ME Polish。