Skip to content

Commit 0dc2c95

Browse files
committed
see 08/30 log
1 parent dd1e760 commit 0dc2c95

File tree

3 files changed

+14
-202
lines changed

3 files changed

+14
-202
lines changed

app/proguard-rules.pro

Lines changed: 1 addition & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -14,175 +14,4 @@
1414
# class:
1515
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
1616
# public *;
17-
#}
18-
19-
#############################################
20-
#
21-
# 对于一些基本指令的添加
22-
#
23-
#############################################
24-
# 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
25-
-optimizationpasses 5
26-
27-
# 混合时不使用大小写混合,混合后的类名为小写
28-
-dontusemixedcaseclassnames
29-
30-
# 指定不去忽略非公共库的类
31-
-dontskipnonpubliclibraryclasses
32-
33-
# 这句话能够使我们的项目混淆后产生映射文件
34-
# 包含有类名->混淆后类名的映射关系
35-
-verbose
36-
37-
# 指定不去忽略非公共库的类成员
38-
-dontskipnonpubliclibraryclassmembers
39-
40-
# 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快混淆速度。
41-
-dontpreverify
42-
43-
# 保留Annotation不混淆
44-
-keepattributes *Annotation*,InnerClasses
45-
46-
# 避免混淆泛型
47-
-keepattributes Signature
48-
49-
# 抛出异常时保留代码行号
50-
-keepattributes SourceFile,LineNumberTable
51-
52-
# 指定混淆是采用的算法,后面的参数是一个过滤器
53-
# 这个过滤器是谷歌推荐的算法,一般不做更改
54-
-optimizations !code/simplification/cast,!field/*,!class/merging/*
55-
56-
57-
#############################################
58-
#
59-
# Android开发中一些需要保留的公共部分
60-
#
61-
#############################################
62-
63-
# 保留我们使用的四大组件,自定义的Application等等这些类不被混淆
64-
# 因为这些子类都有可能被外部调用
65-
-keep public class * extends android.app.Activity
66-
-keep public class * extends android.app.Appliction
67-
-keep public class * extends android.app.Service
68-
-keep public class * extends android.content.BroadcastReceiver
69-
-keep public class * extends android.content.ContentProvider
70-
-keep public class * extends android.app.backup.BackupAgentHelper
71-
-keep public class * extends android.preference.Preference
72-
-keep public class * extends android.view.View
73-
-keep public class com.android.vending.licensing.ILicensingService
74-
75-
76-
# 保留support下的所有类及其内部类
77-
-keep class android.support.** {*;}
78-
79-
# 保留继承的
80-
-keep public class * extends android.support.v4.**
81-
-keep public class * extends android.support.v7.**
82-
-keep public class * extends android.support.annotation.**
83-
84-
# 保留R下面的资源
85-
-keep class **.R$* {*;}
86-
87-
# 保留本地native方法不被混淆
88-
-keepclasseswithmembernames class * {
89-
native <methods>;
90-
}
91-
92-
# 保留在Activity中的方法参数是view的方法,
93-
# 这样以来我们在layout中写的onClick就不会被影响
94-
-keepclassmembers class * extends android.app.Activity{
95-
public void *(android.view.View);
96-
}
97-
98-
# 保留枚举类不被混淆
99-
-keepclassmembers enum * {
100-
public static **[] values();
101-
public static ** valueOf(java.lang.String);
102-
}
103-
104-
# 保留我们自定义控件(继承自View)不被混淆
105-
-keep public class * extends android.view.View{
106-
*** get*();
107-
void set*(***);
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-
}
112-
113-
# 保留Parcelable序列化类不被混淆
114-
-keep class * implements android.os.Parcelable {
115-
public static final android.os.Parcelable$Creator *;
116-
}
117-
118-
# 保留Serializable序列化的类不被混淆
119-
-keepnames class * implements java.io.Serializable
120-
-keepclassmembers class * implements java.io.Serializable {
121-
static final long serialVersionUID;
122-
private static final java.io.ObjectStreamField[] serialPersistentFields;
123-
!static !transient <fields>;
124-
!private <fields>;
125-
!private <methods>;
126-
private void writeObject(java.io.ObjectOutputStream);
127-
private void readObject(java.io.ObjectInputStream);
128-
java.lang.Object writeReplace();
129-
java.lang.Object readResolve();
130-
}
131-
132-
# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
133-
-keepclassmembers class * {
134-
void *(**On*Event);
135-
void *(**On*Listener);
136-
}
137-
138-
# webView处理,项目中没有使用到webView忽略即可
139-
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
140-
public *;
141-
}
142-
-keepclassmembers class * extends android.webkit.webViewClient {
143-
public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
144-
public boolean *(android.webkit.WebView, java.lang.String);
145-
}
146-
-keepclassmembers class * extends android.webkit.webViewClient {
147-
public void *(android.webkit.webView, jav.lang.String);
148-
}
149-
150-
# 移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用,这里可以作为禁止log打印的功能使用
151-
# 记得proguard-android.txt中一定不要加-dontoptimize才起作用
152-
# 另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制
153-
#-assumenosideeffects class android.util.Log {
154-
# public static int v(...);
155-
# public static int i(...);
156-
# public static int w(...);
157-
# public static int d(...);
158-
# public static int e(...);
159-
#}
160-
161-
#############################################
162-
#
163-
# 项目中特殊处理部分
164-
#
165-
#############################################
166-
167-
#-----------处理反射类---------------
168-
169-
170-
171-
#-----------处理js交互---------------
172-
173-
174-
175-
#-----------处理实体类---------------
176-
# 在开发的时候我们可以将所有的实体类放在一个包内,这样我们写一次混淆就行了。
177-
#-keep class com.blankj.data.bean.**{ *; }
178-
179-
# 或者对实体类都加 @Keep 即可
180-
# @Keep
181-
-keep,allowobfuscation @interface android.support.annotation.Keep
182-
-keep @android.support.annotation.Keep class *
183-
-keepclassmembers class * {
184-
@android.support.annotation.Keep *;
185-
}
186-
187-
188-
#-----------处理第三方依赖库---------
17+
#}

config.gradle

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,18 @@ ext {
1212

1313
versionConfig = [
1414
// plugin
15-
gradle : '3.1.3',
16-
kotlin : '1.2.30',
15+
gradle : '3.1.3',
16+
kotlin : '1.2.30',
1717
// lib
18-
support : '27.1.0',
19-
gson : '2.8.2',
20-
glide : '4.7.1',
21-
leakcanary : '1.5.4',
22-
retrofit : '2.4.0',
18+
support : '27.1.0',
19+
gson : '2.8.2',
20+
glide : '4.7.1',
21+
leakcanary : '1.5.4',
22+
retrofit : '2.4.0',
23+
free_proguard: '0.0.6',
2324
// test
24-
junit : '4.12',
25-
robolectric: '3.1.2'
25+
junit : '4.12',
26+
robolectric : '3.1.2'
2627
]
2728

2829
depConfig = [
@@ -41,6 +42,7 @@ ext {
4142
gson : "com.google.code.gson:gson:$versionConfig.gson",
4243
glide : "com.github.bumptech.glide:glide:$versionConfig.glide",
4344
retrofit : "com.squareup.retrofit2:retrofit:$versionConfig.retrofit",
45+
free_proguard : "com.blankj:free-proguard:$versionConfig.free_proguard",
4446

4547
junit : "junit:junit:$versionConfig.junit",
4648
robolectric : "org.robolectric:robolectric:$versionConfig.robolectric",
@@ -165,6 +167,7 @@ def configAppDependencies(Project pro) {
165167

166168
implementation depConfig.support.appcompat_v7
167169
implementation depConfig.support.design
170+
implementation depConfig.free_proguard
168171
implementation 'com.r0adkll:slidableactivity:2.0.5'
169172
// LeakCanary
170173
debugImplementation depConfig.leakcanary.android

subutil/proguard-rules.pro

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,4 @@
2626

2727
#-keep class com.blankj.subutil.** { *; }
2828
#-keepclassmembers class com.blankj.subutil.** { *; }
29-
#-dontwarn com.blankj.subutil.**
30-
31-
# OkHttp
32-
-dontwarn okio.**
33-
-dontwarn okhttp3.**
34-
-dontwarn javax.annotation.Nullable
35-
-dontwarn javax.annotation.ParametersAreNonnullByDefault
36-
37-
# Okio
38-
-dontwarn com.squareup.**
39-
-dontwarn okio.**
40-
-keep public class org.codehaus.* { *; }
41-
-keep public class java.nio.* { *; }
42-
43-
# Retrofit
44-
-keep class retrofit2.** { *; }
45-
-dontwarn retrofit2.**
46-
-keepattributes Signature
47-
-keepattributes Exceptions
48-
-dontwarn okio.**
49-
-dontwarn javax.annotation.**
29+
-dontwarn com.blankj.subutil.**

0 commit comments

Comments
 (0)