android studio 에서 gradle은 매우중요하고 그만큼 자주 언급되며 graldle 을 이해하는건 매우중요하다.
gradle 을 이해 한다면 보다 편안하게 android를 다룰 수있다.
Gradle 기본 사항
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의 매뉴얼을 참조하는 것이 좋습니다.
그래들 래퍼
Wrapper는 선언된 버전의 Gradle을 호출하는 스크립트이며 Gradle 빌드를 실행하는 데 권장되는 방법gradlew 입니다. 프로젝트 루트 디렉토리에서 또는 파일 로 발견됩니다 gradlew.bat.
$ gradlew build // Linux or OSX
$ gradlew.bat build // Windows
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 중에 실행 대상을 결정합니다.
- gradle-wrapper.properties (Gradle Version): gradle 자체와 관련된 설정 파일
- proguard-rules.pro (ProGuard Rules for 프로젝트명.app): 코드 난독화 도구(ProGuard) 설정 파일
- gradle.properties (Project Properties): 프로젝트 수준의 그레이들 환경 설정 파일
- 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
'코딩 쌩 초보 입문' 카테고리의 다른 글
초보 코딩 입문 가이드 사업 돈벌기 멘탈관리 주변관리 환상팔이 주의 (0) | 2023.09.08 |
---|