[Android] Sdk Version

찐흙덩어리·2024년 3월 28일

상위호환성

- 예전 버전이 최신 단말기에서 실행이 잘 된다면 '상위 호환'
- ex) 최신 단말기에 터치로 확대/축소 기능이 추가되었을 때 예전 버전을 실행해도 이 기능이 동작 한다면 상위 호환

하위호환성

- 이전 버전에서 만든 입력값을 처리할 수 있다면 '하위 호환'
- 이전 버전에서 만든 기능을 다음 버전에 삭제하지 않고 그대로 가져감

compileSdkVersion

  • gradle에 어떤 안드로이드 SDK 버전으로 앱을 컴파일 할 것인지 알려준다. (지원되는 가장 높은 API 버전을 의미)
  • 컴파일시에만 적용되므로 런타임 동안에는 영향을 미치지 않는다.
  • 쉽게 얘기해서 코딩할 때 해당 API 버전까지 지원이 된다.

minSdkVersion

  • minSdkVersion보다 낮은 API 버전 앱은 설치할 수 없다.
  • minSdkVersion보다 높은 API를 사용하면 lint에서 경고를 띄워 알려준다.

targetSdkVersion

  • minSdkVersion 이상에서 지원하는 어떤 기능을 사용하고자 하는 위함.

  • 실제 컴파일에는 관여하지 않는다. 빌드 시 버전을 낮추어도 원하는 클래스의 메소드를 컴파일 할 수 있다.

  • ex) 단말기가 API24, targetSdkVersion이 API23 이라면 API23 단말기 까지는 정상작동이 됨을 의미하며, 상위호환이 되지 않는 버전이라면 정상 동작 여부는 알 수 없다.

  • 즉, targetSdkVersion에 따라 앱의 행동 로직이 달라진다.

  • Google Store에 업로드를 할 때 최소로 요구하는 API 레벨이 있는데, 해당 레벨을 맞추지 못하면 리젝의 사유가 됨.

Sdk 버전의 관계

minSdkVersion <= targetSdkVersion <= compileSdkVersion

안정적인 앱을 원한다면

minSdkVersion <= targetSdkVersion == compileSdkVersion
profile
메모장용

0개의 댓글