Android Studioはbuild.gradleパラメータグローバルログスイッチ設定


Android Studioはbuild.gradleパラメータグローバルログスイッチ設定
appのbuild.gradleでは、コンパイル後にBuildConfigのクラスが生成されます.このクラスには、現在のコンパイルタイプの基本パラメータが含まれています.次のようになります.
public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.example.demo";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}

これにより、buildのdebugとreleaseバージョンのパラメータが異なることで、logの表示スイッチをグローバルに制御することができます.次のようになります.
public class LogUtils {
    public static boolean debug = BuildConfig.DEBUG;

    public static void e(String tag, String message) {
        if (debug) {
            Log.e(tag, message);
        }
    }
    public static void e(String message) {
        e("error", message);

    }

    public static void w(String tag, String message) {
        if (debug) {
            Log.w(tag, message);
        }
    }

    public static void w(String message) {
        w("warn", message);
    }

    public static void i(String tag, String message) {
        if (debug) {
            Log.i(tag, message);
        }
    }

    public static void i(String message) {
        i("info", message);
    }

    public static void d(String tag, String message) {
        if (debug) {
            Log.d(tag, message);
        }
    }

    public static void d(String message) {
        d("debug", message);
    }

    public static void v(String tag, String message) {
        if (debug) {
            Log.v(tag, message);
        }
    }

    public static void v(String message) {
        v("verbose", message);
    }
}

BuildConfigのDEBUGパラメータは、実はdebuggableパラメータによって制御、一般的にdebugタイプapkはデフォルトBuildConfigである.DEBUGはtrue、releaseタイプBuildConfig.DEBUGはfalseです.
buildTypes {
        release {
            ...
            debuggable false    //  false,   
        }
        debug {
            ...
            debuggable true     //  true,   
        }
    }

もちろん、BuildConfigのような他のパラメータを制御ログの変数として使用することもできる.BUILD_TYPE、この変数は、現在コンパイルされているdebugバージョンかreleaseバージョンかを表します.
もちろんbuildでgradleでは、次のような変数制御をカスタマイズします.
buildTypes {
        release {
            ...
            //  BuildConfig          ,    LOG_DEBUG,  false
            buildConfigField("boolean", "LOG_DEBUG", "false")    
        }
        debug {
            ...
            buildConfigField("boolean", "LOG_DEBUG", "true")
        }
    }

我々はここにいるgradleのbuildTypeでbuildConfigFieldパラメータに属性値を設定します.彼はBuildConfigというクラスで自動的に変数を生成します.変数名はLOG_です.DEBUGでは、buildTypeのコンパイルタイプに応じて値が選択されます.たとえば、debugバージョンがtrue、releaseバージョンがfalseなどです.
public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.example.demo";
  public static final String BUILD_TYPE = "release";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from build type: debug
  public static final boolean LOG_DEBUG = true;//debug  
}