#打開project.properties文件中的proguard.config。 -optimizationpasses 5 # 指定代碼的壓縮級別 -dontusemixedcaseclassnames # 是否使用大小寫混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverify # 混淆時是否做預校驗 -verbose # 混淆時是否記錄日志 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆時所采用的算法 #保持一些基本的不會混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Fragment -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 -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 public class * extends android.view.View { *; } #adapter也不能混淆 -keep public class * extends android.widget.BaseAdapter { *; } #如果你使用了CusorAdapter,添加下面這行 #-keep public class * extends android.widget.CusorAdapter{ *; } #數據模型不要混淆 -keepnames class * implements java.io.Serializable #如果項目中用到了反射,則涉及到反射的類不能混淆(比如,transforms包下的所有類不混淆) -keep class com.example.newsdemo.app.banner.transforms.**{ *; } #第三方類庫(有多少加多少) -libraryjars libs/alipaySDK-20150602.jar -libraryjars libs/android-viewbadger.jar -libraryjars libs/xUtils-2.6.14.jar #保持第三方庫,有的需要-dontwarn,Android Private Librarys里面的全部keep,keep的時候需要注意class,有的還需要dontwarn。 -keep class android.** { *; } -keep class com.umeng.** { *; } -keep class com.tencent.** { *; } -dontwarn com.tencent.** -keep class com.baidu.** { *; } -dontwarn com.baidu.** ##---------------Begin: Gson 的配置 ---------- -keepattributes Signature -keepattributes *Annotation* # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } #注意:::所有gson涉及的數據bean與model,serialized/deserialized -keep class cn.shangyu.gdxzPatient.bean.** { *; } ##---------------End: Gson 的配置 ---------- ##xutils包下所有類不要混淆,包括類里面的方法-----begin----- -keep class com.lidroid.** { *; } -keep class * extends java.lang.annotation.Annotation { *; } -keepclasseswithmembers class *{ public *; } ##xutils包下所有類不要混淆,包括類里面的方法-----end----- ##刪除log代碼-----begin----- -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); } ##刪除log代碼-----end-----