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-----
人多不足以依赖,要生存只有靠自己。
深窥自己的心,而后发觉一切的奇迹在你自己。
凡事皆有终结,因此,耐心是赢得成功的一种手段。