본문 바로가기

프로그래밍/Android

AndroidManifest와 build.gradle 의 API 버전 정보

728x90
반응형

AndroidManifest와 build.gradle 의 버전 정보

애플리케이션 개발에 있어서 필수적인 버전 설정에 대해 알아보겠습니다. 특히 AndroidManifest.xml의 targetApi와 build.gradle.kts (또는 build.gradle에서 Groovy 문법을 사용하는 경우)의 compileSdk, minSdk, targetSdk 설정들이 어떤 의미를 가지며, 왜 중요한지에 대해 정리합니다.

 

targetApi

AndroidManifest.xml 파일 내 targetApi 속성은 개발자가 특정 안드로이드 API 레벨을 대상으로 앱을 개발할 때 사용합니다. 이 속성은 안드로이드 린트(Android Lint)와 같은 개발 도구에서 API 레벨에 따른 경고를 관리하는 데 주로 사용됩니다.
예를 들어, targetApi="31"로 설정하면, API 레벨 31(안드로이드 12)의 기능과 변경 사항을 고려하여 앱을 개발했다는 것을 의미합니다. targetApi는 앱 실행에 직접적인 영향을 미치진 않지만, 특정 API 레벨의 기능을 최적화하고 사용하는 데 도움을 줍니다.

compileSdk

build.gradle.kts에서 compileSdk 설정은 앱을 컴파일할 때 사용할 안드로이드 SDK 버전을 지정합니다. 이 설정은 앱이 사용할 수 있는 API의 최신 버전을 결정합니다. compileSdk = 34로 설정한다면, 안드로이드 SDK 버전 34의 API를 사용하여 앱을 컴파일하게 됩니다. compileSdk 버전은 앱이 사용할 수 있는 최신 기능과 API를 결정하므로, 가능한 최신 버전으로 유지하는 것이 좋습니다.

minSdk

minSdk 설정은 앱이 지원하는 최소 안드로이드 SDK 버전을 정의합니다. 이 값은 앱이 설치될 수 있는 안드로이드 버전의 하한선을 설정합니다. 예를 들어, minSdk = 29로 설정하면, 안드로이드 10(API 레벨 29) 이상을 실행하는 기기에서만 앱을 설치하고 실행할 수 있습니다. 이 설정을 통해 개발자는 해당 버전 이상의 기기에서 앱이 실행될 것임을 보장할 수 있습니다.

targetSdk

targetSdk는 앱이 테스트 및 최적화된 대상 안드로이드 SDK 버전을 나타냅니다. 이 설정은 시스템이 앱을 어떻게 처리할지 결정하는 데 중요한 역할을 합니다. 예를 들어, targetSdk = 33으로 설정하면, 앱은 안드로이드 13(API 레벨 33)의 동작 방식과 권한 요구사항에 최적화되어 있다고 간주됩니다. targetSdk 설정을 통해, 특정 버전의 안드로이드에서 앱이 잘 작동하도록 보장할 수 있습니다.

버전 차이에 의해서 나오는 실행 오류

아래 메시지의 원인은 프로젝트에서 사용하는 androidx.activity:activity:1.8.0 의존성이 Android API 레벨 34 이상을 필요로 하지만, 현재 프로젝트가 Android API 레벨 33으로 컴파일되고 있기 때문입니다. compileSdk 를 수정하면 해결 될 수 있습니다.

An issue was found when checking AAR metadata:

  1.  Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications that
      depend on it to compile against version 34 or later of the
      Android APIs.

      :app is currently compiled against android-33.

      Recommended action: Update this project to use a newer compileSdk
      of at least 34, for example 34.

      Note that updating a library or application's compileSdk (which
      allows newer APIs to be used) can be done separately from updating
      targetSdk (which opts the app in to new runtime behavior) and
      minSdk (which determines which devices the app can be installed
      on).

이러한 설정들은 앱의 호환성, 성능 및 사용자 경험에 중요한 영향을 미칩니다. 따라서 안드로이드 앱 개발 과정에서 각 설정을 신중하게 선택하고 최신 상태로 유지하는 것이 매우 중요합니다.

반응형