Android SDK Version

minjeong·2023년 4월 17일
1

"안드로이드 앱을 어떤 버전까지 지원할 것인가? 어떤 버전을 기준으로 최적화하였나?"라는 고민은 "Android SDK Version 세팅을 어떻게 할 것인가?"라는 결정 사항으로 이어진다.

build.gradle

android {
    compileSdkVersion 31

    defaultConfig {
        targetSdkVersion 31
    }
}

AndroidManifest.xml

<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer" />

개념 정리

  • android:minSdkVersion
    • 애플리케이션이 실행하는데 필요한 최소 API 수준 지정하는 정수.
    • Android 시스템은 시스템의 API 수준이 속성에 지정된 값보다 낮은 경우, 사용자가 애플리케이션을 설치하지 못하도록 제한한다.
  • android:targetSdkVersion
    • 개발자가 테스트 완료한 API 중 가장 최신 버전의 API 수준 지정하는 정수.
    • 최적화된 버전으로 명시하는 값이다.
    • Android의 새 버전이 출시되었을 때 시스템은 앱이 예상(=개발자가 테스트 완료)한 대로 동작할 수 있게 호환성 동작 처리를 사용한다.
  • compileSdkVersion
    • 어떤 안드로이드 SDK 버전으로 앱을 컴파일 할 것인지 명시하는 정수.

→ 결론: minSdkVersion <= targetSdkVersion == compileSdkVersion

Android 플랫폼 버전이 지원하는 API 수준

플랫폼 버전 - API 수준
(2023-03 기준)

Android 13 [Beta] - API 32 (= T 베타 2)

Android 12    - API 31, 32

Android 11    - API 30

Android 10    - API 29

Android 9 = Pie  - API 28

Andrid OS (추정) 점유율

  • Android 9.0 (Pie) = API 28 이상 ⬆️: > 84.5%
  • Android 8 (Oreo) = API 26 이상 ⬆️: > 91.4%
  • Android 7 (Nougat) = API 24 이상 ⬆️: > 96.0%

출처: https://www.appbrain.com/stats/top-android-sdk-versions

Google Play 앱의 대상 API 수준 요구사항

targetSdkVersion ≥ 31

https://support.google.com/googleplay/android-developer/answer/11926878

(대상 API 수준 = targetSdkVersion으로 이해함)

  • 기존 앱이 targetSdkVersion < 30인 경우 Android 11 이상이 설치된 안드로이드 단말에서는 앱이 더이상 표시되지 않는다. (설치 불가능)
  • 기존 앱이 API 레벨 30 수준 이상을 타겟팅하도록 강제하고 있다.
  • 신규 앱을 게시하기 위해서는 API 레벨 31 수준 이상을 타겟팅하도록 제한하고 있다.

출처

https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=ko

https://velog.io/@jaeyunn_15/Android-SDK-Version-설정을-왜-그-버전으로-할까

profile
신입 개발자 👩‍💻

0개의 댓글