Android常用代码混淆的简单解释

来源:互联网 发布:java 连接池哪个好 编辑:程序博客网 时间:2024/05/16 07:16
-optimizationpasses 5 //指定代码的压缩级别
-dontusemixedcaseclassnames  //是否使用大小写混合
-dontskipnonpubliclibraryclasses  //是否混淆第三方jar
-dontpreverify  //混淆时是否做预校验
-verbose //混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field //混淆时所采用的算法




-keep public class * extends android.app.Activity //保持哪些类不被混淆
-keep public class * extends android.app.Application   //保持哪些类不被混淆
-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 com.android.vending.licensing.ILicensingService //保持哪些类不被混淆
-keep public class com.unionpay.** {*; } //对com.unionpay包下全部的类都不进行混淆,即不混淆类名,也不混淆方法名和变量名




-keepclasseswithmembernames class * {         //保持 native 方法不被混淆
    native <methods>;
}




-keepclasseswithmembers class * {                  //保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet);
}




-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);    //保持自定义控件类不被混淆
}




-keepclassmembers class * extends android.app.Activity {      //保持自定义控件类不被混淆
   public void *(android.view.View);
}




-keepclassmembers enum * {          //保持枚举 enum 类不被混淆
    public static **[] values();
    public static ** valueOf(java.lang.String);
}




-keep class * implements android.os.Parcelable {           //保持 Parcelable 不被混淆
  public static final android.os.Parcelable$Creator *;
}




-keep class MyClass;                                    //保持自己定义的类不被混淆
0 0
原创粉丝点击