漫游 J2ME Polish
Robert Virkus
Enough Software
(本文由李天宇翻译)转自 http://www.j2mepolish.org
此介绍文档用S5创建.
感谢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)

使用List的应用程序。应用另一种界面风格的范例程序。 又一种界面风格。

上面的屏幕截图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。