您的位置:極速下載站 → 電腦軟件 → 系統(tǒng)軟件 → 軟件管理 → proguard
資源說明
proguard是一款強大的軟件,它包含了許多我們生活中需要用到的功能。這款軟件擁有簡潔的界面,但是它的功能很強大。我們無論是在日常生活中還是在辦公的過程當中,都可以使用這款軟件作為我們的工具。
軟件簡介
proguard官方版是一款免費的Java類文件的壓縮、優(yōu)化、混肴的軟件。proguard可以很好的保護JAVA源代碼,避免其被反編譯,保護方法就是對編譯好后的class文件進行混淆。該軟件集壓縮器、優(yōu)化器、混淆器、預校驗器于一身,功能強大,推薦需要的人下載。
功能介紹
壓縮(Shrink):檢測并移除代碼中無用的類、字段、方法和特性(Attribute)。
優(yōu)化(Optimize):對字節(jié)碼進行優(yōu)化,移除無用的指令。
混淆(Obfuscate):使用a,b,c,d這樣簡短而無意義的名稱,對類、字段和方法進行重命名。
預檢(Preveirfy):在Java平臺上對處理后的代碼進行預檢,確保加載的class文件是可執(zhí)行的。
軟件特色
ProGuar由shrink、optimize、obfuscate和preveirfy四個步驟組成,每個步驟都是可選的,我們可以通過配置腳本來決定執(zhí)行其中的哪幾個步驟。
混淆就是移除沒有用到的代碼,然后對代碼里面的類、變量、方法重命名為人可讀性很差的簡短名字。
那么有一個問題,ProGuard怎么知道這個代碼沒有被用到呢?
這里引入一個Entry Point(入口點)概念,Entry Point是在ProGuard過程中不會被處理的類或方法。在壓縮的步驟中,ProGuard會從上述的Entry Point開始遞歸遍歷,搜索哪些類和類的成員在使用,對于沒有被使用的類和類的成員,就會在壓縮段丟棄,在接下來的優(yōu)化過程中,那些非Entry Point的類、方法都會被設置為private、static或final,不使用的參數(shù)會被移除,此外,有些方法會被標記為內(nèi)聯(lián)的,在混淆的步驟中,ProGuard會對非Entry Point的類和方法進行重命名。
那么這個入口點怎么來呢?就是從ProGuard的配置文件來,只要這個配置了,那么就不會被移除。
使用方法
除了在壓縮操作刪除的無用類,字段和方法外,ProGuard也能在字節(jié)碼級提供性能優(yōu)化,內(nèi)部方法有:
常量表達式求值
刪除不必要的字段存取
刪除不必要的方法調(diào)用
刪除不必要的分支
刪除不必要的比較和instanceof驗證
刪除未使用的代碼
刪除只寫字段
刪除未使用的方法參數(shù)
像push/pop簡化一樣的各種各樣的peephole優(yōu)化
在可能的情況下為類添加static和final修飾符
在可能的情況下為方法添加private,static和final修飾符
在可能的情況下使get/set方法成為內(nèi)聯(lián)的
當接口只有一個實現(xiàn)類的時候,就取代它
選擇性的刪除日志代碼
實際的優(yōu)化效果是依賴于你的代碼和執(zhí)行代碼的虛擬機的。簡單的虛擬機比有復雜JIT編譯器的高級虛擬機更有效。無論如何,你的字節(jié)碼會變得更小。
仍有一些明顯需要優(yōu)化的技術不被支持:
使非final的常量字段成為內(nèi)聯(lián),像get/set方法一樣使其他方法成為內(nèi)聯(lián),將常量表達式移到循環(huán)之外
相關搜索: