TIL - 21 # compileSdk vs targetSdk vs minSdk 안드로이드 앱 개발에서 사용되는 세 가지 중요한 설정은 `compileSdk`, `minSdk`, 그리고 `targetSdk`입니다. 3가지 차이점이 무엇일까요? 1. compileSdk: - 결정된 Android 및 Java API를 사용하여 소스 코드를 컴파일하는 데 사용됩니다. - 최신 Android 기능을 사용하려면 최신 Android SDK 사용을 권장합니다. - 낮은 API 레벨에서는 일부 Android 플랫폼 API 사용이 불가능합니다. - 라이브러리 의존성에서 설정된 `compileSdk` 값보다 작으면 Gradle에서 빌드에서 오류가 발생합니다. 2. minSdk: - 앱이 지원하는 가장 낮은 Android 버전을 지정합니다. - 낮은 버전 지원은 코드 내 조건부 검사 또는 AndroidX 호환 라이브러리 사용시 필요합니다. - 낮은 버전을 지원하는 유지 보수 비용을 해당 버전을 사용하는 사용자 비율과 비교해 고려해야 합니다. - lint는 `minSdk`에서 사용 불가능한 API에 관해 경고로 표시합니다. 3. targetSdk: - 앱의 런타임 동작을 설정하고 테스트한 Android 버전을 나타냅니다. - 높은 Android 버전에서 실행되면 `targetSdk`에 따라 호환 모드로 동작합니다. - `targetSdk` 값은 `compileSdk` 값보다 작거나 같아야 합니다. - Google Play는 target API 레벨에 대한 추가 정책을 시행합니다. - `compileSdk`와 `targetSdk` 값은 일치할 필요 없으며, 각각의 역할이 다릅니다. Android 14가 공식으로 릴리스되었으므로 곧 플레이스토어에서 요구하는 targetSdk 버전이 올라갈 것으로 예상됩니다. 미리 해당 버전을 적용하여 대응하는 것이 좋습니다. 참고 : https://developer.android.com/build#android_sdk_settings