之前做一個(gè)打包工具,對Antenna和Ant等研究了一些,并把一些記錄保存在Excel文件了,現(xiàn)在貼出來。
一. Antenna包含的Task
任務(wù)說明
wtkjad建立一個(gè)新的JAD文件或更新已存在的某個(gè)JAD
wtkbuild對Ant中的javac任務(wù)的擴(kuò)展
wtkpackage對Ant中的jar任務(wù)的擴(kuò)展,可以加入lib和驗(yàn)證并混淆
wtkmakeprc轉(zhuǎn)換JAR/JAD到PalmOS PRC文件
wtkrun用wtk去運(yùn)行MIDlet
wtkrapc調(diào)用BlackBerry的rapc編譯器
wtkpreverify預(yù)校驗(yàn)classes文件
wtkobfuscate混淆JAR文件
wtksmartlink從JAR文件中移除無用的classes
wtkpreprocess預(yù)處理,可以在代碼使用#if等
wtkdeploy部署MIDlet到一個(gè)下載Sevelet服務(wù)器
wtksign數(shù)字簽名MIDlet
JAD
參數(shù)類型必需說明
jadfilefileyes要建立或修改的JAD文件的名稱
jarfilefileno對應(yīng)的JAR文件名稱,如果指定了就會嘗試去修改MIDlet-Jar-URL和MIDlet-Jar-Size兩個(gè)屬性,注意"deploy"參數(shù)也會對MIDlet-Jar-URL作修改
manifestfileno從JAD文件抽取部分屬性來生成manifest.mf文件;mf文件不受"update"參數(shù)影響
updatebooleanno如果為true則更新已存在的JAD文件而不是新建;
targetURLno
namestringnoMIDlet Suite名稱,MIDlet-Name的值
vendorstringno開發(fā)商名稱,MIDlet-Vendor的值
versionstringno版本號,MIDlet-Version的值
autoversionbooleanno自動增加版本號,1.0.0
encodingstringno指定讀寫JAD和MANIFEST文件的編碼
ifstringno只有在某個(gè)屬性有定義時(shí)才執(zhí)行
unlessstringno只有在某個(gè)屬性沒有定義時(shí)才執(zhí)行
嵌套元素<midlet> :添加任意數(shù)量的MIDlet
參數(shù)類型必需說明
namestringyesMIDlet的名稱
iconstringno圖標(biāo)路徑
classstringyes繼承MIDlet的類
ifstringno…
unlessstringno…
嵌套元素<attribute> :添加任意數(shù)量的自定義屬性
參數(shù)類型必需說明
namestringyes屬性key
valuestringno屬性value,如果為空會被自動移除
ifstringno…
elesstringno…
對Ant的javac任務(wù)的默認(rèn)參數(shù)值
參數(shù)值
target1.1
debugTRUE
bootclasspathmidpapi.zip
wtkpackage是對Ant的jar任務(wù)的擴(kuò)展
參數(shù)類型必需說明
jarfilefileyes要建立或更新的JAR名稱
jadfilefileyesJAD名稱,必需已存在,否則不會在這里建立
configstringnoMicroEdition-Configuration的值,寫到mf文件,默認(rèn)是CLDC-1.0或使用wtk.cldc.version
profilestringnoMicroEdition-Profile的值,寫到mf文件,默認(rèn)MIDP-1.0或使用wtk.midp.version
autoversionbooleannoMIDlet-Version是否自動增加
preverifybooleanno預(yù)校驗(yàn)
cldcbooleanno如果為false,"-cldc"在預(yù)校驗(yàn)中不通過,默認(rèn)true
nonativebooleanno
nofloatbooleanno
nofinalizebooleanno
obfuscatebooleanno為true將混淆JAR
keepmanifestorderbooleanno
bootclasspathpathno
classpathpathno
libclasspathpathno一些外部lib;可以使用ant的FileSet/ZipFileSet/ZipGroupFileSet嵌套元素
classpathrefstringno在其它地方指定classpath的參數(shù)
bootclasspathrefstringno在其它地方指定bootclasspath的參數(shù)
libclasspathrefstringno在其它地方指定libclasspath的參數(shù)
ifstringno
unlessstringno
verbosebooleanno允許為任務(wù)輸出設(shè)置verbosity(冗長)
混淆時(shí)的一個(gè)嵌套元素<preserve>
參數(shù)類型必需說明
classstringyes指定一個(gè)class在混淆的時(shí)候不需要作混淆/最優(yōu)化處理
ifstringno
unlessstringno
預(yù)處理
參數(shù)類型必需說明
srcfilefile其中一個(gè)包含未預(yù)校驗(yàn)過的classes文件夾
jarfilefile未預(yù)校驗(yàn)過的JAR文件
destdirfileyes,如果使用"srcdir"放預(yù)校驗(yàn)后classes的目標(biāo)目錄
tojarfilefileno,不過可以跟"jarfile"組合預(yù)校驗(yàn)后的JAR文件,如果沒有指定將覆蓋源JAR文件
jadfilefileno和JAR文件關(guān)聯(lián)的JAD
bootclasspathpathnomidpapi.zip
classpathpathno額外的libs,不過不是JAR的一部分,例如NokiaUI.zip
classpathrefstringno
bootclasspathrefstringno
cldcbooleanno
nonativebooleanno
nofloatbooleanno
nofinalizebooleanno
ifstringno
unlessstringno
混淆
參數(shù)類型必需說明
jarfilefileyes未混淆的JAR文件
jadfilefileno關(guān)聯(lián)的JAD文件
tojarfilefileno混淆后的輸出JAR文件,默認(rèn)覆蓋源JAR文件
bootclasspathpathnomidpapi
classpathpathno額外的lib
classpathrefstringno
bootclasspathrefstringno
obfuscatorstringno選擇"proguard"還是"retroguard"
ifstringno
unlessstringno
verbosebooleanno
嵌套元素: <preserve>
參數(shù)類型必需說明
classstringyes一個(gè)既不混淆也不刪除的class的全名(包括包名),如果是proguard就不用指定了
ifstringno
elsestringno
嵌套元素: <argument>
參數(shù)類型必需說明
valuestringyes指定在混淆器通過的argument
ifstringno
unlessstringno