SDK 버전
minSdkVersion <= targetSdkVersion == compileSdkVersion
[Target API level requirements for Google Play apps]
Starting August 31 2024: New apps and app updates must target Android 14 (API level 34) to be submitted to Google Play (except for Wear OS and Android TV apps, which must target Android 13 or higher).
compileSdkVersion : 앱을 빌드할 때 사용할 SDK 버전
앱의 코드가 어떤 Android 버전의 API를 사용하여 컴파일되는지를 결정한다. 최신 기능과 API를 사용하려면 최신 버전을 사용하는 것이 좋다.
API 34(Android 14, Upside Down Cake)
가장 최근의 안정 버전인 API 34를 사용한다.
targetSdkVersion : 앱이 실행될 때 타겟팅할 SDK 버전
앱이 어떤 Android 버전에서 최적으로 실행되도록 테스트되었는지를 나타낸다. targetSdkVersion은 가능한 최신 버전을 사용하는 것이 권장된다. 최신 버전을 설정하면 그 버전의 동작 변경 사항과 최적화 기능을 테스트하고 대응할 수 있다.
API 34(Android 14, Upside Down Cake)
compileSdkVersion와 동일하게 가장 최근의 안정 버전인 API 34를 사용한다.
minSdkVersion : 앱이 지원하는 최소 SDK 버전
minSdkVersion 버전보다 낮은 버전을 사용하는 기기에서는 앱이 설치되지 않는다. 이 값을 설정할 때는 타겟 사용자의 기기 분포를 고려해야 한다. 가능한 낮게 설정하면 더 많은 기기에서 앱을 사용할 수 있지만, 너무 낮게 설정하면 최신 API와 기능을 사용할 수 없다.
API 26(Android 8.0, Oreo)
누가 버전(Nougat, 24)은 2019년 10월자로 보안 업데이트가 중단되어 해킹의 위험이 있는데다, API 26까지의 전세계 점유율이 95.4%이며 앞으로도 계속 늘어날 것이기 때문이다.
개발자로서는 API 26 이전의 백그라운드 실행방식을 고려하지 않아도 되며, API 25 이하가 minSDK일 때 분기처리가 필요하다는 것을 의미하기 때문에 26버전을 선택했다.
예를 들어, 알림(Notifications)의 경우 Android 7과 8에서 가장 많이 변경되었다. 26 미만의 minSDK를 지원하는 경우 버전 별 분기 처리를 해주어야 한다.
[참고 레퍼런스]