之前做一个打包工具,对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