본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Gradle 에 쫄지 말아라 (gradle 잘 이용하자)

by 돼지왕 왕돼지 2020. 8. 1.
반응형


android gradle

https://medium.com/@cesarmcferreira/gradle-tips-tricks-to-survive-the-zombie-apocalypse-3dd996604341


Project and build specific global variables


-

gradle 을 사용하면 BuildConfig class 가 자동으로 생성된다.

그리고 우리는 그 안에 추가적인 field 를 넣을 수 있다.


defaultConfig {

    buildConfigField "String", "TWITTER_TOKEN", '"SDASJHDKAJSK"'

}


buildTypes {

    debug {

      buildConfigField "String", "API_URL", '"http://api.dev.com/"'

      buildConfigField "boolean", "REPORT_CRASHES", "true"

    }

    release {

      buildConfigField "String", "API_URL", '"http://api.prod.com/"'

      buildConfigField "boolean", "REPORT_CRASHES", "false"

    }

}




Different name, version name, and app id per buildtype


-

android {

    buildTypes {

        debug {

            applicationIdSuffix ".debug"

            versionNameSuffix "-debug"

            resValue "string", "app_name", "CoolApp (debug)"

            signingConfig signingConfigs.debug

        }

        release {

            resValue "string", "app_name", "CoolApp"

            signingConfig signingConfigs.release

        }

    }

...

}




Private Information


-

아래와 같이 signing information 을 줄 수 있다.

signingConfigs {

    release {

        storeFile     "${System.env.COOL_APP_PRIVATE_KEY}"

        keyAlias      "${System.env.COOL_APP_ALIAS}"

        storePassword "${System.env.COOL_APP_STORE_PW}"

        keyPassword   "${System.env.COOL_APP_PW}"

    }

}




Auto generated versionName and versionCode


-

def versionMajor = 1

def versionMinor = 0

def versionPatch = 0

android {

    defaultConfig {

        versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch

        versionName "${versionMajor}.${versionMinor}.${versionPatch}"

    }

}




Add git hash and build time to your BuildConfig


-

def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()

def buildTime = new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone("UTC"))

android {

    defaultConfig {

        buildConfigField "String", "GIT_SHA", "\"${gitSha}\""

        buildConfigField "String", "BUILD_TIME", "\"${buildTime}\""

    }

}




Fastening your seatbelts


-

아래와 같이 dev 라는 flavor 를 둬서 minSdkVersion 을 높게 가져갈 수 있다.

minSdk 를 올려줌으로써 Android gradle plugin 이 모든 module 을 pre-dex 화시킬 수 있어, 빠른 빌드가 가능하다.


android {

    productFlavors {

        dev {

            minSdkVersion 21

        }

        prod {

            // The actual minSdkVersion for the application.

            minSdkVersion 14

        }

    }

}



-

끝!! 

이 이외에도 많은 설정이 있을테니 잘 활용하면 되겠다.

Gradle 에 쫄지말고 잘 활용하자!





반응형

댓글