|
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