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

AndroidStudio 基本混淆配置

2017-08-18 16:50 351 查看
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
#指定代码的压缩级别
-optimizationpasses 5

#包明不混合大小写
-dontusemixedcaseclassnames

#不去忽略非公共的库类
-dontskipnonpubliclibraryclasses

#优化  不优化输入的类文件
-dontoptimize

#预校验
-dontpreverify

#混淆时是否记录日志
-verbose

# 混淆时所采用的算法
# -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#保护注解
-keepattributes *Annotation*

# 保持哪些类不被混淆
-keep public class * extends android.app.Fragment
-dontwarn android.support.v4.**
-keep public class * extends android.support.v4.**{ *; }
-dontwarn android.support.v7.**
-keep public class * extends android.support.v7.**{ *; }
-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

#####    Gson
-keep class com.google.gson.** {*;}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.google.** {
<fields>;
<methods>;
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}

###########  不混淆R类
-keep public class **.R$*{
public static final int *;
}
###########  不混淆枚举
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keepclasseswithmembers class com.booyue.babylisten.bean.** {
<fields>;
<methods>;
}

#####    Vitamio
-dontwarn io.vov.vitamio.**
-keep class io.vov.vitamio.** { *; }

###commons_codec###
-dontwarn org.apache.commons.codec.**
-keep class org.apache.commons.codec.**{ *; }

###okhttp3###
-dontwarn okhttp3.**
-keep class okhttp3.**{ *; }

###okhttp3###
-dontwarn com.squareup.okhttp.**
-keep class com.squareup.okhttp.**{ *; }

-dontwarn javax.net.ssl.**
-keep class javax.net.ssl.**{ *; }

####   ormlite
-dontwarn com.j256.ormlite.**
-keep class com.j256.ormlite.** { *; }

##pinyin###
-dontwarn com.hp.hpl.sparta.**
-keep class com.hp.hpl.sparta.** { *; }
-dontwarn net.sourceforge.pinyin4j.**
-keep class net.sourceforge.pinyin4j.** { *; }
-dontwarn pinyindb.**
-keep class pinyindb.** { *; }

####viewinjected
-dontwarn com.dbjtech.inject.**
-keep class com.dbjtech.inject.** { *; }

####volley
-dontwarn com.android.volley.**
-keep class com.android.volley.** { *; }
####http
-dontwarn org.apache.http.**
-keep class org.apache.http.** { *; }

####videocache
-dontwarn com.danikula.videocache.**
-keep class com.danikula.videocache.** { *; }

###  忽略警告
-ignorewarning

#apk 包内所有 class 的内部结构
-dump class_files.txt
#未混淆的类和成员
-printseeds seeds.txt
#列出从 apk 中删除的代码
-printusage unused.txt
#混淆前后的映射
-printmapping mapping.txt

#保持 native 方法不被混淆
-keepclasseswithmembernames class * {
native <methods>;
}
#保持 Parcelable 不被混淆
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#保持 Serializable 不被混淆
-keepnames class * implements java.io.Serializable
#避免混淆泛型 如果混淆报错建议关掉
-keepattributes Signature
# 实体类不参与混淆。
-keep class com.booyue.babylisten.bean.** { *; }
# 自定义控件不参与混淆
-keep class com.booyue.babylisten.customview.** { *; }

############友盟统计混淆
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}

#5.0以上sdk需要添加
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: