標籤:
1.當前是有些工具比如apktool,dextojar等是可以對我們android安裝包進行反編譯,獲得源碼的。為了減少被別人破解,導致源碼泄露,程式被別人盜取代碼,等等。我們需要對代碼進行混淆,android的sdk中為我們提供了ProGuard這個工具,可以對代碼進行混淆(一般是用無意義的名字來重新命名),以及去除沒有使用到的代碼,對程式進行最佳化和壓縮,這樣可以增加你想的難度。最近我做的項目,是我去配置的混淆配置,因此研究了一下,這裡分享一下。
2.上面說到去除沒有使用到的代碼,對程式進行最佳化和壓縮:這是程式的瘦身
apk瘦身一般有兩條線,
- 去除無用的代碼,例如引用一個比較大的lib,只使用了其中很少的功能。其他無用的代碼可以想辦法去掉
- 去除無用的資源檔,可能是第三方lib中的,也有可能是開發中引入了無用的資源
去除無用代碼
當然是Proguard了!
gradle plug 0.14.0, runProguard 更名為minifyEnabled
去除無用資源
Android Gradle plug從0.14.0開始,支援自動去除沒有使用的資源。
不過,這個開關是預設關閉的。可以在build type使用 shrinkResources true 開啟。 要注意,這個功能的使用依賴於code shrinking, 所以minifyEnabled也必須開啟。
Support for automatic removal of unused resources
Off by default for now, enable by setting shrinkResources to true in your release build types. Requires minifyEnabled as well.
具體配置如下
android { buildTypes { release { minifyEnabled true shrinkResources true } }}效果
以我正在開發的一個app為例
效果明顯!
Android(java)學習筆記128:使用proguard混淆android代碼