為什么要混淆了解安卓程序編譯的會知道 其實我們的apk并不是很安全,從apk從可以解包出,步驟:
d2j-dex2jar classes.dex
因此最簡單的就是把java混淆了,讓別人看不懂 AS里面配置混淆配置混淆在build.gradle里面配置 release {
minifyEnabled true //用于設置是否啟用混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}打包后解出來的jar:
配置混淆規(guī)則-dontusemixedcaseclassnames 表示混淆時不使用大小寫混合類名。
-dontskipnonpubliclibraryclasses 表示不跳過library中的非public的類。
-verbose 表示打印混淆的詳細信息。
-dontoptimize 表示不進行優(yōu)化,建議使用此選項,因為根據(jù)proguard-android-optimize.txt中的描述,優(yōu)化可能會造成一些潛在風險,不能保證在所有版本的Dalvik上都正常運行。
-dontpreverify 表示不進行預校驗。這個預校驗是作用在Java平臺上的,Android平臺上不需要這項功能,去掉之后還可以加快混淆速度。
-keepattributes *Annotation* 表示對注解中的參數(shù)進行保留。
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
上面兩行表示不混淆上述兩個類
-keep class com.tencent.wns.config.ConfigManager {*;}
上面一行表示不混淆這整個類
|
|
|