ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android Gradle - Build Type, Flavor
    Android 2021. 4. 24. 18:38
    android {
        
        ...
        
       buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        
        flavorDimensions "version"
        productFlavors {
            free {
                dimension "version"
                manifestPlaceholders = [
                        appLabel: "Free-Flavor"
                ]
                applicationIdSuffix ".free"
                versionCode 10000
                versionName "1.0.0"
                buildConfigField "String", "EXPLAIN", "\"This is FREE-FLAVOR application\""
                resValue "string", "appName", "Free-Flavor"
            }
            paid {
                dimension "version"
                manifestPlaceholders = [
                        appLabel: "Paid-Flavor"
                ]
                applicationIdSuffix ".paid"
                versionCode 20000
                versionName "2.0.0"
                buildConfigField "String", "EXPLAIN", "\"This is PAID-FLAVOR application\""
                resValue "string", "appName", "Paid-Flavor"
            }
        }
    }

    Android 플러그인에서는 하나의 프로젝트로 목적이 다른 결과물을 생성할 수 있다.

     

    1. buildTypes 블록

      - 기본은 release, debug

      - debug 개발 단계에 사용, relaease는 외부 배포할때 사용

      - release일때 proguard적용을 false로 지정

      - minifyEnabled true이면 proguard-rules.pro 파일 참고하여 proguard를 실행

     

    2.Flavor

    •   flavorDimensions

        - 빌드의 구분

        -"api", "mode", "version" api 버전에 따른 구분, 앱의 기능에 따른 구분, version에 따른 구분 등을 나타

    •   manifestPlaceholders

        - AndroidManifest.xml 파일에서 ${appLabel} 처럼 사용

    •   applicationIdSuffix

        - defaultConfig에 명시된 applicationId 뒤에 붙어서  version의 ApplicationId 를 구분하게 해줌

    •   buildConfigField

        - BuildConfig라는 클래스에서 호출할 수 있는

        - BuildConfig.#####  사용

    •   resValue

        - 문자열 정의로 @string/##### 와 같이 사용

     

     

    Reference

    • 유동환, 안드로이드를 위한 Gradle, 한빛미디어

    'Android' 카테고리의 다른 글

    SurfaceView  (0) 2021.05.13
    ADB Shell 명령어 정리  (0) 2021.04.25
    Android Gradle - Gradle Scripts(2)  (0) 2021.04.24
    Android Gradle - Gradle Scripts(1)  (0) 2021.04.24
    Android Gradle - Gradle이란  (0) 2021.04.23
Designed by Tistory.