안드로이드의 BuildConfig 활용

안드로이드는 앱을 빌드하는 과정에서 여러 파일을 자동으로 생성한다. BuildConfig 클래스도 그 중 하나로, 현재 빌드에 관한 정보를 상수 필드로 갖고 있어 코드에서 직접 참고할 수 있다.

package me.sunphiz.kotlin.myapplication;

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "me.sunphiz.kotlin.myapplication";
  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";
}
if( BuildConfig.DEBUG )
{
    // 내 코드
}

파일은 /build/generated/source/buildConfig/.. 이하에 위치하고, <application id>.BuildConfig 의 이름을 갖는다.

기본 상수 외에 build.gradle를 통해 내가 필요한 필드를 직접 추가할 수도 있다. 이 상수는 빌드 타입에 따라 buildType 뿐 아니라 defaultConfig, productFlavors에도 선언이 가능하다. buildConfig를 여러 개 선언하다보면 번거로워진다. 이 때 Groovy의 맵 자료 구조 iteration을 이용하면, 아래처럼 buildConfig 값을 맵 형식으로 따로 정리할 수 있다.

ext {
    extraStringBuildConfig = [ NAME : '"Dog발자"' ]
    extraBooleanBuildConfig = [ KOREAN : 'true' ]
}

android {
    defaultConfig {
        ...

        extraStringBuildConfig.each{ k, v ->
            buildConfigField 'String', k, v
        }

        extraBooleanBuildConfig.each{ k, v ->
            buildConfigField 'boolean', k, v
        }
    }
    ...
}

그 밖에

참조

댓글 남기기

이메일은 공개되지 않습니다.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.