Study/Android

compileSdk vs targetSdk

hegunhee 2024. 2. 21. 13:36

최근에 플레이스토어에 올려놨던 앱의 새 버전을 올려놓으려 구글 콘솔에 aab파일을 올려놨지만
targetSdk를 설정하지 않았다는 이유로 누락이 되었습니다.

찾아보니 build-logic 작업을 하던도중 compileSdk만 설정되어있고
targetSdk를 누락시켜서 해당 상황이 만들어졌던것이었습니다.

그때 궁금했던점이 targetSdk와 compileSdk의 차이는 무엇일까 하면서 정보를 찾아보고 유튜브 영상도 보게되었습니다.

https://www.youtube.com/watch?v=nXXvWXgXEYs

평소에 자주 보는 Android 영상입니다.

CompileSdk (컴파일타임)

compileSdk는 앱을 컴파일 하는데 사용할 SDK버전을 말합니다.
compileSdk를 최신으로 설정하면 최신 API를 엑세스할 수 있습니다.
compileSdk는 컴파일 시에만 사용되며 aab,apk 파일에 포함되지 않습니다.
때문에 compileSdk를 항상 최신으로 유지하는것이 좋습니다.
CompileSdk를 최신으로 유지한다면 다음과같은 이점을 얻을 수 있습니다.

  • 새로운 API에 대한 컴파일 검사를 받을 수 있다.
  • 새로운 API를 사용할 수 있도록 돕는다.
  • 그리고 새롭게 사용되지 않는 API를 피할 수 있게 도와준다.

TargetSdk (런타임)

targetSdk는 앱에서 새로운 기능을 사용할 수 있는지 여부를 알려줍니다.
targetSdk는 앱이 테스트된 Android SDK 버전을 시스템에 알려주는 속성입니다.
targetSdk는 컴파일에 사용되지 않습니다. 지정된 SDK 버전에 대하여 애플리케이션을 테스트했음을 가리킵니다.
새로운 API에 대한 대응이 되지 않았을 경우 targetSdk를 compileSdk보다 낮추어 호환성을 제공할 수 있습니다.

 

targetSdk는 컴파일 중에 알지 못하는 대상을 targetSdk로 지정할 수 없기 때문에 compileSdk보다 높을 수 없습니다. (targetSdk ≤ compileSdk) 물론 구글에서는 동일하게 유지하도록 권장하고있습니다.

minSdkVersion

해당 앱을 구동할 수 있는 최소 버전입니다.
플랫폼의 OS버전이 minSdkVersion보다 낮을 경우 앱이 설치되지 않습니다.

 

작업한 앱이 궁금하다면 여기 링크로 오시면 보실 수 있습니다.

https://github.com/hegunhee/Routiner

 

GitHub - hegunhee/Routiner

Contribute to hegunhee/Routiner development by creating an account on GitHub.

github.com

 

출처 : https://ovso.tistory.com/428

 

[안드로이드 ] compileSdk 버전 vs. targetSdk 버전

두 SDK 버전(compileSdk와 targetSdk)의 역할 두 SDK 버전(compileSdk, targetSdk)은 Android 에서 호환성을 처리하는데 중요하다. compileSdk 과 targetSdk 는 완전히 다른 의미와 목적을 가지고 있다. compileSdk 버전 compi

ovso.tistory.com

https://www.youtube.com/watch?v=nXXvWXgXEYs