之前做一个打包工具,对Antenna和Ant等研究了一些,并把一些记录保存在Excel文件了,现在贴出来。
一. Antenna包含的Task | |
任务 | 说明 |
wtkjad | 建立一个新的JAD文件或更新已存在的某个JAD |
wtkbuild | 对Ant中的javac任务的扩展 |
wtkpackage | 对Ant中的jar任务的扩展,可以加入lib和验证并混淆 |
wtkmakeprc | 转换JAR/JAD到PalmOS PRC文件 |
wtkrun | 用wtk去运行MIDlet |
wtkrapc | 调用BlackBerry的rapc编译器 |
wtkpreverify | 预校验classes文件 |
wtkobfuscate | 混淆JAR文件 |
wtksmartlink | 从JAR文件中移除无用的classes |
wtkpreprocess | 预处理,可以在代码使用#if等 |
wtkdeploy | 部署MIDlet到一个下载Sevelet服务器 |
wtksign | 数字签名MIDle |
JAD | |||
参数 | 类型 | 必需 | 说明 |
jadfile | file | yes | 要建立或修改的JAD文件的名称 |
jarfile | file | no | 对应的JAR文件名称,如果指定了就会尝试去修改MIDlet-Jar-URL和MIDlet-Jar-Size两个属性,注意"deploy"参数也会对MIDlet-Jar-URL作修改 |
manifest | file | no | 从JAD文件抽取部分属性来生成manifest.mf文件;mf文件不受"update"参数影响 |
update | boolean | no | 如果为true则更新已存在的JAD文件而不是新建; |
target | URL | no | |
name | string | no | MIDlet Suite名称,MIDlet-Name的值 |
vendor | string | no | 开发商名称,MIDlet-Vendor的值 |
version | string | no | 版本号,MIDlet-Version的值 |
autoversion | boolean | no | 自动增加版本号,1.0.0 |
encoding | string | no | 指定读写JAD和MANIFEST文件的编码 |
if | string | no | 只有在某个属性有定义时才执行 |
unless | string | no | 只有在某个属性没有定义时才执行 |
嵌套元素<midlet> :添加任意数量的MIDlet | |||
参数 | 类型 | 必需 | 说明 |
name | string | yes | MIDlet的名称 |
icon | string | no | 图标路径 |
class | string | yes | 继承MIDlet的类 |
if | string | no | … |
unless | string | no | … |
嵌套元素<attribute> :添加任意数量的自定义属性 | |||
参数 | 类型 | 必需 | 说明 |
name | string | yes | 属性key |
value | string | no | 属性value,如果为空会被自动移除 |
if | string | no | … |
eles | string | no | … |
对Ant的javac任务的默认参数值 | |||
参数 | 值 | ||
target | 1.1 | ||
debug | TRUE | ||
bootclasspath | midpapi.zip |
wtkpackage是对Ant的jar任务的扩展 | |||
参数 | 类型 | 必需 | 说明 |
jarfile | file | yes | 要建立或更新的JAR名称 |
jadfile | file | yes | JAD名称,必需已存在,否则不会在这里建立 |
config | string | no | MicroEdition-Configuration的值,写到mf文件,默认是CLDC-1.0或使用wtk.cldc.version |
profile | string | no | MicroEdition-Profile的值,写到mf文件,默认MIDP-1.0或使用wtk.midp.version |
autoversion | boolean | no | MIDlet-Version是否自动增加 |
preverify | boolean | no | 预校验 |
cldc | boolean | no | 如果为false,"-cldc"在预校验中不通过,默认true |
nonative | boolean | no | |
nofloat | boolean | no | |
nofinalize | boolean | no | |
obfuscate | boolean | no | 为true将混淆JAR |
keepmanifestorder | boolean | no | |
bootclasspath | path | no | |
classpath | path | no | |
libclasspath | path | no | 一些外部lib;可以使用ant的FileSet/ZipFileSet/ZipGroupFileSet嵌套元素 |
classpathref | string | no | 在其它地方指定classpath的参数 |
bootclasspathref | string | no | 在其它地方指定bootclasspath的参数 |
libclasspathref | string | no | 在其它地方指定libclasspath的参数 |
if | string | no | |
unless | string | no | |
verbose | boolean | no | 允许为任务输出设置verbosity(冗长) |
混淆时的一个嵌套元素<preserve> | |||
参数 | 类型 | 必需 | 说明 |
class | string | yes | 指定一个class在混淆的时候不需要作混淆/最优化处理 |
if | string | no | |
unless | string | no |
预处理
参数 | 类型 | 必需 | 说明 |
srcfile | file | 其中一个 | 包含未预校验过的classes文件夹 |
jarfile | file | 未预校验过的JAR文件 | |
destdir | file | yes,如果使用"srcdir" | 放预校验后classes的目标目录 |
tojarfile | file | no,不过可以跟"jarfile"组合 | 预校验后的JAR文件,如果没有指定将覆盖源JAR文件 |
jadfile | file | no | 和JAR文件关联的JAD |
bootclasspath | path | no | midpapi.zip |
classpath | path | no | 额外的libs,不过不是JAR的一部分,例如NokiaUI.zip |
classpathref | string | no | |
bootclasspathref | string | no | |
cldc | boolean | no | |
nonative | boolean | no | |
nofloat | boolean | no | |
nofinalize | boolean | no | |
if | string | no | |
unless | string | no |
混淆
参数 | 类型 | 必需 | 说明 |
jarfile | file | yes | 未混淆的JAR文件 |
jadfile | file | no | 关联的JAD文件 |
tojarfile | file | no | 混淆后的输出JAR文件,默认覆盖源JAR文件 |
bootclasspath | path | no | midpapi |
classpath | path | no | 额外的lib |
classpathref | string | no | |
bootclasspathref | string | no | |
obfuscator | string | no | 选择"proguard"还是"retroguard" |
if | string | no | |
unless | string | no | |
verbose | boolean | no | |
嵌套元素: <preserve> | |||
参数 | 类型 | 必需 | 说明 |
class | string | yes | 一个既不混淆也不删除的class的全名(包括包名),如果是proguard就不用指定了 |
if | string | no | |
else | string | no | |
嵌套元素: <argument> | |||
参数 | 类型 | 必需 | 说明 |
value | string | yes | 指定在混淆器通过的argument |
if | string | no | |
unless | string | no |