consumerProguardFiles “aar混淆文件名”银萍,例如:consumerProguardFiles "proguard-rules.pro"
之后打的aar包里會含有一個混淆文件瞻凤,apk打包是該混淆文件會自動引用
混淆常用規(guī)則:
/不混淆某個類
-keep public class name.huihui.example.Test { *; }
//不混淆某個類的子類
-keep public class * extends name.huihui.example.Test { *; }
//不混淆所有類名中包含了“model”的類及其成員
-keep public class **.*model*.** {*;}
//不混淆某個接口的實現
-keep class * implements name.huihui.example.TestInterface { *; }
//不混淆某個類的構造方法
-keepclassmembers class name.huihui.example.Test {
public <init>();
}
//不混淆某個類的特定的方法
-keepclassmembers class name.huihui.example.Test {
public void test(java.lang.String);
}
//不混淆某個類的內部類
-keep class name.huihui.example.Test$* {
*;
}
//兩個常用的混淆命令骡送,注意:
//一顆星表示只是保持該包下的類名,而子包下的類名還是會被混淆待笑;
//兩顆星表示把本包和所含子包下的類名都保持鸣皂;
-keep class com.suchengkeji.android.ui.**
-keep class com.suchengkeji.android.ui.*
//用以上方法保持類后,你會發(fā)現類名雖然未混淆,但里面的具體方法和變量命名還是變了寞缝,
//如果既想保持類名癌压,又想保持里面的內容不被混淆,我們就需要以下方法了
//不混淆某個包所有的類
-keep class com.suchengkeji.android.bean.** { *; }
//在此基礎上荆陆,我們也可以使用Java的基本規(guī)則來保護特定類不被混淆滩届,比如我們可以用extend,implement等這些Java規(guī)則被啼。如下
# 保留我們使用的四大組件帜消,自定義的Application等等這些類不被混淆
# 因為這些子類都有可能被外部調用
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Appliction
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep public class com.android.vending.licensing.ILicensingService