Android Gradle 플러그인 2.2.0(2016년 9월)
- 종속 항목:
- New:
-
- 성능 개선 및 새로운 기능을 포함하는 Gradle 2.14.1을 사용하고 Gradle 데몬을 사용할 때 로컬 권한 에스컬레이션을 허용하는 보안 취약점을 해결합니다. 자세한 내용은 Gradle 출시 노트를 참고하세요.
externalNativeBuild {}
DSL을 사용하여 이제 Gradle로 네이티브 소스에 연결하고 CMake나 ndk-build를 사용하여 네이티브 라이브러리를 컴파일할 수 있습니다. 네이티브 라이브러리를 빌드한 후에 APK로 패키징합니다. Gradle로 CMake 및 ndk-build를 사용하는 방법에 관한 자세한 내용은 프로젝트에 C 및 C++ 코드 추가를 읽어보세요.- 명령줄에서 빌드를 실행하면 이제 Gradle이 누락된 SDK 구성요소나 프로젝트가 종속하는 업데이트를 자동 다운로드하려고 시도합니다. 자세한 내용은 Gradle로 누락된 패키지 자동 다운로드를 읽어보세요.
- 새로운 실험용 캐싱 기능으로 Gradle이 사전 덱싱된 라이브러리 버전을 사전 덱싱, 저장, 재사용하여 빌드 시간을 단축할 수 있습니다. 이 실험용 기능 사용에 관한 자세한 내용은 빌드 캐시 가이드를 읽어보세요.
- 작업 한 번으로 압축과 서명, zipaligning을 처리하는 새로운 기본 패키징 파이프라인을 채택해 빌드 성능을 개선합니다.
gradle.properties
파일에android.useOldPackaging=true
를 추가하여 이전 패키징 도구를 사용하도록 되돌릴 수 있습니다. 새로운 패키징 도구를 사용하는 동안zipalignDebug
작업은 사용할 수 없습니다. 그러나createZipAlignTask(String taskName, File inputFile, File outputFile)
메서드를 호출하여 직접 그 작업을 생성할 수 있습니다. - 이제 APK 서명이 기본 JAR 서명 외에도 APK 서명 체계 v2를 사용합니다. 모든 Android 플랫폼이 그 결과로 발생하는 APK를 허용합니다. 서명 후 이러한 APK를 수정하면 v2 서명이 무효화되고 기기에 설치되지도 않습니다. 이 기능을 사용 중지하려면 모듈 수준
build.gradle
파일에 다음을 추가하세요.Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- 멀티덱스 빌드의 경우 이제 ProGuard 규칙을 사용하여 Gradle이 앱의 기본 DEX 파일로 컴파일해야 하는 클래스를 결정할 수 있습니다. 앱을 시작할 때 Android 시스템이 기본 DEX 파일을 먼저 로드하기 때문에 시작 시 특정 클래스를 기본 DEX 파일로 컴파일하여 우선순위를 정할 수 있습니다. 기본 DEX 파일용으로 특별히 ProGuard 구성 파일을 생성한 후
buildTypes.multiDexKeepProguard
를 사용하여 구성 파일의 경로를 Gradle로 전달합니다. 이 DSL을 사용하는 것은buildTypes.proguardFiles
를 사용하는 것과 다르며 앱의 일반적인 ProGuard 규칙을 제공하지만 기본 DEX 파일의 클래스를 지정하지는 않습니다. android:extractNativeLibs
플래그 지원을 추가하여 기기에 앱을 설치할 때 앱의 크기를 줄일 수 있습니다. 앱 매니페스트의<application>
요소에서 이 플래그를false
로 설정하면 Gradle이 APK로 압축되지 않고 정렬된 버전의 네이티브 라이브러리를 패키징합니다. 이로써 설치하는 동안PackageManager
가 네이티브 라이브러리를 APK에서 기기의 파일 시스템으로 복사할 수 없고 앱의 델타 업데이트 용량이 적어지는 추가 혜택이 있습니다.- 이제 제품 버전에
versionNameSuffix
와applicationIdSuffix
를 지정할 수 있습니다. (문제 59614)
- 변경사항:
-
-
이제
getDefaultProguardFile
이 Gradle용 Android 플러그인이 제공하는 기본 ProGuard 파일을 반환하고 더 이상 Android SDK의 파일을 사용하지 않습니다. - Jack 컴파일러 성능 및 기능을 개선합니다.
testCoverageEnabled
를true
로 설정할 때 이제 Jack이 Jacoco 테스트 대상 범위를 지원합니다.- 주석 프로세서 지원을 개선합니다. 클래스 경로의 주석 프로세서(예:
compile
종속성)가 빌드에 자동으로 적용됩니다. 모듈 수준build.gradle
파일에서javaCompileOptions.annotationProcessorOptions {}
DSL을 사용하여 빌드에 주석 프로세서를 지정하고 인수를 전달할 수도 있습니다.Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
컴파일 시 주석 프로세서를 적용하고 APK에는 이를 포함하지 않으려면
annotationProcessor
종속 항목 범위를 사용하세요.Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- 기본적으로 Gradle 데몬의 힙 크기가 1.5GB 이상이면 이제 Jack이 Gradle과 같은 프로세스에서 실행됩니다. 데몬 힙 크기를 조정하려면 다음을
gradle.properties
파일에 추가하세요.# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
설정할 수 있는 매개변수 목록을 보려면 명령줄에서 다음을 실행하세요.
java -jar /build-tools/jack.jar --help-properties
-
이제
최소 버전 | 기본 버전 | 참고 | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | 자세한 내용은 Gradle 업데이트하기를 참고하세요. |
SDK 빌드 도구 | 23.0.2 | 23.0.2 | SDK 빌드 도구를 설치 또는 구성합니다. |