implementation 사용 목적
외부 라이드러리는 내 프로젝트에서 사용하기 위해 선언
apply plugin: 'com.android.application'
android { ... }
dependencies {
// Dependency on a local library module
implementation project(":mylibrary")
// Dependency on local binaries
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Dependency on a remote binary
implementation 'com.example.android:app-magic:12.3'
}
4.3 이상 버전에서 사용 할 경우 아래와 같이 compile is deprecated; replace with implementation 표시됨
왜 complie 옵션을 지원 중단 되었을까?
complie -> implementation 변경 할 경우 apk 빌드 시간을 크게 개선 할 수 있음.
Gradle이 컴파일 클래스 경로에 종속 항목을 추가하고 빌드 출력에 종속 항목을 패키징합니다. 그러나 모듈에서 implementation 종속 항목을 구성하면 모듈이 컴파일 시간에 종속 항목을 다른 모듈에 누출하기를 바라지 않는다는 것을 Gradle에 알려주는 것입니다. 즉 종속 항목은 런타임에만 다른 모듈에서 이용할 수 있습니다. api 또는 compile(지원 중단됨) 대신 이 종속 항목 구성을 사용하면 빌드 시스템에서 다시 컴파일해야 하는 모듈 수가 줄어들기 때문에 빌드 시간이 크게 개선될 수 있습니다. 예를 들어 implementation 종속 항목이 API를 변경하면 Gradle은 이 종속 항목과 이에 직접적으로 종속된 모듈만 다시 컴파일합니다. 대부분의 앱과 테스트 모듈은 이 구성을 사용해야 합니다. |
build.gradle dependencies compile 옵션은 아래와 같이 gradle 버전 4.2까지 지원되고 이후 버전에서는 지원 중단됨.
지원 중단된 구성(AGP 1.0~4.2에서 사용 가능)
apk | Gradle은 런타임 동안 사용하기 위한 목적으로 빌드 출력에만 종속 항목을 추가합니다. 즉 컴파일 클래스 경로에는 추가되지 않습니다. |
compile | Gradle은 컴파일 클래스 경로와 빌드 출력에 종속 항목을 추가합니다. 종속 항목을 다른 모듈로 내보냅니다. |
provided | Gradle은 컴파일 클래스 경로에만 종속 항목을 추가합니다(즉 빌드 출력에는 추가되지 않음). |
자료 참고 : https://developer.android.com/studio/build/dependencies?hl=ko
반응형
'Android > Tip' 카테고리의 다른 글
[안드로이드] 버전별 사용 현황 (2022년 8월 기준) (0) | 2022.10.26 |
---|---|
[안드로이드] keytool Certificate fingerprint 생성하기 (0) | 2021.10.17 |
[안드로이드] APK so 파일 추출 (0) | 2021.09.02 |
[Android] manifest 옵션 설명 (0) | 2021.07.27 |
[Android] 안드로이드 구조 (Stack) (0) | 2021.07.11 |