为什么要做这个混淆 1、压缩(Shrink):侦测并移除代码中无用的类、字段、方法、和特性(Attribute)。
参数说明 1、基础指令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -printmapping priguardMapping.txt -optimizations !code/simplification/artithmetic,!field/*,!class/merging/* -keepattributes *Annotation* -keepattributes Signature -keepattributes SourceFile,LineNumberTable 
2、需要保留的东西 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 # 保留所有的本地native方法不被混淆 -keepclasseswithmembernames class  *       native <methods>; } # 保留了继承自Activity 、Application 这些类的子类 # 因为这些子类有可能被外部调用 # 比如第一行就保证了所有Activity 的子类不要被混淆 -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  *  extends  android .view .View -keep  public  class  com .android .vending .licensing .ILicensingService #  如果有引用android-support-v4 .jar包,可以添加下面这行 -keep  public  class  com .null .test .ui .fragment .**  # 保留Activity 中的方法参数是view的方法, # 从而我们在layout里面编写onClick就不会影响 -keepclassmembers class  *  extends  android .app .Activity       public void * (android.view.View ); } # 枚举类不能被混淆 -keepclassmembers enum * {     public static **[] values();     public static ** valueOf(java.lang.String ); } # 保留自定义控件(继承自View )不能被混淆 -keep public class  *  extends  android .view .View       public <init>(android.content.Context );     public <init>(android.content.Context , android.util.AttributeSet );     public <init>(android.content.Context , android.util.AttributeSet , int);     public void set*(***);     *** get* (); } # 保留Parcelable 序列化的类不能被混淆 -keep class  *  implements  android .os .Parcelable      public static final  android.os.Parcelable $Creator  *; } # 保留Serializable  序列化的类不被混淆 -keepclassmembers class  *  implements  java .io .Serializable      static final  long serialVersionUID;    private  static final  java.io.ObjectStreamField [] serialPersistentFields;    !static !transient <fields>;    private  void writeObject(java.io.ObjectOutputStream );    private  void readObject(java.io.ObjectInputStream );    java.lang.Object  writeReplace();    java.lang.Object  readResolve(); } # 对R 文件下的所有类及其方法,都不能被混淆 -keepclassmembers class  ** .R$*       *; } # 对于带有回调函数onXXEvent的,不能混淆 -keepclassmembers class  *       void *(**On *Event ); } 
3、匹配符说明 APP个性化 保留实体类和成员 对于实体,要保留它们的get和set方法,对于boolean型get方法有的命名是isXXX类型,不要遗漏  
1 2 3 4 5 6 7 8 9 10 11 -keep class  com .null .test .entities .**           *; } -keep class  com .null .test .entities .**           public  void  set *(***);     public  *** get *();     public  *** is *(); } 
内嵌页 1 2 3 -keep  class  com.null.test .MainActivity$* { } 
Webview 1 2 3 4 5 6 7 -keepclassmembers class  *  extends  android .webkit .WebViewClient       public void *(android.webkit.WebView , java.lang.String , android.graphics.Bitmap );     public boolean *(android.webkit.WebView , java.lang.String ); } -keepclassmembers class  *  extends  android .webkit .WebViewClient       public void *(android.webkit.WebView , java.lang.String ); } 
JavaScript 1 2 3 -keepclassmembers class  com .null .test .MainActivity $JSInterfacel  {      <methods>; } 
第三方jar 1 2 3 4 5 6 7 8 9 -libraryjars ./libs/android-support-v4.jar -dontwarn android.support.v4.**  -dontwarn **CompatHoneycomb  -dontwarn **CompatHoneycombMR2  -dontwarn **CompatCreatorHoneycombMR2  -keep interface android.support.v4.app.** { *; } -keep class  android .support .v4 .**   -keep public class  *  extends  android .support .v4 .**  -keep  public  class  *  extends  android .app .Fragment 
ref:参数翻译 不错的文章参考