본문 바로가기

프로그래밍/Android

[Android] gradle android 빌드 구성

어플리케이션

apply plugin: 'com.android.application'

android.applicationVariants.all { variant ->
    if( variant.name == 'release' ) {
    	parent.classpath += variant.javaCompile.classpaths
    }
}

 

라이브러리

apply plugin: 'com.android.library'

android.libraryVariants.all { variant ->
    if( variant.name == 'release' ) {
    	parent.classpath += variant.javaCompile.classpaths
    }
}

 

소스 폴더

// 소스 폴더 구성
// 빌드타입이나 falvor 에 따라 각각의 소스 위치를 지정할 수 있음
android {
    sourceSets {
    	main {
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']
            manifest.srcFile 'src/main/AndroidManifest.xml'
        }
    
        release {
        	
        }
        
        debug {
        
        }
    
    }
}

 

 

빌드 상수

빌드타입, flavor, defaultConfig 등에 선언하면, BuildConfig 클래스에 해당 상수가 추가된다.

각 값은 문자열 " " 로 적어주고, 타입은 java 타입을 사용. "String", "int" ...

// gradle
android {
    defaultConfig {
    	buildConfigField "타입", "이름", "값"
    }
}


// java
public final class BuildConfig {
    public static final 타입 이름 = 값;
}

 

빌드타입

// 빌드타입
// 동일앱의 여러 버전을 생성할 때 사용함
android {
    release {
    	applicationIdSuffix '.release'
        debuggable false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    
    debug {
    	applicationIdSuffix '.debug'
        debuggable true
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }   
}

 

Flavor

// product flavors 로 분리하게 되면 각각 별도의 앱으로 구분됨
android {
    productFlavors {
    	free {
            applicationId 'com.test.a'
            versionCode 1
            versionName '1.0.0'
            buildConfigField "int", "Name", "1"
        }
        
        paid {
        
        }
    }
}

'프로그래밍 > Android' 카테고리의 다른 글

[Android] EGL : 3 - 쉐이더  (0) 2020.03.02
[Android] EGL : 2 - 텍스처  (0) 2020.03.02
[Android] EGL : 1 - 기본 구성  (0) 2020.03.02
안드로이드 ndk 테스트 코드  (0) 2020.02.20
[Android] gson , 복합적인 요소의 파싱  (0) 2019.09.23
[Android] ConstraintSet  (0) 2019.08.22
Gradle Kotlin, AndroidX 설정  (0) 2019.08.17
[Android] androidX Camera  (0) 2019.07.15
[Android] Retrofit  (0) 2019.04.11
[Android] Data Binding Library  (0) 2019.03.31