Android 如何为改装配置调试和发布日志级别?

Android 如何为改装配置调试和发布日志级别?,android,android-gradle-plugin,retrofit,android-debug,Android,Android Gradle Plugin,Retrofit,Android Debug,我在我的Android项目中使用。在开发过程中,我为RestAdapter启用完整日志输出,如下所示: new RestAdapter.Builder() .setLogLevel(RestAdapter.LogLevel.FULL); 当我烘焙发布时,出于明显的原因,日志级别设置为RestAdapter.LogLevel.NONE 我想根据生成/文件夹体系结构自动切换此设置: . ├── app │   └── src │   ├── debug │   ├── ma

我在我的Android项目中使用。在开发过程中,我为
RestAdapter
启用完整日志输出,如下所示:

new RestAdapter.Builder()
    .setLogLevel(RestAdapter.LogLevel.FULL);
当我烘焙发布时,出于明显的原因,日志级别设置为
RestAdapter.LogLevel.NONE

我想根据生成/文件夹体系结构自动切换此设置:

.
├── app
│   └── src
│       ├── debug
│       ├── main
│       └── release

如何将
RestAdapter.LogLevel.FULL
移动到
app/src/debug
RestAdapter.LogLevel.NONE
移动到
app/src/release
中?

最简单的方法是使用
BuildConfig.debug
标志,对于调试版本自动设置为true,对于发布版本自动设置为false

我是这样做的:

RestAdapter adapter = new RestAdapter.Builder()
    .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)

更好的方法是通过
build.gradle
文件:

buildTypes {
    debug {
        buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.FULL'
    }

    release {
        buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.NONE'
    }
}
然后在代码中执行以下操作:

mRestAdapter = new RestAdapter.Builder()
    .setEndpoint("http://something.com")
    .setLogLevel(BuildConfig.RETROFIT_LOG_LEVEL)
    .build();

这样在运行时就不需要检查,只需要在编译时进行检查

谢谢。我唯一不喜欢的是“配置”不在一个地方,比如
res/values/config.xml