Android混淆配置文件规范

#打开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-----
上一篇:第 9 章 模板方法模式【Template Method Pattern】


下一篇:【Django】Django 如何实现 如下 联表 JOIN 查询?