이전 안드로이드를 배우면서 sdk에 대해선 어느정도 이해하고 있었지만, 다른 사람에게 설명하거나,
명확한 이해자료를 보관하기 위해 글로 작성하여 남긴다.
실제 앱을 배포시 반드시 고려해야 할 상황 중 하나이다.
Gradle Scripts에서 bulid.gradle(Module : app)에서 다음을 확인 할 수 있을 것이다.
compileSdkVersion
-
Gradle에 어떤 안드로이드 SDK 버전으로 앱을 컴파일 할 것인지 알려줍니다 . 즉, 지원할 수 있는 가장 높은 API 버전을 의미합니다.
해당 SDK 버전에 포함된 API를 사용할 수 있다는 것을 의미합니다. -
컴파일시에만 적용되므로 런타임동안에는 영향을 미치지 않습니다.
-
항상 최신 버전의 SDK로 지정하는 것이 좋습니다.
-
import문으로참조되는 클래스나 메소드를 찾을 때 어떤 버전의 SDK에서 찾을 것인가를 결정해줍니다.
minSdkVersion
-
minSdkVersion보다 낮은 API 버전 앱은 설치할 수 없습니다.
-
minSdkVersion보다 높은 API를 사용하면 lint에서 경고를 띄워 알려줍니다.
-
Support Library나 Google Play Service는 자체 minSdkVersion을 가지므로 이 중 가장 높은 버전으로 맞춰야 합니다.
-
minSdkVersion 은 앱이 지원할 가장 낮은 API버전을 지정합니다.
-
Google Play에서 사용자의 기기에 앱이 설치될 수 있을지 결정하는 요소입니다.
-
minSdkVersion보다 높은 API를 사용하면 lint에서 경고를 띄워 알려주므로 미리 방지할 수 있습니다.
-
Support Library나 Google Play Service는 자체 minSdkVersion을 가지므로 이중 가장 높은 버전 이상으로 맞춰야 합니다.
targetSdkVersion
-
minSdkVersion 이상에서 지원하는 어떤 기능을 사용하고자 위함입니다.
-
실제 컴파일에는 관여하지 않음. 빌드시 버전을 낮추어도 원하는 클래스의 메소드를 컴파일 할 수 있습니다.
-
지정한 버전까지 앱을 테스트 했음을 의미합니다. 기기가 Nougat(API 24)더라도 target이 Marshmellow(API 23)이라면 Marshmellow 단말기까지는 정상동작 됨을 의미하며 Nougat기기는 정상적으로 돌아갈지 확신할 수 없습니다. 상위호환되는 API로 개발을 했다면 아마 잘 돌아갈 것 입니다.
-
즉 targetSdkVersion이 달라야 앱의 행동 로직이 달라지므로, 안드로이드가 상위호환성을 제공할 수 있습니다.
-
Marshmellow(API 23)에서 도입된 런타임 퍼미션(runtime permission model)은 targetSdkVersion 을 API 23으로 지정해야 적용됩니다.
compileSdkVersion을 25로하고 targetSdkVersion을 21로하면 Marshmellow 이상 단말기에서 런타임 퍼미션이 Marshmellow 이전처럼 강제 허용되어 있습니다. 허용을 해제하려고하면 이전 버전으로 빌드된 앱이라고 메시지가 출력됩니다.
-
targetSdkVersion이 22이라면 22이후 버전에서 지원되는 기능이 제외된 앱이 만들어지므로 런타임 퍼미션을 사용 못하는 것입니다.
타겟으로 하는 SdkVersion 이라는 뜻은 코드가 그 SdkVersion에 최적화 되었다 라고 볼 수 있습니다.
즉 Api21의 기능과 UI를 기준으로 앱의 디자인과 개발이 된 상태라면, 굳이 최신인 API25를 기준으로 하는 것을 오히려 좋지 않을 수 있습니다.
개발자가 예상하지 못하는 UI나 기능들을 API25의 플랫폼을 사용하는 유저가 접하게 될수도 있기 때문입니다.
따라서 이 targetSdkVersion 에서 만큼은 최신버전이 아니라 최적의 버전을 선택해서 사용해야 한다가 답이라고 할 수 있습니다.
물론 Android가 개발해놓은 최신 UI와 기능들을 API에 최적화 시켜 개발한다면 targetSdkVersion 도 최신버전을 사용 할 수 있습니다.
==========================================================================
다음은 점유율 자료이다.
안드로이드 홈페이지의 대시보드를 자료와 스탯 카운터(아시아)의 자료를 확인하였다.
https://developer.android.com/about/dashboards/
안드로이드 공식 홈페이지 대시보드 자료
배포 대시보드 | Android Developers
Android 생태계 내 활성화되어 있는 기기 특성 및 플랫폼 버전 개요
developer.android.com
스탯 카운터, 인터넷을 사용하기 위한 도구인 브라우저를 통해
사용자의 컴퓨터 사용 환경을 파악하여 주기적으로 사용 현환을 발표하는 아일랜드 웹분석 업체
https://gs.statcounter.com/android-version-market-share/mobile-tablet/asia
Mobile & Tablet Android Version Market Share Asia | StatCounter Global Stats
This graph shows the market share of mobile & tablet android versions in Asia based on over 10 billion monthly page views.
gs.statcounter.com
안드로이드 대시보드 홈페이지 기준 Pie(10.4%)와 Oreo(8.0+8.1)[12.9%, 15.4%] 약 38.7%로 나타나며
statcounter - 아시아(기준)으로는 Pie(29.04%)와 Oreo(8.0+8.1)-[7.19%, 19.32%] 약 56.36%로 나타난다.
참고 블로그 및 자료
https://duzi077.tistory.com/141
[Android] compileSdkVersion, targetSdkVersion 등 SDK 버전 설정 이해하기
compileSdkVersion, targetSdkVersion 등 SDK 버전 설정 알아보기 개념은 어설프게 알아와서 이번 포스팅으로 정확하게 이해하기 위해 정리했습니다. 안드로이드는 상위호환성을 중요시하기때문에 compileSdkVersi..
duzi077.tistory.com
https://jw910911.tistory.com/49
안드로이드 - compilesdkversion minsdkversion targetsdkversion buildtoolsversion
보통 이런 문제가 발생하게되면 compilesdkversion, minsdkversion 등을 확인해보게 됩니다. 그렇지만 잘 알고 쓴적은 없어서 이번기회에 한번 정리해보겠습니다. compileSdkVersion compileSdkVersion으로 gradle..
jw910911.tistory.com
Web, Android, iOS 개발 문의 및 앱 웹 제작 문의
Email : funidea2020@naver.com
https://funidea.co.kr/
https://funidea.co.kr/
AI 챗봇 & 사물인식 사물 인식, 인공지능 챗봇 등 Smart한 인공지능 기술을 통해 반복 업무를 줄여 보세요. 위치 기반 서비스 GPS 기능을 활용하여 현재 위치를 기준으로 주변 정보(은행, 음식점, 주�
funidea.co.kr
여성 신체 사이즈 기반 상품 추천 서비스!
나에게 딱 맞은 골라보자! Fit Me !
https://fit-me.kr/
핏미 - 사이즈 고민 없는 여성 쇼핑앱
더이상의 사이즈 고민은 그만! 수많은 여성 쇼핑몰을 한눈에! - 핏미
fit-me.kr
'Android' 카테고리의 다른 글
[안드로이드 링크 정리] Camera API2 관련 링크 정리(2) 2019_11_25 ~2019_11_30 (0) | 2019.12.01 |
---|---|
[안드로이드 링크 정리]프래그먼트 생명주기 & 프래그먼트 관련 용어 정리 2019_11_25 ~2019_11_30 링크(1) (0) | 2019.12.01 |
Android에서 제공하는 Mobile Sensor를 이용하여 핸드폰 기울기 측정 (0) | 2019.11.24 |
[Android] SurfaceView를 이용한 카메리 기능 구현하기(1) (0) | 2019.11.24 |
human Pose estimation Mobile Github Link (포즈 추정 깃허브 링크 자료 모음) (0) | 2019.11.24 |