"최소 SDK 버전 / 대상 SDK 버전"과 "컴팩 SDK 버전"의 차이점은 무엇입니까? 최소 및 대상 SDK의 의미는 알고 있지만 SDK 버전 컴파일의 의미는 무엇입니까?
Eclipse에는 min / max 및 target sdk가 있지만 android studio에는 이러한 세 가지 설정이 있습니다.
"최소 SDK 버전 / 대상 SDK 버전"과 "컴팩 SDK 버전"의 차이점은 무엇입니까? 최소 및 대상 SDK의 의미는 알고 있지만 SDK 버전 컴파일의 의미는 무엇입니까?
Eclipse에는 min / max 및 target sdk가 있지만 android studio에는 이러한 세 가지 설정이 있습니다.
답변:
분 SDK 버전은 응용 프로그램에서 실행할 수있는 안드로이드 SDK의 초기 릴리스입니다. 일반적으로 이는 이전 API의 문제, 기능 부족 또는 기타 동작 문제 때문입니다.
대상 SDK 버전은 응용 프로그램이 된 버전입니다 대상 에 실행합니다. 이상적으로는 일종의 최적의 실행 조건 때문입니다. "버전 19 용 앱을 만들려면"이 위치를 지정하십시오. 이전 또는 이후 릴리스에서 실행될 수 있지만 이것이 목표입니다. 이것은 주로 시장에서 응용 프로그램이 사용되는 현재 상태를 나타냅니다.
컴파일 SDK 버전은 당신의 IDE (또는 내가 생각 컴파일의 다른 수단) 당신이 게시 할 때 응용 프로그램을 만드는 데 사용하는 안드로이드의 버전입니다 .apk
파일을. 응용 프로그램을 개발할 때 일반적으로 응용 프로그램을 컴파일해야하므로 응용 프로그램을 테스트하는 데 유용합니다. 이것은 APK로 컴파일하는 버전이므로 당연히 릴리스 버전이됩니다. 마찬가지로 대상 SDK 버전과 일치하는 것이 좋습니다.
공식은
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion- 애플리케이션을 설치할 수있는 최소 Android 버전을 정의하는 마커입니다. 또한 Lint는 존재하지 않는 API 호출을 방지하기 위해 사용합니다. 또한 빌드 시간에 영향을 미칩니다. 따라서 빌드 플레이버를 사용하여 개발 중에 minSdkVersion을 최대 값으로 대체 할 수 있습니다. Android 팀에서 제공하는 모든 개선 사항을 사용하여 더 빠르게 빌드하는 데 도움이됩니다. 예를 들어, 일부 기능 Java 8은 특정 버전의 minSdkVersion에서만 사용 가능합니다.
targetSdkVersion -Android 시스템에서 특정 동작 변경 사항을 설정합니다.
예를 들면 다음과 같습니다.
Android 6.0부터 (API 레벨 23) Runtime Permissions
도입되었습니다. targetSdkVersion
22 이하로 설정 하면 응용 프로그램이 런타임에 일부 권한을 요청하지 않습니다.
Android 8.0 (API 레벨 26)부터 모든 notifications
채널에 할당되어야합니다. 그렇지 않으면 나타나지 않습니다. Android 7.1 (API 레벨 25) 이하를 실행하는 기기에서 사용자는 앱별로 만 알림을 관리 할 수 있습니다 (효과적으로 각 앱에는 Android 7.1 이하에서 하나의 채널 만 있음).
Android 9 (API 레벨 28)부터 시작 Web-based data directories separated by process
합니다. 경우 targetSdkVersion
28+ 그리고 당신은 몇 가지 만들어 WebView
다른 프로세스를 당신은 얻을 것이다java.lang.RuntimeException
compileSdkVersion- 실제로는 SDK 플랫폼 버전이며 Gradle에게 어떤 Android SDK가 컴파일에 사용하는지 알려줍니다. .java
Android SDK에서 새로운 기능이나 디버그 파일 을 사용하려면 compileSdkVersion을 관리해야합니다. 또 다른 예는 AndroidX 를 사용하여 강제로 compileSdkVersion
레벨 28 을 사용 compileSdkVersion
하는 것입니다. APK에는 포함되어 있지 않습니다compile time
. 순전히에 사용됩니다 . compileSdkVersion을 변경해도 런타임 동작은 변경되지 않습니다. 예를 들어 새로운 컴파일러 경고 / 오류를 생성 할 수 있습니다. 따라서 항상 최신 SDK로 컴파일하는 것이 좋습니다. 기존 코드에 대한 새로운 컴파일 검사의 모든 이점을 얻고, 더 이상 사용되지 않는 API를 피하고 새로운 API를 사용할 수 있습니다. 하나 더 사실은compileSdkVersion >= Support Library version
자세한 내용은 여기를 참조 하십시오 . 또한 Android 8.0 으로 마이그레이션 하는 예를 살펴 보는 것이 좋습니다 .
compileSdkVersion : compileSdkVersion은 앱이 컴파일되는 API의 버전입니다. 즉, 해당 버전의 API에 포함 된 Android API 기능 (및 모든 이전 버전)을 사용할 수 있습니다. API 16 기능을 사용하려고하지만 compileSdkVersion을 15로 설정하면 컴파일 오류가 발생합니다. compileSdkVersion을 16으로 설정하면 API 15 장치에서 앱을 계속 실행할 수 있습니다.
minSdkVersion : min sdk 버전은 애플리케이션을 실행하는 데 필요한 최소 버전의 Android 운영 체제입니다.
targetSdkVersion : 대상 SDK 버전은 앱이 실행되는 버전입니다.