APP開發(fā)實(shí)戰(zhàn)110-ProGuard簡(jiǎn)介

28 ProGuard混淆介紹

28.1ProGuard簡(jiǎn)介

Java源代碼(.java文件)通常被編譯為字節(jié)碼(.class文件)。通常情況下,編譯后的字節(jié)碼仍然包含了大量的調(diào)試信息:源文件名、行號(hào)、字段名、方法名、參數(shù)名和變量名等,這些信息使得APP很容易被反編譯和通過(guò)逆向工程獲得完整的程序代碼。

ProGuard是一個(gè)壓縮、優(yōu)化和混淆Java字節(jié)碼文件的免費(fèi)的工具:

可以刪除無(wú)用的類、字段、方法和屬性。

可以刪除沒用的注釋,最大限度地優(yōu)化字節(jié)碼文件。

還可以使用簡(jiǎn)短的無(wú)意義的名稱來(lái)重命名已經(jīng)存在的類、字段、方法和屬性。

常常用于Android開發(fā)用于混淆最終的項(xiàng)目,增加項(xiàng)目被反編譯的難度。

ProGuard對(duì)Java類中的代碼進(jìn)行以下四步的處理:

1壓縮(Shrink):用于檢測(cè)和刪除沒有使用的類,字段,方法和屬性。

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

3混淆(Obfuscate):使用a,b,c等無(wú)意義的名稱,對(duì)類,字段和方法進(jìn)行重命名。

4預(yù)檢(Preveirfy):是在Java平臺(tái)上對(duì)處理后的代碼進(jìn)行預(yù)檢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容