compileSdkVersion
compileSdkVersion은 컴파일러가 사용하는 안드로이드 SDK 버전을 지정합니다. 이 버전은 코드를 컴파일할 때 사용되며, 해당 버전에서 제공하는 모든 API와 클래스를 사용할 수 있습니다. 이를 통해 개발자는 최신 기능을 활용할 수 있습니다.
compileSdkVersion을 낮게 설정하면
1. 개발자가 사용하려는 최신 라이브러리나 API가 지원되지 않을 가능성이 있으며 앱이 실행되는 디바이스의 최신 안드로이드 OS 버전에서 사용 가능한 기능들을 활용하지 못할 수 있습니다.
2. 앱을 빌드할 때 컴파일러가 해당 버전에서 제공되는 최신 기능을 사용하지 못하기 때문에, 앱이 제대로 빌드되지 않거나 오류가 발생할 수 있습니다.
3. 해당 안드로이드 OS 버전에서 발생한 보안 이슈나 버그 패치를 반영하지 못하게 됩니다.
minSdkVersion
minSdkVersion은 앱이 실행되기 위해 필요한 최소한의 안드로이드 SDK 버전입니다. 이 값은 사용자가 앱을 설치하기 위해 필요한 최소한의 Android 운영체제 버전을 나타냅니다. 즉, 이 버전보다 낮은 Android 운영체제를 실행하는 디바이스에서는 앱이 설치되지 않습니다. 이 값을 높게 지정하면 해당 SDK 버전보다 낮은 Android 운영체제 버전을 실행하는 디바이스에서 앱을 설치할 수 없습니다.
targetSdkVersion
targetSdkVersion은 앱이 최적화되어 실행되는 Android 운영체제의 버전을 나타냅니다. 이 값은 minSdkVersion보다 높을 수 있으며 특정 Android 운영체제 버전에 대한 최적화와 호환성을 보장하기 위해 사용됩니다. 높은 targetSdkVersion은 안드로이드의 새로운 기능과 업데이트를 제공하고 앱이 더욱 최적화되고 안정적으로 실행될 수 있도록 해줍니다.
targetSdkVersion을 낮게 설정하면
1. 안드로이드 앱이 최신 버전의 안드로이드 OS에서도 구동될 수 있지만, 일부 새로운 기능이나 개선된 보안 기능 등을 사용할 수 없게 됩니다.
2. targetSdkVersion을 낮게 설정하면 구버전의 안드로이드 OS에서는 앱이 제대로 동작하지만, 최신 버전의 안드로이드 OS에서는 예기치 않은 문제가 발생할 수 있습니다. 예를 들어, 새로운 안드로이드 OS에서는 더 이상 지원되지 않는 API를 사용하거나, 새로운 보안 정책을 따르지 않는 등의 문제가 발생할 수 있습니다.
3. 안드로이드 OS에서 지원되는 새로운 기능을 사용할 수 없습니다.
4. targetSdkVersion은 앱이 지원하는 Android API 레벨을 정의하므로 2번에서도 말씀드린 것처럼 해당 Android API 레벨 이전의 보안 이슈가 발생할 가능성이 높아집니다.
마치며
최신 버전의 안드로이드 OS가 발표될 때 마다 targetSdkVersion에 대해서 테스트가 필요하며 구 버전의 안드로이드 OS에서도 제대로 동작할 수 있도록 targetSdkVersion을 적절하게 설정하는 것이 중요합니다.
가능한 한 최신의 targetSdkVersion을 사용하는 것이 좋습니다.
위의 3가지 SdkVersion은 minSdkVersion <= targetSdkVersion == compileSdkVersion 과 같이 정의해서 사용하면 괜찮을 것 같습니다.
'프로그래밍 > Android' 카테고리의 다른 글
가상 디바이스(Virtual Device) 생성 (0) | 2023.04.10 |
---|---|
안드로이드 스튜디오 설정(Settings) (0) | 2023.04.10 |
buildToolsVersion (0) | 2023.04.06 |
Android의 앱 호환성 (0) | 2023.04.05 |
핸들러(Handler), 메시지 큐(MessageQueue), 루퍼(Looper) (0) | 2023.03.09 |
댓글