From cac8bd045a0ebf28b23189895e530a8bd317be08 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 16 Jul 2020 14:32:28 +0800 Subject: [PATCH 01/10] changed the anthorize and update proguard --- app/build.gradle | 2 + app/proguard-rules.pro | 130 +++++++++++ ...le_authorize_selector_blue_left_corner.xml | 15 ++ .../module_authorize_selector_dark_corner.xml | 7 + ...e_authorize_selector_dark_right_corner.xml | 15 ++ ...module_authorize_shape_drak_top_corner.xml | 7 + .../module_authorize_fragment.xml | 210 ++++++++++++++++++ 7 files changed, 386 insertions(+) create mode 100644 modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_blue_left_corner.xml create mode 100644 modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_corner.xml create mode 100644 modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_right_corner.xml create mode 100644 modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_shape_drak_top_corner.xml create mode 100644 modules/mogo-module-authorize/src/main/res/layout-xhdpi-1920x1000/module_authorize_fragment.xml diff --git a/app/build.gradle b/app/build.gradle index 2ecd91c7ae..c9f82eac83 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,6 +44,8 @@ android { } release { minifyEnabled false + zipAlignEnabled false + shrinkResources false signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f1b424510d..2d147e84da 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -19,3 +19,133 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + + +# +#-------------------------------------------基本不用动区域---------------------------------------------- +# +# +# -----------------------------基本 ----------------------------- + +# 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数,在Android里面默认是5,这条指令也只有在可以优化时起作用。) +-optimizationpasses 5 +# 混淆时不会产生形形色色的类名(混淆时不使用大小写混合类名) +-dontusemixedcaseclassnames +# 指定不去忽略非公共的库类(不跳过library中的非public的类) +-dontskipnonpubliclibraryclasses +# 指定不去忽略包可见的库类的成员 +-dontskipnonpubliclibraryclassmembers +#不进行优化,建议使用此选项, +-dontoptimize + # 不进行预校验,Android不需要,可加快混淆速度。 +-dontpreverify + +# 屏蔽警告,暂不开启。用于抛出异常 +#-ignorewarnings +# 指定混淆是采用的算法,后面的参数是一个过滤器 +# 这个过滤器是谷歌推荐的算法,一般不做更改 +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* +# 保护代码中的Annotation不被混淆 +-keepattributes *Annotation*,InnerClasses,Signature,EnclosingMethod +# 避免混淆泛型, 这在JSON实体映射时非常重要 +-keepattributes Signature +# 抛出异常时保留代码行号 +-keepattributes SourceFile,LineNumberTable + #优化时允许访问并修改有修饰符的类和类的成员,这可以提高优化步骤的结果。 +# 比如,当内联一个公共的getter方法时,这也可能需要外地公共访问。 +# 虽然java二进制规范不需要这个,要不然有的虚拟机处理这些代码会有问题。当有优化和使用-repackageclasses时才适用。 +#指示语:不能用这个指令处理库中的代码,因为有的类和类成员没有设计成public ,而在api中可能变成public +-allowaccessmodification + # 混淆时记录日志(打印混淆的详细信息) + # 这句话能够使我们的项目混淆后产生映射文件 + # 包含有类名->混淆后类名的映射关系 +-verbose + + +# +# ----------------------------- 默认保留 ----------------------------- +# +#---------------------------------------------------- +# 保持哪些类不被混淆 +#继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆 + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Fragment +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class * extends android.view.View + +-dontwarn android.support.design.** +-keep public class android.support.design.R$* { *; } + +-keepclasseswithmembernames class * { + native ; +} + +#这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆 +#表示不混淆Activity中参数是View的方法 +-keepclassmembers class * extends android.app.Activity{ + public void *(android.view.View); +} +#表示不混淆枚举中的values()和valueOf()方法 +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +#表示不混淆任何一个View中的setXxx()和getXxx()方法, +#因为属性动画需要有相应的setter和getter的方法实现,混淆了就无法工作了。 +-keep public class * extends android.view.View{ + *** get*(); + void set*(***); + public (android.content.Context); + public (android.content.Context, android.util.AttributeSet); + public (android.content.Context, android.util.AttributeSet, int); +} +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); + public (android.content.Context, android.util.AttributeSet, int); +} + +#表示不混淆Parcelable +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable *; +} + +# 这指定了继承Serizalizable的类的如下成员不被移除混淆 +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} + +# 保留R下面的资源 +-keep class **.R$* { + *; +} + +#不混淆资源类下static的 +-keepclassmembers class **.R$* { + public static ; +} + +# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆 +-keepclassmembers class * { + void *(**On*Event); + void *(**On*Listener); +} + +#(可选)避免Log打印输出 +-assumenosideeffects class android.util.Log { + public static *** v(...); + public static *** d(...); + public static *** i(...); + public static *** w(...); +} diff --git a/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_blue_left_corner.xml b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_blue_left_corner.xml new file mode 100644 index 0000000000..8c950afee3 --- /dev/null +++ b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_blue_left_corner.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_corner.xml b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_corner.xml new file mode 100644 index 0000000000..86e673bca6 --- /dev/null +++ b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_corner.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_right_corner.xml b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_right_corner.xml new file mode 100644 index 0000000000..086f0e93fa --- /dev/null +++ b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_selector_dark_right_corner.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_shape_drak_top_corner.xml b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_shape_drak_top_corner.xml new file mode 100644 index 0000000000..38ff34eb71 --- /dev/null +++ b/modules/mogo-module-authorize/src/main/res/drawable-xhdpi-1920x1000/module_authorize_shape_drak_top_corner.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/res/layout-xhdpi-1920x1000/module_authorize_fragment.xml b/modules/mogo-module-authorize/src/main/res/layout-xhdpi-1920x1000/module_authorize_fragment.xml new file mode 100644 index 0000000000..49613daded --- /dev/null +++ b/modules/mogo-module-authorize/src/main/res/layout-xhdpi-1920x1000/module_authorize_fragment.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + +