Android 빌드 시스템은 앱 리소스 및 소스 코드를 컴파일하고 개발자가 테스트, 구축, 서명 및 배포할 수 있는 APK로 패키징한다.
build.gradle
은 Android 앱의 빌드 도구로서 앱을 빌드하는데 필요한 설정을 가지고 있다.
Android Studio에서 프로젝트를 생성하면 2개의 build.gradle
을 확인할 수 있다.
괄호 안에 Project: AndroidLab이라고 적힌 것은 프로젝트 수준의 파일이고 Module이 앱 빌드 설정이 작성될 파일이다.
이번 포스트에서는 build.gradle(Module)
의 화면을 살펴볼 것이다.
Plugin이 선언되는 부분으로 코틀린으로 프로젝트 생성시 com.android.application
과 org.jetbrains.kotlin.android
이 기본적으로 선언되어 있다.
Gradle에서 Plugin은 Gradle Task의 집합이다.
Gradle Task : 애플리케이션 빌드 -> 테스트까지의 다양한 작업을 수행하는 작업 단위
코드를 컴파일하고, 만들어진 프로젝트를 패키징하여 배포, DB와 통신 등 모든 작업들이 Gradle에서 Task 단위로 이루어진다.
개발자가 좀 더 편하게 만들 수 있도록 Plugin 형태로 제공되는 것이다.
앱을 컴파일하거나 빌드할 때 적용할 버전을 설정하는 코드이다. 위 그림처럼 compileSdk 32
로 지정했다면 Android SDK 32 버전을 적용하여 컴파일하라는 의미이다.
처음 프로젝트를 생성할 때 Package name 부분이다. 위 그림에 지정된 문자열이 앱을 식별하는 고유 문자열이다. 만약 같은 식별자가 있다면 스토어에 등록되지도, 기기에 설치되지도 않는다.
간혹 이 SDK 버전 때문에 빌드 오류가 나는 경우가 있다. 이런 경우는 보통 버전이 맞지 않기 때문이다.
targetSdk
: 개발할 때 적용되는 SDK 버전. 32로 지정하면 32버전의 SDK로 개발한다는 의미minSdk
: 앱을 설치할 수 있는 기기의 최소 SDK 버전. 21일 경우 21버전까지만 지원하며 그 아래 버전의 기기는 설치 불가앱의 버전을 설정하는 부분이다. 초기값은 1이지만 앱이 사용자의 스마트폰에 설치되어 이용되다가 업데이트될 때 이 버전을 올려 다시 배포한다.
개발 언어의 버전을 설정하는 영역이다. Java 버전을 생략하면 기본값으로 1.6이 적용된다.
targetSdk
에 명시된 Android SDK 만으로도 개발이 가능하지만 더 다양한 개발을 위해 오픈소스 라이브러리나 구글의 androidx 라이브러리가 아닌 것들은 모두 이 영역에서 선언해야 한다.