您的位置:首页 > 移动开发 > Android开发

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

2016-11-24 14:18 399 查看
-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;                                    //保持自己定义的类不被混淆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: