[android-studio] Android Studio에서 Gradle이란 무엇입니까?

Gradle은 나에게 혼란스럽고 새로운 안드로이드 개발자에게도 혼란 스럽습니다. 누구나 Android Studio의 Gradle이 무엇이며 그 목적이 무엇인지 설명 할 수 있습니까? 왜 Android Studio에 포함되어 있습니까?



답변

짧은 답변

Gradle은 빌드 시스템입니다.

긴 답변

Android Studio 이전에는 개발 목적으로 Eclipse를 사용하고 있었지만 Eclipse없이 Android APK를 작성하는 방법을 알지 못했습니다.

명령 행에서이 작업을 수행 할 수 있지만 SDK에서 각 도구 (dx, aapt)의 기능을 알아야합니다. 이클립스는 우리에게 자체 빌드 시스템을 제공함으로써 저수준이지만 중요하고 기본적인 세부 사항으로부터 우리를 구했습니다.

이제 res폴더가 폴더와 동일한 디렉토리에있는 이유가 궁금 src하십니까?

이것은 빌드 시스템이 그림으로 들어가는 곳입니다. 빌드 시스템은 자동으로 모든 소스 파일 ( .java또는 .xml)을 가져온 다음 적절한 도구를 적용하고 (예 : java클래스 파일을 가져와 파일로 변환 dex), 모든 파일을 하나의 압축 파일 (사랑하는 APK)로 그룹화합니다.

이 빌드 시스템은 몇 가지 규칙을 사용합니다. 하나의 예는 소스 파일 (Eclipse에서는 \src폴더) 또는 자원 파일 (Eclipse에서는 \res폴더)을 포함하는 디렉토리를 지정하는 것입니다 .

이제이 모든 작업을 자동화하려면 스크립트가 있어야합니다. 리눅스에서 쉘 스크립트를 사용하거나 Windows에서 배치 파일 구문을 사용하여 자체 빌드 시스템을 작성할 수 있습니다. 알았다?

Gradle은 다른 빌드 시스템 에서 최고의 기능을 사용하여 하나의 기능으로 결합한 또 다른 빌드 시스템 입니다. 단점으로 인해 개선되었습니다. 그것은이다 JVM 기반의 시스템을 구축 하는 수단은 안드로이드 스튜디오를 사용합니다 자바에서 자신의 스크립트를 쓸 수 있다는 것.

gradle의 한 가지 멋진 점은 플러그인 기반 시스템 이라는 것입니다 . 이것은 자신의 프로그래밍 언어가 있고 소스에서 일부 패키지 (Java의 JAR과 같은 출력)를 작성하는 작업을 자동화하려는 경우 Java 또는 Groovy (또는 Kotlin, 여기 참조 ) 에서 완전한 플러그인을 작성할 수 있으며 세계의 다른 지역에 배포하십시오.

Google은 왜 그것을 사용 했습니까?

Google은 시장에서 가장 진보 된 빌드 시스템 중 하나를 보았으며 학습 곡선을 거의 또는 전혀 사용하지 않고 Groovy 또는 다른 새로운 언어를 배우지 않고도 자신 만의 스크립트를 작성할 수 있음을 깨달았습니다. 그래서 그들은 Gradle 용 Android 플러그인을 작성했습니다.

build.gradle프로젝트에서 파일 을 보았을 것 입니다. 여기서 작업을 자동화하는 스크립트를 작성할 수 있습니다. 이 파일에서 본 코드는 Groovy 코드입니다. 쓰면 System.out.println("Hello Gradle!");콘솔에 인쇄됩니다.

빌드 스크립트에서 무엇을 할 수 있습니까?

간단한 예는 실제 빌드 프로세스가 수행되기 전에 한 디렉토리에서 다른 디렉토리로 파일을 복사해야한다는 것입니다. Gradle 빌드 스크립트가이를 수행 할 수 있습니다.


답변

Google이 Android에 사용하려는 새로운 빌드 도구입니다. 그것은 개미보다 더 확장 가능하고 유용하기 때문에 사용됩니다. 개발자 경험을 향상시키기위한 것입니다.

Google I / O 의 Android 개발자 팀에서 Xavier Ducrohet의 강연을 여기에서 볼 수 있습니다.

Xavier와 Tor Norbye의 Android Studio에 대한 또 다른 이야기도 있습니다 .


답변

GradleAndroid Studio에서 실행되는 빌드 시스템 입니다.

다른 언어로 예를 들면 다음과 같습니다.


답변

다음은 GradleAndroid Studio에서 무엇이 무엇 이고 어떻게 사용하는지에 대한 자세한 설명 입니다.

Gradle 파일 탐색

  1. Android Studio에서 프로젝트를 작성할 때마다 빌드 시스템은 필요한 모든 Gradle 빌드 파일을 자동으로 생성합니다.

Gradle 빌드 파일

  1. Gradle 빌드 파일은 a Domain Specific Language or DSL를 사용하여 사용자 정의 빌드 로직을 정의하고 Gradle 용 Android 플러그인의 Android 특정 요소와 상호 작용합니다.

  2. Android Studio 프로젝트는 독립적으로 빌드, 테스트 및 디버깅 할 수있는 구성 요소 인 하나 이상의 모듈로 구성됩니다. 각 모듈에는 자체 빌드 파일이 있으므로 모든 Android Studio 프로젝트에는 2 가지 종류의 Gradle 빌드 파일이 있습니다.

  3. 최상위 빌드 파일 : 프로젝트를 구성하는 모든 모듈에 공통적 인 구성 옵션이 있습니다.

  4. 모듈 수준 빌드 파일 : 각 모듈에는 모듈 별 빌드 설정이 포함 된 자체 Gradle 빌드 파일이 있습니다. 프로젝트의 최상위 빌드 파일 대신 모듈 수준 빌드 파일을 편집하는 데 대부분의 시간을 소비합니다.

이러한 build.gradle파일 을 보려면 프로젝트 탭을 선택하여 Android Studio의 프로젝트 패널을 열고 Gradle Scripts 폴더를 확장하십시오. Gradle Scripts 폴더의 처음 두 항목은 프로젝트 레벨 및 모듈 레벨 Gradle 빌드 파일입니다.

최상위 Gradle 빌드 파일

모든 Android Studio 프로젝트에는 단일 최상위 Gradle 빌드 파일이 포함되어 있습니다. 이 build.gradle파일은 Gradle Scripts 폴더에 나타나는 첫 번째 항목이며 명확하게 Project로 표시됩니다.

대부분의 경우이 파일을 변경할 필요는 없지만 파일 내용과 프로젝트 내에서 수행하는 역할을 이해하는 것이 여전히 유용합니다.

모듈 수준의 Gradle 빌드 파일

프로젝트 수준의 Gradle 빌드 파일 외에도 각 모듈에는 자체 Gradle 빌드 파일이 있습니다. 다음은 기본 모듈 수준 Gradle 빌드 파일의 주석이 달린 버전입니다.

다른 Gradle 파일

build.gradle 파일 외에도 Gradle Scripts 폴더에는 다른 Gradle 파일이 포함되어 있습니다. 대부분의 경우 프로젝트와 관련하여 변경하면 자동으로 업데이트되므로 이러한 파일을 수동으로 편집 할 필요가 없습니다. 그러나 프로젝트 내에서 이러한 파일의 역할을 이해하는 것이 좋습니다.

gradle-wrapper.properties (Gradle 버전)

이 파일을 사용하면 컴퓨터에 Gradle이 설치되어 있지 않아도 다른 사람들이 코드를 작성할 수 있습니다. 이 파일은 올바른 버전의 Gradle이 설치되어 있는지 확인하고 필요한 경우 필요한 버전을 다운로드합니다.

settings.gradle

이 파일은 프로젝트를 구성하는 모든 모듈을 참조합니다.

gradle.properties (프로젝트 속성)

이 파일에는 전체 프로젝트에 대한 구성 정보가 포함되어 있습니다. 기본적으로 비어 있지만이 파일에 추가하여 프로젝트에 다양한 속성을 적용 할 수 있습니다.

local.properties (SDK 위치)

이 파일은 Android Gradle 플러그인에 Android SDK 설치를 찾을 수있는 위치를 알려줍니다.

참고 : local.properties Android SDK의 로컬 설치와 관련된 정보가 포함되어 있습니다. 이것은이 파일을 소스 제어하에 두지 말아야한다는 것을 의미합니다.

추천 독서-Tutsplus Tutorial

나는 gradle에 대한 명확한 이해를 얻었습니다.


답변

Gradle은 프로그램의 소스 코드를 빌드하는 빌드 도구 중 하나 입니다. 따라서 Android Studio의 중요한 부분이므로 애플리케이션 개발을 시작하기 전에 설치해야합니다.

우리는 첫 번째 프로젝트를 만들 때 Android Studio가 대신하기 때문에 별도로 설치할 필요가 없습니다.


답변

DEFINITION : Gradle을은 도구와 제작하는 프로젝트의 리소스를 관리 할 수있는 유연성이 빌드 개발자를 제공하는 구조화 된 건물의 메커니즘을 설명 할 수 smaller in size, targeting specific requirements특정 구성의 특정 장치에 대한을


기본 구성

  1. minimumSdk
  2. maximumSdk
  3. targettedSdk
  4. versionCode
  5. versionName

라이브러리 ::
이전에는 지루한 작업이었던 요구 사항에 따라 Android 라이브러리 또는 다른 타사 라이브러리를 추가 할 수 있습니다. 라이브러리가 기존 프로젝트에 적합하지 않은 경우, 개발자에게 라이브러리를 추가 할 수 있도록 프로젝트를 변경하기위한 적절한 솔루션을 찾을 수있는 로그가 개발자에게 표시됩니다. 한 줄의 의존성


내장 생성 품종

다양한 빌드 변형을 얻기 위해 빌드 유형을 빌드 플레이버와 결합

 ====================                         ====================
|     BuildTypes     |                       |   ProductFlavours  |
 --------------------  ====================== --------------------
|  Debug,Production  |      ||       ||      | Paid,Free,Demo,Mock|
 ====================       ||       ||       ====================
                            ||       ||
                            VV       VV
 =================================================================
|           DebugPaid, DebugFree, DebugDemo, DebugMock            |
|  ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
 =================================================================

축소 크기

Gradle은 통합 라이브러리에서 사용되지 않은 리소스와 사용되지 않은 리소스를 제거하여 생성 된 빌드의 크기를 줄이는 데 도움이됩니다.


권한 관리

요구 사항에 따라 특정 시나리오에서 특정 권한을 추가하여 특정 빌드에 대한 특정 권한을 지정할 수 있습니다


특정 장치 용 내장

특정 밀도 및 특정 api 수준을 포함하는 특정 장치의 빌드 생성을 관리 할 수 ​​있습니다. 이를 통해 여러 유형의 기기에서 요구 사항에 따라 앱 스토어에서 제품을 배포 할 수 있습니다.


좋은 참조

보겔 라 튜토리얼


답변

Gradle에 대한 모든 정보가 있습니다.
Gradle Plugin 사용 설명서

새로운 빌드 시스템의 목표

새로운 빌드 시스템의 목표는 다음과 같습니다.

  • 코드와 리소스를 쉽게 재사용 할 수 있도록합니다
  • 다중 apk 배포 또는 다양한 응용 프로그램을 위해 여러 응용 프로그램 변형을 쉽게 만들 수 있습니다.
  • 빌드 프로세스를 쉽게 구성, 확장 및 사용자 정의
  • 좋은 IDE 통합

왜 그래들?

Gradle은 고급 빌드 시스템 일뿐만 아니라 플러그인을 통해 사용자 정의 빌드 로직을 생성 할 수있는 고급 빌드 툴킷입니다.

Gradle을 선택하게 한 기능 중 일부는 다음과 같습니다.

  • 빌드 로직을 설명하고 조작하기위한 DSL (Domain Specific Language)
  • 빌드 파일은 Groovy 기반이며 DSL을 통해 선언 요소를 혼합하고 코드를 사용하여 DSL 요소를 조작하여 사용자 정의 논리를 제공 할 수 있습니다.
  • Maven 및 / 또는 Ivy를 통한 내장 종속성 관리
  • 매우 유연합니다. 모범 사례를 사용할 수는 있지만 자체 작업 방식을 강요하지는 않습니다.
  • 플러그인은 빌드 파일을 사용하기 위해 자체 DSL 및 자체 API를 노출 할 수 있습니다.
  • IDE 통합을 가능하게하는 우수한 툴링 API