본문 바로가기
코딩 쌩 초보 입문

android studio 에서 gradle 은 무엇인가 하는역할

by 온누리070 2024. 11. 18.

android studio 에서 gradle은 매우중요하고 그만큼 자주 언급되며 graldle 을 이해하는건 매우중요하다.
gradle 을 이해 한다면 보다 편안하게 android를 다룰 수있다.

Gradle은 빌드 스크립트 의 정보를 기반으로 소프트웨어 빌드, 테스트, 배포를 자동화합니다 .

Gradle 핵심 개념

프로젝트

Gradle 프로젝트 는 애플리케이션이나 라이브러리와 같이 빌드 가능한 소프트웨어입니다.

단일 프로젝트 빌드에는 루트 프로젝트 라는 단일 프로젝트가 포함됩니다 .

다중 프로젝트 빌드에는 하나의 루트 프로젝트  여러 개의 하위 프로젝트가 포함됩니다 .

스크립트 빌드

빌드 스크립트는 프로젝트를 빌드하기 위해 어떤 단계를 거쳐야 하는지 Gradle에 자세히 설명합니다.

각 프로젝트에는 하나 이상의 빌드 스크립트가 포함될 수 있습니다.

종속성 관리

종속성 관리 란 프로젝트에 필요한 외부 리소스를 선언하고 해결하기 위한 자동화된 기술입니다.

일반적으로 각 프로젝트에는 Gradle이 빌드하는 동안 해결할 수 있는 여러 외부 종속성이 포함됩니다.

작업

작업은 코드 컴파일이나 테스트 실행과 같은 기본적인 작업 단위입니다 .

각 프로젝트에는 빌드 스크립트나 플러그인 내부에 정의된 하나 이상의 작업이 포함되어 있습니다.

플러그인

플러그인은 Gradle의 기능을 확장 하고 선택적으로 프로젝트에 작업을 추가하는 데 사용됩니다 .

Gradle 프로젝트 구조

많은 개발자가 기존 프로젝트를 통해 처음으로 Gradle을 사용하게 됩니다.

프로젝트의 루트 디렉토리에 gradlew및 파일이 있는 것은 Gradle이 사용되고 있다는 명확한 지표입니다.gradlew.bat

Gradle 프로젝트는 다음과 비슷합니다.

project
├── gradle                              
│   ├── libs.versions.toml              
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew                             
├── gradlew.bat                         
├── settings.gradle(.kts)               
├── subproject-a
│   ├── build.gradle(.kts)              
│   └── src                             
└── subproject-b
    ├── build.gradle(.kts)              
    └── src                             
  래퍼 파일 등을 저장하는 Gradle 디렉토리
  종속성 관리를 위한 Gradle 버전 카탈로그
  Gradle 래퍼 스크립트
  루트 프로젝트 이름과 하위 프로젝트를 정의하기 위한 Gradle 설정 파일
  두 하위 프로젝트의 Gradle 빌드 스크립트 - subproject-a및subproject-b
  프로젝트에 대한 소스 코드 및/또는 추가 파일

Gradle 호출하기

IDE

Gradle은 Android Studio, IntelliJ IDEA, Visual Studio Code, Eclipse, NetBeans를 포함한 많은 IDE에 기본으로 제공 됩니다.

IDE에서 앱을 빌드하거나, 정리하거나, 실행할 때 Gradle을 자동으로 호출할 수 있습니다.

Gradle을 사용하고 구성하는 방법에 대해 자세히 알아보려면 선택한 IDE의 매뉴얼을 참조하는 것이 좋습니다.

명령줄

Gradle은 설치 후 명령줄에서 호출할 수 있습니다 . 예를 들어:

$ gradle build
  대부분의 프로젝트는 설치된 Gradle 버전을 사용하지 않습니다.

그래들 래퍼

Wrapper는 선언된 버전의 Gradle을 호출하는 스크립트이며 Gradle 빌드를 실행하는 데 권장되는 방법gradlew 입니다. 프로젝트 루트 디렉토리에서 또는 파일 로 발견됩니다 gradlew.bat.

$ gradlew build     // Linux or OSX
$ gradlew.bat build  // Windows

https://docs.gradle.org/current/userguide/getting_started_eng.html?_gl=1*1cbeqxz*_gcl_au*MjAwMTkwNjIyNC4xNzMwNjE2NjE2*_ga*MTAxNjY0NDY3OS4xNzMwNjE2NjE3*_ga_7W7NC6YNPT*MTczMTg3ODg0My4zLjAuMTczMTg3ODg0My42MC4wLjA.

 

Getting Started

The core concepts section goes through the Gradle basics so that you can quickly understand how to invoke tasks, turn on features, apply plugins, add dependencies to your project, and more.

docs.gradle.org

 

plugins { } 블록

빌드 구성에서 첫 번째 단계는 Android Gradle Plugin을 빌드에 적용하는 것입니다. 이를 위해서는 plugins { } 블록에 원하는 Plugin을 적용합니다.여기서는 Android 애플리케이션 빌드를 위한 Android Plugin과 Kotlin 언어를 사용하기 위한 Kotlin Plugin이 적용되어 있습니다.

android { } 블록

android { } 블록에서는 안드로이드 애플리케이션 빌드 관련 설정을 정의합니다.

  • namespace: Android 애플리케이션의 패키지 이름을 정의합니다.
  • compileSdk: 컴파일에 사용할 Android API 버전을 지정합니다.
  • defaultConfig { ... }: 기본 설정을 정의하는 블록으로, 애플리케이션의 기본적인 속성을 설정합니다. 예를 들어, 애플리케이션 ID, 최소 SDK 버전, 대상 SDK 버전, 버전 코드 및 버전 이름을 여기에서 설정합니다.
  • buildTypes { ... }: 빌드 유형을 정의하는 블록으로, 여기에서는 릴리스 빌드에 대한 설정을 지정합니다. 예를 들어, 코드 축소화(minifyEnabled) 설정 및 ProGuard 규칙 파일을 여기에서 정의합니다.
  • compileOptions { ... }: 컴파일 옵션을 정의하는 블록으로, Java 소스 및 대상 호환성을 설정합니다.
  • kotlinOptions { ... }: Kotlin 옵션을 정의하는 블록으로, JVM 대상 버전을 설정합니다.
  • buildFeatures { ... }: 빌드 기능을 활성화 또는 비활성화하는 블록으로, 여기에서 Compose를 활성화합니다.
  • composeOptions { ... }: Compose 관련 옵션을 정의하는 블록으로, Compose의 Kotlin 컴파일러 확장 버전을 설정합니다.
  • packaging { ... }: 패키징 옵션을 정의하는 블록으로, 여기에서 리소스를 제외하도록 설정합니다.

dependencies { } 블록

dependencies { } 블록에서는 모듈 자체를 빌드하는 데 필요한 종속 항목을 정의합니다. 이곳에서 외부 라이브러리를 사용하기 위해 종속 항목을 정의합니다.

실행(Execution) 단계

실행 단계는 구성 단계에서 생성하고 설정된 프로젝트의 Task 중에 실행 대상을 결정합니다.

  1. gradle-wrapper.properties (Gradle Version): gradle 자체와 관련된 설정 파일
  2. proguard-rules.pro (ProGuard Rules for 프로젝트명.app): 코드 난독화 도구(ProGuard) 설정 파일
  3. gradle.properties (Project Properties): 프로젝트 수준의 그레이들 환경 설정 파일
  4. local.properties (SDK Location): 안드로이드 SDK 경로를 관리하는 파일
 

Gradle의 동작원리 이해하기

안드로이드 개발을 한다면 이 코끼리를 지겹게 보게 됩니다. 다만 이 코끼리에 대해서 자세히 공부해보고 알아본적이 없어서 이번 게시글을 통해 Gradle의 원리를 이해해보고자 합니다. Gradle이란

everyday-develop-myself.tistory.com

https://developer.android.com/studio/projects/gradle-external-native-builds?hl=ko

사업자 정보 표시
(주)제이에스솔루션 | 문경집 | 서울특별시 서초구 반포동 강남대로 479 신논현타워 148호 | 사업자 등록번호 : 113-86-17500 | TEL : 070-7752-2002 | Mail : ciscovoip@naver.com | 통신판매신고번호 : 서울 서초 2018 1737호 | 사이버몰의 이용약관 바로가기