proguard 5.3.3官方正式版

2023-03-26發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

proguard官方版是一款免費(fèi)的Java類文件的壓縮、優(yōu)化、混肴的軟件。proguard可以很好的保護(hù)JAVA源代碼,避免其被反編譯,保護(hù)方法就是對(duì)編譯好后的class文件進(jìn)行混淆。該軟件集壓縮器、優(yōu)化器、混淆器、預(yù)校驗(yàn)器于一身,功能強(qiáng)大,推薦需要的人下載。

proguard功能介紹:

  壓縮(Shrink):檢測(cè)并移除代碼中無用的類、字段、方法和特性(Attribute)。

  優(yōu)化(Optimize):對(duì)字節(jié)碼進(jìn)行優(yōu)化,移除無用的指令。

  混淆(Obfuscate):使用a,b,c,d這樣簡短而無意義的名稱,對(duì)類、字段和方法進(jìn)行重命名。

  預(yù)檢(Preveirfy):在Java平臺(tái)上對(duì)處理后的代碼進(jìn)行預(yù)檢,確保加載的class文件是可執(zhí)行的。

proguard軟件特色

  ProGuar由shrink、optimize、obfuscate和preveirfy四個(gè)步驟組成,每個(gè)步驟都是可選的,我們可以通過配置腳本來決定執(zhí)行其中的哪幾個(gè)步驟。

  混淆就是移除沒有用到的代碼,然后對(duì)代碼里面的類、變量、方法重命名為人可讀性很差的簡短名字。

  那么有一個(gè)問題,ProGuard怎么知道這個(gè)代碼沒有被用到呢?

  這里引入一個(gè)Entry Point(入口點(diǎn))概念,Entry Point是在ProGuard過程中不會(huì)被處理的類或方法。在壓縮的步驟中,ProGuard會(huì)從上述的Entry Point開始遞歸遍歷,搜索哪些類和類的成員在使用,對(duì)于沒有被使用的類和類的成員,就會(huì)在壓縮段丟棄,在接下來的優(yōu)化過程中,那些非Entry Point的類、方法都會(huì)被設(shè)置為private、static或final,不使用的參數(shù)會(huì)被移除,此外,有些方法會(huì)被標(biāo)記為內(nèi)聯(lián)的,在混淆的步驟中,ProGuard會(huì)對(duì)非Entry Point的類和方法進(jìn)行重命名。

  那么這個(gè)入口點(diǎn)怎么來呢?就是從ProGuard的配置文件來,只要這個(gè)配置了,那么就不會(huì)被移除。

proguard使用方法

  除了在壓縮操作刪除的無用類,字段和方法外,ProGuard也能在字節(jié)碼級(jí)提供性能優(yōu)化,內(nèi)部方法有:

  常量表達(dá)式求值

  刪除不必要的字段存取

  刪除不必要的方法調(diào)用

  刪除不必要的分支

  刪除不必要的比較和instanceof驗(yàn)證

  刪除未使用的代碼

  刪除只寫字段

  刪除未使用的方法參數(shù)

  像push/pop簡化一樣的各種各樣的peephole優(yōu)化

  在可能的情況下為類添加static和final修飾符

  在可能的情況下為方法添加private, static和final修飾符image.png

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線投稿、無法下載等問題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部