您的位置:首页 > 产品设计 > UI/UE

Android Studio通过配置build.gradle参数设置全局的Log开关

2016-11-30 16:21 671 查看

Android Studio通过配置build.gradle参数设置全局的Log开关

在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,可不写
}
}


当然也可以通过其他的参数作为控制Log的变量,如BuildConfig.BUILD_TYPE,这个变量表示当前编译的是debug版本还是release版本。

当然我们还可以在build.gradle中自定义一个变量控制,如:

buildTypes {
release {
...
//会在BuildConfig这个类中生成一个变量,变量名为LOG_DEBUG,值为false
buildConfigField("boolean", "LOG_DEBUG", "false")
}
debug {
...
buildConfigField("boolean", "LOG_DEBUG", "true")
}
}


我们在build.gradle的buildTypes中给buildConfigField参数设置属性值。他会在BuildConfig这个类中自动生成一个变量,变量名为LOG_DEBUG,值会根据buildTypes中的编译类型选择,如: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版本
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: