본문 바로가기
안드로이드/기초

[Android] targetSdkVersion, compileSdkVersion,minSdkVersion

by 보우마스터 2024. 5. 7.

TargetSdkVersion

정의 : 앱이 기기에서 동작할 때 사용되는 Android API 버전을 의미(런타임)

앱은 기본적으로 targetSdkVersion에 명시된 API버전을 기준으로 동작합니다. 예외적으로 기기 OS버전이 낮아 아직 targetSdkVersion의 API 버전을 지원하지 않을 경우 기기 OS 버전을 따라갑니다.

  • OS version > TargetSdkVersion
    ex> 설정  : 기기 os : API 26 / 앱 TargetVersion : API : 24
           구현  : 기기는 API 26에서 제공하는 기능을 사용할 수 있지만 앱은 API 24베이스로 동작
  • OS version == TargetSdkVersion
    ex> 설정 : 기기 os : API 26 / 앱 TargetVersion : API : 26
           구현  :앱은 API 26 베이스로 동작
  • OS version < TargetSdkVersion
    ex> 설정 : 기기 os : API 26 / 앱 TargetVersion : API : 27
           구현  :앱은 기기의 OS 버전인 API 26베이스로 동작

compileSdkVersion

정의 : 컴파일 시 사용되는 Android API 버전을 의미 (컴파일 타임)

실제 개발 중 사용할 수 있는 android API 범위는 compileSdkVersion 에 의해 결정됩니다. compileSdkVersion 값은 가급적 최신으로 유지하기를 권장하는데, targetSdkVersion 을 변경하지 않는 한 실제 배포되는 앱에 대한 사이드 이펙트가 없기 때문입니다.

보통 최신 API 가 나오면 compileSdkVersion 을 먼저 올려서, 최신 API에 대한 대응이 완료된 후 targetSdkVersion 을 올립니다. 만약 최신 버전 API 에서 새로 생긴 기능이 있고 이를 추가할 경우 warning 을 통해 하위 버전에서는 작동하지 않으므로 분기 처리를 요구합니다.

minSdkVersion

정의 : 해당 앱을 구동할 수 있는 최소 커트라인

 플랫폼의 OS 버전이 minSdkVersion 보다 낮을경우 앱이 설치되지 않습니다.

API Version별 특징

21 Lollipop

  • ART를 기본 런타임환경으로 채용 : Dalvik 런타임—> ART 변경하면서 구동 퍼포먼스가 향상
  • OpenGL ES 3.1지원 : 그래픽처리에서 더 많은 기능을 사용할 수 있게 되었습니다.
  • 머테리얼 디자인 지원 : 구글에서 제시한 플랫 디자인을 사용핳 수 있게 되었습니다.

23 Marshmallow

  • 런타임 퍼미션 채용 : GPS나 파일쓰기 등 권한이 필요할 때 앱 실행중에 권한을 추가적으로 요청함으로써 사용자의 주의를 환기시킴

24 Nougat

  • ART 엔진 개선 : 기존 ART 런타임 → ART + JIT 형태로 변경
  • OpenGL ES 3.2지원 : 그래픽 처리에서 좀더 기능향상

26 Oreo

  • 백그라운드 실행제한 : 리소스 관리를 하기 위해 설계 부분이 많이 변경되었다.

Os 점유율

https://gs.statcounter.com/

https://www.appbrain.com/stats

'안드로이드 > 기초' 카테고리의 다른 글

[Android/Compose] TextToSpeech(tts) 구현하기  (0) 2024.05.17
[Android] Android Version들 간의 호환성 관계  (0) 2024.05.09
[Android] Gradle이란?  (0) 2024.05.06
[Android] Intent란?  (0) 2024.05.06
[Android] Context란?  (0) 2024.05.06