diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index 22bd26ef53..43becfffbb 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -7,6 +7,61 @@ # Keep Attribute -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,SourceFile,LineNumberTable +# Remove log related code +-assumenosideeffects class android.util.Log { + public static *** v(...); + public static *** d(...); + public static *** i(...); + public static *** w(...); + public static *** e(...); + public static *** println(...); + public static *** isLoggable(...); +} +-assumenosideeffects class java.lang.Throwable { + public *** printStackTrace(...); +} +-assumenosideeffects class java.io.PrintStream { + public *** println(...); + public *** print(...); +} +-assumenosideeffects class com.google.devtools.build.android.desugar.runtime.ThrowableExtension { + public *** printStackTrace(...); +} +-assumenosideeffects class com.lightgame.utils.Utils { + public static *** log(...); +} +-assumenosideeffects class com.gh.gamecenter.core.utils.MtaHelper { + public static *** onEvent(...); + public static *** onEventWithTime(...); + public static *** onEventWithBasicDeviceInfo(...); +} +# Remove all logging calls via JDK Loggers. They are generally from +# unused parts of third-party libraries. +-assumenosideeffects class java.util.logging.Logger { + void finest(...); + void finer(...); + void fine(...); + void info(...); + void warning(...); + void severe(...); + void throwing(...); + void log(...); + void logp(...); + static java.util.logging.Logger getLogger(...) return _NONNULL_; + boolean isLoggable(...) return false; +} +# Remove accesses to Level. that go unused. +-assumenosideeffects class java.util.logging.Level { + ; + # Flogger uses Level objects, so do not set a return value for intValue(). + int intValue(); +} +# Remove fields of type Logger. +-assumenosideeffects class * { + java.util.logging.Logger * return _NONNULL_; +} + + # OrmLite -keep class com.j256.* -keepclassmembers class com.j256.* { *; } diff --git a/init.gradle b/init.gradle index 1eecb0cffd..6946308cd5 100644 --- a/init.gradle +++ b/init.gradle @@ -1,7 +1,6 @@ allprojects { project -> buildscript { - ext.booster_version = '4.9.0' - ext.plugin_version = "0.3.0" + ext.booster_version = '5.0.0' repositories { mavenLocal() @@ -9,16 +8,10 @@ allprojects { project -> mavenCentral() jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public' } - maven { url "https://artifact.bytedance.com/repository/byteX/" } maven { url 'https://maven.aliyun.com/repository/public' } } dependencies { - // byteX - classpath "com.bytedance.android.byteX:base-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:const-inline-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:method-call-opt-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:field-assign-opt-plugin:${plugin_version}" // booster classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version" @@ -45,62 +38,6 @@ allprojects { project -> project.apply plugin: 'com.didiglobal.booster' project.apply plugin: "com.gh.gamecenter.plugin" - - project.apply plugin: 'bytex' - project.apply plugin: 'bytex.method_call_opt' // 移除 log https://github.com/bytedance/ByteX/blob/master/method-call-opt-plugin/README-zh.md - project.apply plugin: 'bytex.field_assign_opt' //去除重复的赋值 https://github.com/bytedance/ByteX/blob/master/field-assign-opt-plugin/README-zh.md -// - project.method_call_opt { - enable true - enableInDebug false - logLevel "DEBUG" - //是否在log中显示删除方法调用指令后的方法指令,一般调试时使用 - showAfterOptInsLog false - //需要删除的方法配置 - methodList = [ - //下面的每一项配置必须严格按照数据配置,一个地方不对这一项不生效。 - //class#method#desc - "android/util/Log#v#(Ljava/lang/String;Ljava/lang/String;)I", - "android/util/Log#v#(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I", - "android/util/Log#d#(Ljava/lang/String;Ljava/lang/String;)I", - "android/util/Log#d#(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I", - "android/util/Log#i#(Ljava/lang/String;Ljava/lang/String;)I", - "android/util/Log#i#(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I", - "android/util/Log#w#(Ljava/lang/String;Ljava/lang/String;)I", - "android/util/Log#w#(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I", - "android/util/Log#e#(Ljava/lang/String;Ljava/lang/String;)I", - "android/util/Log#e#(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I", - "android/util/Log#println#(ILjava/lang/String;Ljava/lang/String;)I", - - "java/lang/Throwable#printStackTrace#()V", - "com/google/devtools/build/android/desugar/runtime/ThrowableExtension#printStackTrace#(Ljava/lang/Throwable;)V", - - //项目中的方法 - "com/lightgame/utils/Utils#log#(Ljava/lang/String;)V", - "com/lightgame/utils/Utils#log#(Ljava/lang/int;Ljava/lang/String;Ljava/lang/String;)V", - "com/lightgame/utils/Utils#log#(Ljava/lang/String;Ljava/lang/String;)V", - "com/lightgame/utils/Utils#log#(Ljava/lang/String;Ljava/lang/Object;)V", - "com/lightgame/utils/Utils#log#(Ljava/lang/Object;)V", - "com/gh/gamecenter/common/util/MtaHelper#onEvent#(Ljava/lang/Object;Ljava/lang/String;)V", - "com/gh/gamecenter/common/util/MtaHelper#onEventWithTime#(Ljava/lang/String;I[Ljava/lang/String;)V", - "com/gh/gamecenter/common/util/MtaHelper#onEventWithBasicDeviceInfo#(Ljava/lang/String;[Ljava/lang/String;)V" - ] - onlyCheckList = [] - whiteList = [ - "com/tencent/qqmini/minigame/opensdk/share/OpenSdkShareHelper*", - ] - } - - project.field_assign_opt { - enable false - enableInDebug false - logLevel "INFO" - removeLineNumber true // 同时移除赋值对应的行号信息(如果有的话),默认true。 - whiteList = [ - //白名单,ClassName.FieldName 。不支持模式匹配 - //"android.support.constraint.solver.ArrayRow.isSimpleDefinition" - ] - } } } diff --git a/init.internal.gradle b/init.internal.gradle index 7ac7d71f61..d5aca4daf4 100644 --- a/init.internal.gradle +++ b/init.internal.gradle @@ -1,7 +1,6 @@ allprojects { project -> buildscript { - ext.booster_version = '4.9.0' - ext.plugin_version = "0.3.0" + ext.booster_version = '5.0.0' repositories { mavenLocal() @@ -14,12 +13,6 @@ allprojects { project -> } dependencies { - // byteX - classpath "com.bytedance.android.byteX:base-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:const-inline-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:method-call-opt-plugin:${plugin_version}" - classpath "com.bytedance.android.byteX:field-assign-opt-plugin:${plugin_version}" - // booster classpath "com.didiglobal.booster:booster-gradle-plugin:$booster_version" // classpath "com.didiglobal.booster:booster-transform-shared-preferences:$booster_version" @@ -35,7 +28,6 @@ allprojects { project -> mavenCentral() jcenter() maven { url 'https://oss.sonatype.org/content/repositories/public' } - maven { url "https://artifact.bytedance.com/repository/byteX/" } maven { url 'https://maven.aliyun.com/repository/public' } } @@ -45,20 +37,6 @@ allprojects { project -> project.apply plugin: 'com.didiglobal.booster' project.apply plugin: "com.gh.gamecenter.plugin" - - project.apply plugin: 'bytex' - project.apply plugin: 'bytex.field_assign_opt' //去除重复的赋值 https://github.com/bytedance/ByteX/blob/master/field-assign-opt-plugin/README-zh.md - - project.field_assign_opt { - enable false - enableInDebug false - logLevel "INFO" - removeLineNumber true // 同时移除赋值对应的行号信息(如果有的话),默认true。 - whiteList = [ - //白名单,ClassName.FieldName 。不支持模式匹配 - //"android.support.constraint.solver.ArrayRow.isSimpleDefinition" - ] - } } }