|
|
@@ -22,19 +22,10 @@
|
|
|
# 混合时不使用大小写混合,混合后的类名为小写
|
|
|
-dontusemixedcaseclassnames
|
|
|
|
|
|
-# 指定不去忽略非公共库的类
|
|
|
--dontskipnonpubliclibraryclasses
|
|
|
-
|
|
|
# 这句话能够使我们的项目混淆后产生映射文件
|
|
|
# 包含有类名->混淆后类名的映射关系
|
|
|
-verbose
|
|
|
|
|
|
-# 指定不去忽略非公共库的类成员
|
|
|
--dontskipnonpubliclibraryclassmembers
|
|
|
-
|
|
|
-# 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快混淆速度。
|
|
|
--dontpreverify
|
|
|
-
|
|
|
# 保留Annotation不混淆
|
|
|
-keepattributes *Annotation*,InnerClasses
|
|
|
|
|
|
@@ -55,31 +46,6 @@
|
|
|
# 屏蔽错误Unresolved class name
|
|
|
#noinspection ShrinkerUnresolvedReference
|
|
|
|
|
|
-# 保留枚举类不被混淆
|
|
|
--keepclassmembers enum * {
|
|
|
- public static **[] values();
|
|
|
- public static ** valueOf(java.lang.String);
|
|
|
-}
|
|
|
-
|
|
|
-# 保留Serializable序列化的类不被混淆
|
|
|
--keepclassmembers class * implements java.io.Serializable {
|
|
|
- static final long serialVersionUID;
|
|
|
- private static final java.io.ObjectStreamField[] serialPersistentFields;
|
|
|
- !static !transient <fields>;
|
|
|
- !private <fields>;
|
|
|
- !private <methods>;
|
|
|
- private void writeObject(java.io.ObjectOutputStream);
|
|
|
- private void readObject(java.io.ObjectInputStream);
|
|
|
- java.lang.Object writeReplace();
|
|
|
- java.lang.Object readResolve();
|
|
|
-}
|
|
|
-
|
|
|
-# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
|
|
|
--keepclassmembers class * {
|
|
|
- void *(**On*Event);
|
|
|
- void *(**On*Listener);
|
|
|
-}
|
|
|
-
|
|
|
# 移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用,这里可以作为禁止log打印的功能使用
|
|
|
# 记得proguard-android.txt中一定不要加-dontoptimize才起作用
|
|
|
# 另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制
|