포스팅 OS : Mac
검색어 : 디버그(Debug), 릴리즈(Release), 빌드(Buiild), 벨류(Value)
 
안드로이드 스튜디오로 앱을 소스를 관리할 때 디버그 빌드와 릴리즈 빌드의 벨류값을 따로 관리 하고 싶을 때 사용한다.
 
예를 들어 하나의 텍스트 뷰에 디버그 일때와 릴리즈 일때 각각 다른 텍스트를 보여주고 싶을 때 사용 가능하다. 
Ex)
- 디버그 빌드 일때는 텍스트로 '디버그 모드'를 노출
- 릴리즈 빌드 일때는 텍스트로 '릴리즈 모드'를 노출 
 
사용법은 아래와 같다.
 
1. build.gradle(Module:app)에서 아래와 같이 벨류를 생성 할 수 있다.
android {
    ...

    buildTypes {
        debug {
            // 레이아웃 벨류 사용법
            resValue("string", "testvalue", "디버그 모드")

            // 자바 벨류 사용법
            buildConfigField "String",  "TestValue01", "\"디버그 모드\""
            buildConfigField "int",     "TestValue02", "1234567890"
            buildConfigField "boolean", "TestValue03", "true"

        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            // 레이아웃 벨류 사용법
            resValue("string", "testvalue", "릴리즈 모드")

            // 자바 벨류 사용법
            buildConfigField "String", "TestValue01", "\"릴리즈 모드\""
            buildConfigField "int",     "TestValue02", "0987654321"
            buildConfigField "boolean", "TestValue03", "false"
        }
    }
}
- 위와 같이 같은 벨류 명으로 debug와 release에 값을 다르게 생성하면 각 모드에서 해당 값으로 사용 가능하다.
 
1) resValue
- XML에서 사용할 수 있는 벨류
- 생성한 벨류는 모두 generated.xml에 자동으로 생성된다. 
- generated.xml : 아래와 같이 resValue로 생성한 변수가 생성되어 있는 것이 확인 가능하다.
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Automatically generated file. DO NOT MODIFY -->

    <!-- Values from build type: release -->
    <string name="testvalue" translatable="false">릴리즈 모드</string>

</resources>
2) buildConfigField
- 자바 소스에서 사용 가능한 벨류.
- 생성한 벨류는 모두 BuildConfig.java에 자동으로 생성된다.
- Buildconfig.java : 아래와 같이 buildConfigFeild로 생성한 변수가 생성되어 있는 것이 확인 가능하다.

public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.linecorp.advertise.buildmodetest";
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";
// Fields from build type: debug
public static final String TestValue01 = "디버그 모드";
public static final int TestValue02 = 1234567890;
public static final boolean TestValue03 = true;
}

2. 위에서 생성한 벨류를 사용해보자
1) resValue 사용법
- 아래와 같이 화면 레이아웃 xml에 벨류값을 불러서 사용한다.
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/testvalue" />
2) buildConfigField 사용법
- 아래와 같이 자바 소스로 벨류값을 불러서 사용한다.
TextView testValue01 = findViewById(R.id.txt_testValue01);
testValue01.setText(BuildConfig.TestValue01);
 
 
 
 
 
 

 

+ Recent posts