Proguard軟件功能
壓縮(Shrink):檢測并移除代碼中無用的類、字段、方法和特性(Attribute)。
優(yōu)化(Optimize):對字節(jié)碼進(jìn)行優(yōu)化,移除無用的指令。
混淆(Obfuscate):使用a,b,c,d這樣簡短而無意義的名稱,對類、字段和方法進(jìn)行重命名。
預(yù)檢(Preveirfy):在Java平臺上對處理后的代碼進(jìn)行預(yù)檢,確保加載的class文件是可執(zhí)行的。
Proguard軟件特色
支持對不需要的字段進(jìn)行刪除
可以對分支、調(diào)用的方法進(jìn)行刪除
也對只寫字段進(jìn)行快速的刪除
還可對沒有進(jìn)行使用的參數(shù)進(jìn)行刪除
也支持對日志的代碼進(jìn)行選擇性的刪除
Proguard使用注意
1、注意版本,如果不是項目需要,最好使用最新穩(wěn)定版本,這樣出錯的機(jī)會小一些,學(xué)習(xí)曲線會明顯縮短。
2、最好以源碼的同編譯版本的jvm來啟動proguardgui.jar,不要直接用默認(rèn)的jvm打開。
3、注意proguaardgui啟動后默認(rèn)加載的libraryjar中包含的rt.jar,它的版本和你使用到的jvm版本一致。
4、使用1.4的jvm打開proguard時,注意在optimization選項卡中,不要勾中keep enumerations選項,因為勾中這個選項會導(dǎo)致configration文件中出現(xiàn)java.lang.Enum,這個類
只有在1.5的環(huán)境下才有。報錯信息如下:
[proguard] Note: the configuration refers to the unknown class ’java.lang.Enum’
[proguard] Note: there were 1 references to unknown classes.
[proguard] You should check your configuration for typos.
Proguard更新日志
1.修正了其它bug;
2.優(yōu)化了軟件的兼容性。