-assumenosideeffects class android.util.Log {
   public static boolean isLoggable(java.lang.String, int);
   public static int v(...);
   public static int i(...);
   public static int w(...);
   public static int d(...);
   public static int e(...);
}

上面方式只能去除非拼接的日志,像Log.i(tag,“test”+某变量)是去不掉的,会生成StringBuilder拼接过程代码。

另类方法:
采用变量(LOG_DEBUG)控制日志输出,当为false时,会被判断无用代码,自然被删掉。

        release {
            minifyEnabled true
//            shrinkResources true  //开启资源压缩
//            zipAlignEnabled true  //开启zip对齐
            buildConfigField "boolean", "LOG_DEBUG", "false" //不显示log
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            ndk {
                abiFilters "armeabi-v7a" // 'armeabi' 'x86' 'x86_64', 'mips', 'mips64',  'armeabi-v7a', 'arm64-v8a'
            }
        }
public static final boolean logDebug = BuildConfig.LOG_DEBUG;
if(Utils.logDebug)
Log.i(tag, "load ");

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐