Skip to content

Commit fe96cd8

Browse files
committed
update buildscript for demo
1 parent b1f5f33 commit fe96cd8

File tree

2 files changed

+120
-25
lines changed

2 files changed

+120
-25
lines changed

PluginMain/build.gradle

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,6 @@ android {
6262
release.setRoot('build-types/release')
6363
}
6464

65-
buildTypes {
66-
release {
67-
minifyEnabled false
68-
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
69-
}
70-
71-
}
72-
7365
signingConfigs {
7466
debug {
7567
storeFile file("limpoxe.keystore")
@@ -85,6 +77,22 @@ android {
8577
keyPassword "123456"
8678
}
8779
}
80+
81+
buildTypes {
82+
debug {
83+
debuggable true
84+
signingConfig signingConfigs.release
85+
minifyEnabled false
86+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
87+
}
88+
release {
89+
debuggable true
90+
signingConfig signingConfigs.release
91+
minifyEnabled false
92+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
93+
}
94+
}
95+
8896
}
8997

9098
dependencies {

PluginMain/proguard-rules.pro

Lines changed: 104 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,104 @@
1-
# Add project specific ProGuard rules here.
2-
# By default, the flags in this file are appended to flags specified
3-
# in /Users/cailiming/Library/Android/sdk/tools/proguard/proguard-android.txt
4-
# You can edit the include path and order by changing the proguardFiles
5-
# directive in build.gradle.
6-
#
7-
# For more details, see
8-
# http://developer.android.com/guide/developing/tools/proguard.html
9-
10-
# Add any project specific keep options here:
11-
12-
# If your project uses WebView with JS, uncomment the following
13-
# and specify the fully qualified class name to the JavaScript interface
14-
# class:
15-
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16-
# public *;
17-
#}
1+
-optimizationpasses 5 #指定代码的压缩级别
2+
-dontusemixedcaseclassnames #包名不混合大小写
3+
-dontskipnonpubliclibraryclasses #不忽略非公共库类
4+
-dontoptimize #不优化输入的类文件
5+
-dontpreverify #不预校验
6+
-verbose #混淆时是否记录日志
7+
-ignorewarning #忽略警告
8+
9+
#混淆时所采用的算法
10+
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
11+
12+
#apk包内所有class的内部结构
13+
-dump dump.txt
14+
#未混淆的类和成员
15+
-printseeds seeds.txt
16+
#列出被删除的代码
17+
-printusage unused.txt
18+
#混淆前后的映射
19+
-printmapping mapping.txt
20+
21+
#Android组件
22+
-keep public class * extends android.app.Fragment
23+
-keep public class * extends android.app.Activity
24+
-keep public class * extends android.app.Application
25+
-keep public class * extends android.app.Service
26+
-keep public class * extends android.content.BroadcastReceiver
27+
-keep public class * extends android.content.ContentProvider
28+
-keep public class * extends android.app.backup.BackupAgentHelper
29+
-keep public class * extends android.preference.Preference
30+
-keep public class com.android.vending.licensing.ILicensingService
31+
32+
#不混淆资源类
33+
-keepclassmembers class **.R$* {
34+
public static <fields>;
35+
}
36+
37+
#保持控件构造器不被混淆
38+
-keep public class * extends android.view.View {
39+
public <init>(android.content.Context);
40+
public <init>(android.content.Context, android.util.AttributeSet);
41+
public <init>(android.content.Context, android.util.AttributeSet, int);
42+
public void set*(...);
43+
}
44+
45+
#保持自定义控件类不被混淆
46+
-keepclasseswithmembers class * {
47+
public <init>(android.content.Context, android.util.AttributeSet);
48+
public <init>(android.content.Context, android.util.AttributeSet, int);
49+
}
50+
51+
#保持 native 方法不被混淆
52+
-keepclasseswithmembernames class * {
53+
native <methods>;
54+
}
55+
56+
# 保持枚举 enum 类不被混淆
57+
-keepclassmembers enum * {
58+
public static **[] values();
59+
public static ** valueOf(java.lang.String);
60+
}
61+
62+
#保持 Parcelable 不被混淆
63+
-keep class * implements android.os.Parcelable {
64+
public static final android.os.Parcelable$Creator *;
65+
}
66+
67+
#保持 Serializable 不被混淆
68+
-keepclassmembers class * implements java.io.Serializable {
69+
static final long serialVersionUID;
70+
private static final java.io.ObjectStreamField[] serialPersistentFields;
71+
!static !transient <fields>;
72+
!private <fields>;
73+
!private <methods>;
74+
private void writeObject(java.io.ObjectOutputStream);
75+
private void readObject(java.io.ObjectInputStream);
76+
java.lang.Object writeReplace();
77+
java.lang.Object readResolve();
78+
}
79+
80+
#避免混淆泛型
81+
-keepattributes Signature
82+
-keepattributes *JavascriptInterface*
83+
-keepattributes *Annotation*
84+
85+
#保护第三方jar包
86+
#-libraryjars libs/xx.jar
87+
88+
#如果引用了v4或者v7包
89+
-dontwarn android.support.**
90+
-keep class android.support.v4.** {
91+
*;
92+
}
93+
-keep class android.support.v7.** {
94+
*;
95+
}
96+
97+
# 保护PluginCore不受混淆影响 Begin
98+
-keep public class * extends android.app.Instrumentation {public *;}#必须
99+
-keep public class com.plugin.core.annotation.** {*;}#可选
100+
-keep public class com.plugin.core.PluginThemeHelper {*;}#可选
101+
-keep public class com.plugin.core.localservice.LocalServiceManager {*;}#可选
102+
-keep public class com.plugin.util.LogUtil {*;}#可选
103+
-keep public class com.plugin.util.NotificationHelper {*;}#可选
104+
# 保护PluginCore不受混淆影响 End

0 commit comments

Comments
 (0)