前段日子我写了 J2ME Polish 全攻略之入门这篇文章。虽然写的不怎么样,不过却是带了不少人入门。

现在摘录网上的一段话来描述J2ME Polish现状

希望开始研究J2ME-POLISH先有点心理准备

ui的问题多多,特别是他所支持的CSS 没有说明是哪个版本的CSS,有时让人挺迷惑的。但是build工具还是不错的。Build script写起来有点不像他文档中说的那么简单。我个人认为新手不易

 从上面的话可以看书,J2ME Polish虽火,但是要想流行起来,相关的入门,深入文档还是比不可以少的。由于国人的习惯,如果有比较好的中文文档,对他们来说是最好的事情,3G视线致力于这些工作,我们不是什么专业的作家,只是记录下我们工作的经验,供大家一起学习

今天我们看看J2ME Polish的配置文件的关系已经怎么样加入自己的东西,

比如加入自己的厂家规范,api规范等。

看看J2ME Polish的配置目录结构

安装J2ME Polish打开安装目录就可以看到这些文件

apis.xml -- 描述一些常用的设备JCP规范支持的库,比如MMAPI的描述啊等,

custom-css-attributes.xml  -- 可为自己的GUI程序定制CSS样式

custom-devices.xml -- 自定义驱动,补充官方没有提供的驱动。

devices.xml - - 定义所有已知的设备,你可以定义或者修改这些已存在的规范和使用改变过的配置用在您的代码中

groups.xml – 定义驱动组,每一个驱动可以在任意一个组下面

vendors.xml - - 可自定义的厂家J2ME规范

 

上面是一些配置的介绍,要想弄得J2ME PolishBuild的功能,弄得他们的关系是很重要的。

 

下面来定制我们需要的功能吧。

首先我们来定义自己的。Apis以及Vendors

Vendors 我们定义一个ID3Geye

Apis 定义一个 3Geye/k700

然后在bulid上改下:

<deviceRequirements>

                     <requirement name="Identifier" value="3Geye/k700"/>

</deviceRequirements>

 

第一步:

下面我们现在到Vendors上看看

我们拉到这个文件的底部,复制一个Vendor,然后修改下,就ok

 

       <vendor>

              <name>3Geye</name>

              <capability name="JavaConfiguration" value="CLDC/1.0" />

              <features>hasCommandKeyEvents</features>

              <capability name="JavaConfiguration" value="CLDC/1.0" />

              <capability name="keys.CommandKeys" value="21, 22, 23" />

              <capability name="key.LeftSoftKey" value="21" />

              <capability name="key.RightSoftKey" value="22" />

              <capability name="key.MiddleSoftKey" value="23" />

              <capability name="key.ChangeInputModeKey" value="48" />

              <capability name="key.ChangeNumericalAlphaInputModeKey" value="35" />

              <capability name="TextField.charactersKeyStar" value=" " />         

       </vendor>

这个是参照moto修改的

 

第二步:

修改devices

<device

              supportsPolishGui="true" >

              <identifier>3Geye/k700</identifier>

              <features>isVirtual</features>

              <groups>Series60</groups>

              <capability name="OS" value="Symbian"/>

              <capability name="JavaPackage" value="mmapi, wmapi, pdaapi " />

              <capability name="JavaPlatform" value="MIDP/2.0" />

              <capability name="JavaConfiguration" value="CLDC/1.0" />

              <capability name="VideoFormat" value="3gpp" />

              <capability name="SoundFormat" value="midi, amr" />

              <capability name="Bugs" value="dateFieldAcceptsNoNullDate" />

       </device>

这样我们就定义了一个3Geye/k700de device了,如果你扩展了apis,你应该把扩展的ID

填入JavaPackage这个参数里面。我在上面添加了一个pdaapi,对jsr75的支持。

然后测试下。

在这里可就可以看到结果了。

  • Ant
  • StdOut
  • Buildfile: build.xml
  • init:
  • j2mepolish:
  • [j2mepolish] J2ME Polish 1.2.4
  • [j2mepolish] Using locale [en]...
  • [j2mepolish] preprocessing for device [3Geye/k700].
  • [j2mepolish] compiling for device [3Geye/k700].
  • [j2mepolish-javac-3Geye/k700] Compiling 3 source files to E:"Company"Project"slide"build"real"3Geye"k700"en"classes
  • [j2mepolish] obfuscating for device [3Geye/k700].
  • [j2mepolish] Starting obfuscation with ProGuard.
  • [j2mepolish] ProGuard, version 3.2
  • [j2mepolish] Preparing output jar [E:"Company"Project"slide"build"real"dest.jar]
  • [j2mepolish] ProGuard has successfully finished obfuscation.
  • [j2mepolish] preverifying for device [3Geye/k700].
  • [j2mepolish] creating JAR file [E:"Company"Project"slide"dist"sysinfo.jar].
  • [j2mepolish] creating JAD file [E:"Company"Project"slide"dist"sysinfo.jad].
  • BUILD SUCCESSFUL
  • Total time: 14 seconds

这些是JBuilder2005测试的结果。