그래들 빌드 스크립트 자바와 유사한 그루비 언어로 기술

module 의 build.gradle

implementation fileTree(dir: 'libs', include: ['*.jar']) //libs 디렉토리의 모든 jar 로드


settings.gradle

include ':app', ':lib' 여러 개의 모듈 사용가능


proguard 난독화 app/proguard-rules.pro

한앱에서 메서드 수가 65536개를 넘으면 mutidex 기능 이용(프로가드로 해결가능)

디버그에 문제없으나 릴리즈에 문제 있으면 프로가드 설정 의심


gradle.properties build.gradle에서 참조 가능 변수 사용가능


local.properties sdk 위치 지정 gitignore할것


의존관계 프로젝트 build.gradle에 추가하여 설정가능 gradlew build로 실행

task build << {
    println '실행'
}
task configure << {
    println '설정'
}
build.dependsOn(configure); //빌드하기 전에 설정부터 한다

keystore파일의 위치와 패스워드 등 설정(app android 내에)

signingConfigs {
        release{
            storeFile file("release.keystore")
            storePassword "xxxxxxx"
            keyAlias "androidreleasekey"
            keyPassword "xxxxxxxx"
        }
    }

//효율적인 버전관리
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0

versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"

빌드타입 release debug Stage


signingCongif signingCongif.release //사이닝키 설정

minifyEnabled true //프로가드 활성화

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'


applicationIdSuffix ".debug" 패키지 이름 끝에 .debug 추가

versionNameSuffix "-debug" 버전 이름 끝에 -debug 추가


initWith(buildTypes.debug) 디버그 설정을 이용해 빌드타입 만들기

applicationIdSuffix ".stage"


빌드타입 확인 뷰->툴 윈도우->빌트 버라이언츠

debuggable 디버그 가능 여부

jniDebuggable 네이티브 코드 디버그 가능 여부

manifestPlaceholders 매니페스트 내에서 플레이스 홀더 설정

multiDexEnabled 멀티덱스 활성화

shrinkResources 사용하지 않는 리소스 삭제


빌드타입별로 리소스 클래스 대체 가능


프로덕트 플레이버(구현 자체를 바꾸거나 별도의 apk 생성 : 유무료 버전)


applicationId 어플리케이션 ID

Dimension 여러 프로덕트 플레이버 apk 생성 가능

generatedDensities vector drawable에서 생성되는 이미지 화면 밀도 지정

manifestPlaceholders , multiDexEnabled , proguardFiles , signingConfig

testApplicationId 테스트용 어플리케이션 ID

versionCode , versionName 

android 내에 productFlavors{ pro{} free{} }


프로덕트 플레이버와 빌드타입 혼합가능 3*2=6


gradlew assembleDebug , assembleRelease 프로젝트/app/build/에 apk생성


buildConfigField "boolean", "ENABLE_DEBUG_TOOLS", "false" 디펄트컨픽에 추가

debug에만 true로 하면 디버그시에만 디버그 툴 사용


gradlew assembleDebug(assDeb) --debug --stacktrace


build.gradle에 

if(hasProperty("myparameter")){
println "My Parameter: "+myparameter
}

gradlew assembleDebug -Pmyparameter=test

My Parameter : test


gradlew androidDependencies 의존관계 확인

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,