티스토리 뷰
개발/안드로이드
[안드로이드 / android] compileSdkVersion vs minSdkVersion vs targetSdkVersion
맨날치킨 2018. 7. 12. 12:14반응형
build.gradle에 설정하는 각 버전들의 의미와 현재 안드로이드의 버전별 점유율을 알아보겠습니다.
compileSdkVersion
compileSdkVersion은 프로젝트가 컴파일 될 때 사용되는 버전입니다. 런타임 동작에는 영향을 주지 않으며, 컴파일 타임에만 영향을 줍니다.
minSdkVersion
minSdkVersion은 구글 플레이에서 어떤 디바이스까지 다운로드가 가능한지 사용되는 로우바운드라고 생각하면 됩니다. 런타임에 영향을 주며, lint를 통해서 개발자들에게 앱에 미칠 수 있는 영향에 대해서 알려줍니다.
targetSdkVersion
targetSdkVersion은 어느 버전까지 테스트가 완료되었는지 Android OS에게 알려주는 값입니다. 이곳에서 정의된 수치로 Android OS 기능들을 런타임에 판단하게 됩니다.
targetSdkVersion을 명시하지 않으면 minSdkVersion으로 대체되어서 사용됩니다.
각 버전별 허용되는 범위와 이상적인 수치
□ 허용되는 수치 (단 컴파일 타임 warning 발생)
minSdkVersion <= targetSdkVersion <= compileSdkVersion
□ 이상적인 수치
minSdkVersion <= targetSdkVersion == compileSdkVersion
안드로이드 버전별 점유율
물론 모든 안드로이드 사용자에게 배포 할 수 있으면 그게 가장 좋겠지만 개발 일정, 라이브러리 지원 여부 등을 따져 타겟을 적절하게 결정해야 합니다.
compileSdkVersion
compileSdkVersion은 프로젝트가 컴파일 될 때 사용되는 버전입니다. 런타임 동작에는 영향을 주지 않으며, 컴파일 타임에만 영향을 줍니다.
minSdkVersion
minSdkVersion은 구글 플레이에서 어떤 디바이스까지 다운로드가 가능한지 사용되는 로우바운드라고 생각하면 됩니다. 런타임에 영향을 주며, lint를 통해서 개발자들에게 앱에 미칠 수 있는 영향에 대해서 알려줍니다.
targetSdkVersion
targetSdkVersion은 어느 버전까지 테스트가 완료되었는지 Android OS에게 알려주는 값입니다. 이곳에서 정의된 수치로 Android OS 기능들을 런타임에 판단하게 됩니다.
targetSdkVersion을 명시하지 않으면 minSdkVersion으로 대체되어서 사용됩니다.
각 버전별 허용되는 범위와 이상적인 수치
□ 허용되는 수치 (단 컴파일 타임 warning 발생)
minSdkVersion <= targetSdkVersion <= compileSdkVersion
□ 이상적인 수치
minSdkVersion <= targetSdkVersion == compileSdkVersion
안드로이드 버전별 점유율
minSdkVersion을 KitKat 이상으로만 적용해도 대부분(95%이상)의 안드로이드 사용자에게 앱을 배포 할 수 있습니다.
물론 모든 안드로이드 사용자에게 배포 할 수 있으면 그게 가장 좋겠지만 개발 일정, 라이브러리 지원 여부 등을 따져 타겟을 적절하게 결정해야 합니다.
반응형
'개발 > 안드로이드' 카테고리의 다른 글
[안드로이드 / android] APK Version, App Version 설정 및 값 받아오기 (0) | 2018.07.16 |
---|---|
[안드로이드 / android] Custom AppBar & left margin 지우기 (0) | 2018.07.13 |
[안드로이드 / android] Code Style #2 (0) | 2018.07.10 |
[안드로이드 / android] Code Style #1 (0) | 2018.07.09 |
[안드로이드 / android] 그래들(gradle) 빌드 최적화 (0) | 2018.07.06 |
댓글
공지사항
최근에 올라온 글