? ? ? ? 作為一名Android開發(fā),應(yīng)該了解并嘗試給自己的項(xiàng)目進(jìn)行Proguard混淆打包。項(xiàng)目經(jīng)過Proguard混淆打包后,會(huì)發(fā)現(xiàn)apk包體積會(huì)變小,也就是混淆可以使得apk瘦身;并且反編譯apk的時(shí)候會(huì)發(fā)現(xiàn), 項(xiàng)目中的源碼都被處理過,進(jìn)一步保障了apk的安全;這就是我所理解的Proguard混淆打包的兩個(gè)優(yōu)點(diǎn)。不過,想要真正給自己的項(xiàng)目進(jìn)行Proguard混淆打包,可不是一件容易的事情,真正嘗試去做了,才會(huì)發(fā)現(xiàn)有好多問題需要去解決,畢竟,混淆打包是針對特定的項(xiàng)目,每個(gè)項(xiàng)目需要混淆的代碼都是有區(qū)別的。不過,所有apk混淆打包,也有一些通用的規(guī)則處理,像這些規(guī)則,就可以自己記錄下來,這樣其他項(xiàng)目混淆打包的時(shí)候就可以復(fù)制粘貼使用混淆代碼了。好了,進(jìn)入正題,如何給自己的項(xiàng)目量身定制一套Proguard混淆代碼了?
? ? ? ? 關(guān)于Proguard混淆,給APP瘦身,Google官方也給出了文檔給了大致解釋,大家有興趣可以看看,純英文(夠嗆),不過怎么在Android Studio配置Proguard混淆,還是可以看懂的:
https://developer.android.com/studio/build/shrink-code.html
我們可以從這些方面對apk瘦身:
1)冗余的代碼,比如多余的jar包代碼;
2)未使用的靜態(tài)代碼;
3)資源代碼的冗余;
4)native code
5)圖片資源的優(yōu)化和壓縮
ProGuard混淆打包,解決的問題主要針對第一點(diǎn),一般項(xiàng)目進(jìn)行ProGuard混淆打包后,apk的體積會(huì)減小200-500KB左右。
簡書的編輯器還不太會(huì)用,找不到markdown編輯器,代碼塊沒法編寫,原文博客地址: