|
1 |
| -#指定代码的压缩级别 |
2 |
| --optimizationpasses 5 |
3 |
| - |
4 |
| -#包明不混合大小写 |
5 |
| --dontusemixedcaseclassnames |
6 |
| - |
7 |
| -#不去忽略非公共的库类 |
8 |
| --dontskipnonpubliclibraryclasses |
9 |
| - |
10 |
| - #优化 不优化输入的类文件 |
11 |
| --dontoptimize |
12 |
| - |
13 |
| - #预校验 |
14 |
| --dontpreverify |
15 |
| - |
16 |
| - #混淆时是否记录日志 |
17 |
| --verbose |
18 |
| - |
19 |
| - # 混淆时所采用的算法 |
20 |
| --optimizations !code/simplification/arithmetic,!field/*,!class/merging/* |
21 |
| - |
22 |
| -#保护注解 |
23 |
| --keepattributes *Annotation* |
24 |
| - |
25 |
| -# 保持哪些类不被混淆 |
26 |
| --keep public class * extends android.app.Fragment |
27 |
| --keep public class * extends android.app.Activity |
28 |
| --keep public class * extends android.app.Application |
29 |
| --keep public class * extends android.app.Service |
30 |
| --keep public class * extends android.content.BroadcastReceiver |
31 |
| --keep public class * extends android.content.ContentProvider |
32 |
| --keep public class * extends android.app.backup.BackupAgentHelper |
33 |
| --keep public class * extends android.preference.Preference |
34 |
| --keep public class com.android.vending.licensing.ILicensingService |
35 |
| -#如果有引用v4包可以添加下面这行 |
36 |
| --keep public class * extends android.support.v4.app.Fragment |
37 |
| - |
38 |
| - |
39 |
| -#忽略警告 |
40 |
| --ignorewarning |
41 |
| - |
42 |
| -#####################记录生成的日志数据,gradle build时在本项目根目录输出################ |
43 |
| - |
44 |
| -#apk 包内所有 class 的内部结构 |
45 |
| --dump class_files.txt |
46 |
| -#未混淆的类和成员 |
47 |
| --printseeds seeds.txt |
48 |
| -#列出从 apk 中删除的代码 |
49 |
| --printusage unused.txt |
50 |
| -#混淆前后的映射 |
51 |
| --printmapping mapping.txt |
52 |
| - |
53 |
| -#####################记录生成的日志数据,gradle build时 在本项目根目录输出-end################ |
54 |
| - |
55 |
| - |
56 |
| -################混淆保护自己项目的部分代码以及引用的第三方jar包library######################### |
| 1 | +# 混淆保护自己项目的部分代码以及引用的第三方jar包 |
57 | 2 | #-libraryjars libs/umeng-analytics-v5.2.4.jar
|
58 |
| -#-libraryjars libs/alipaysdk.jar |
59 |
| -#-libraryjars libs/alipaysecsdk.jar |
60 |
| -#-libraryjars libs/alipayutdid.jar |
61 |
| -#-libraryjars libs/wup-1.0.0-SNAPSHOT.jar |
62 |
| -#-libraryjars libs/weibosdkcore.jar |
63 | 3 |
|
| 4 | +# 标题栏框架 |
| 5 | +-keep class com.hjq.bar.** {*;} |
64 | 6 |
|
65 |
| -#三星应用市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar |
66 |
| -#-libraryjars libs/sdk-v1.0.0.jar |
67 |
| -#-libraryjars libs/look-v1.0.1.jar |
| 7 | +# 吐司框架 |
| 8 | +-keep class com.hjq.toast.** {*;} |
68 | 9 |
|
69 |
| -#我是以libaray的形式引用了一个图片加载框架,如果不想混淆 keep 掉 |
70 |
| --keep class com.nostra13.universalimageloader.** { *; } |
| 10 | +# 权限请求框架 |
| 11 | +-keep class com.hjq.permissions.** {*;} |
71 | 12 |
|
72 |
| -#友盟 |
| 13 | +# 友盟 |
73 | 14 | -keep class com.umeng.**{*;}
|
74 | 15 |
|
75 |
| -#支付宝 |
| 16 | +# 支付宝 |
76 | 17 | -keep class com.alipay.android.app.IAliPay{*;}
|
77 | 18 | -keep class com.alipay.android.app.IAlixPay{*;}
|
78 | 19 | -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
|
79 | 20 | -keep class com.alipay.android.app.lib.ResourceMap{*;}
|
80 | 21 |
|
81 |
| - |
82 |
| -#信鸽推送 |
83 |
| --keep class com.tencent.android.tpush.** {* ;} |
84 |
| --keep class com.tencent.mid.** {* ;} |
85 |
| - |
86 |
| - |
87 |
| -#自己项目特殊处理代码 |
88 |
| - |
89 |
| -#忽略警告 |
90 |
| --dontwarn com.veidy.mobile.common.** |
91 |
| -#保留一个完整的包 |
92 |
| --keep class com.veidy.mobile.common.** { |
93 |
| - *; |
94 |
| - } |
95 |
| - |
96 |
| --keep class com.veidy.activity.login.WebLoginActivity{*;} |
97 |
| --keep class com.veidy.activity.UserInfoFragment{*;} |
98 |
| --keep class com.veidy.activity.HomeFragmentActivity{*;} |
99 |
| --keep class com.veidy.activity.CityActivity{*;} |
100 |
| --keep class com.veidy.activity.ClinikActivity{*;} |
101 |
| - |
102 |
| -#如果引用了v4或者v7包 |
103 |
| --dontwarn android.support.** |
104 |
| - |
105 |
| -############混淆保护自己项目的部分代码以及引用的第三方jar包library-end################## |
106 |
| - |
107 |
| --keep public class * extends android.view.View { |
108 |
| - public <init>(android.content.Context); |
109 |
| - public <init>(android.content.Context, android.util.AttributeSet); |
110 |
| - public <init>(android.content.Context, android.util.AttributeSet, int); |
111 |
| - public void set*(...); |
112 |
| -} |
113 |
| - |
114 |
| -#保持 native 方法不被混淆 |
115 |
| --keepclasseswithmembernames class * { |
116 |
| - native <methods>; |
117 |
| -} |
118 |
| - |
119 |
| -#保持自定义控件类不被混淆 |
120 |
| --keepclasseswithmembers class * { |
121 |
| - public <init>(android.content.Context, android.util.AttributeSet); |
122 |
| -} |
123 |
| - |
124 |
| -#保持自定义控件类不被混淆 |
125 |
| --keepclasseswithmembers class * { |
126 |
| - public <init>(android.content.Context, android.util.AttributeSet, int); |
127 |
| -} |
128 |
| -#保持自定义控件类不被混淆 |
129 |
| --keepclassmembers class * extends android.app.Activity { |
130 |
| - public void *(android.view.View); |
131 |
| -} |
132 |
| - |
133 |
| -#保持 Parcelable 不被混淆 |
134 |
| --keep class * implements android.os.Parcelable { |
135 |
| - public static final android.os.Parcelable$Creator *; |
136 |
| -} |
137 |
| - |
138 |
| -#保持 Serializable 不被混淆 |
139 |
| --keepnames class * implements java.io.Serializable |
140 |
| - |
141 |
| -#保持 Serializable 不被混淆并且enum 类也不被混淆 |
142 |
| --keepclassmembers class * implements java.io.Serializable { |
143 |
| - static final long serialVersionUID; |
144 |
| - private static final java.io.ObjectStreamField[] serialPersistentFields; |
145 |
| - !static !transient <fields>; |
146 |
| - !private <fields>; |
147 |
| - !private <methods>; |
148 |
| - private void writeObject(java.io.ObjectOutputStream); |
149 |
| - private void readObject(java.io.ObjectInputStream); |
150 |
| - java.lang.Object writeReplace(); |
151 |
| - java.lang.Object readResolve(); |
152 |
| -} |
153 |
| - |
154 |
| -#保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可 |
155 |
| -#-keepclassmembers enum * { |
156 |
| -# public static **[] values(); |
157 |
| -# public static ** valueOf(java.lang.String); |
158 |
| -#} |
159 |
| - |
160 |
| --keepclassmembers class * { |
161 |
| - public void *ButtonClicked(android.view.View); |
162 |
| -} |
163 |
| - |
164 |
| -#不混淆资源类 |
165 |
| --keepclassmembers class **.R$* { |
166 |
| - public static <fields>; |
167 |
| -} |
168 |
| - |
169 |
| -#避免混淆泛型 如果混淆报错建议关掉 |
170 |
| -#–keepattributes Signature |
171 |
| - |
172 | 22 | #移除log 测试了下没有用还是建议自己定义一个开关控制是否输出日志
|
173 | 23 | #-assumenosideeffects class android.util.Log {
|
174 | 24 | # public static boolean isLoggable(java.lang.String, int);
|
|
206 | 56 | -dontwarn cn.jiguang.**
|
207 | 57 | -keep class cn.jiguang.** { *; }
|
208 | 58 |
|
209 |
| -# support-v7-appcompat |
210 |
| --keep public class android.support.v7.widget.** { *; } |
211 |
| --keep public class android.support.v7.internal.widget.** { *; } |
212 |
| --keep public class android.support.v7.internal.view.menu.** { *; } |
213 |
| --keep public class * extends android.support.v4.view.ActionProvider { |
214 |
| - public <init>(android.content.Context); |
215 |
| -} |
216 |
| -# support-design |
217 |
| --dontwarn android.support.design.** |
218 |
| --keep class android.support.design.** { *; } |
219 |
| --keep interface android.support.design.** { *; } |
220 |
| --keep public class android.support.design.R$* { *; } |
221 |
| - |
222 | 59 | ########################################################
|
223 | 60 |
|
224 | 61 | # 友盟统计
|
|
0 commit comments