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 점유율
'안드로이드 > 기초' 카테고리의 다른 글
[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 |