Proguard是Android很早就使用的代碼混淆工具,除了用于混淆代碼提高安全性以外,他在代碼編譯的時(shí)候也會(huì)通過(guò)遍歷代碼的方式來(lái)發(fā)現(xiàn)沒(méi)有被調(diào)用的代碼,從而將其在打包成apk時(shí)剔除,最終一定程度上降低了apk的大小。
但是Proguard使用時(shí)候是要注意的,因?yàn)榇a中利用反射機(jī)制的地方會(huì)被Proguard工具破壞,所以要慎重的編寫(xiě)混淆例外文件,同時(shí)對(duì)于混淆后打包出來(lái)的apk要重新充分回歸測(cè)試下。
ProGuard是一個(gè)開(kāi)源的Java代碼混淆器。它可以混淆Android項(xiàng)目里面的java代碼,對(duì)的,你沒(méi)看錯(cuò),僅僅是java代碼。它是無(wú)法混淆Native代碼,資源文件drawable、xml等。
ProGuard作用
- 壓縮: 移除無(wú)效的類(lèi)、屬性、方法等
- 優(yōu)化: 優(yōu)化字節(jié)碼,并刪除未使用的結(jié)構(gòu)
- 混淆: 將類(lèi)名、屬性名、方法名混淆為難以讀懂的字母,比如a,b,c