min SDK version/target SDK version과 complete SDK version의 차이점은 무엇입니까?
"min sdk version/target sdk version"과 "compile sdk version"의 차이점은 무엇입니까?min과 target sdk가 무슨 뜻인지는 아는데 complete sdk version이 무슨 뜻입니까?
이클립스에서는 min/max와 target sdk가 있지만 안드로이드 스튜디오에서는 이 세가지 설정이 있습니다.
min sdk 버전은 응용 프로그램이 실행할 수 있는 Android SDK의 가장 초기 릴리스입니다.일반적으로 이는 이전 API의 문제, 기능 부족 또는 기타 동작 문제 때문입니다.
대상 sdk 버전은 응용 프로그램을 실행할 대상 버전입니다.이상적으로, 이것은 일종의 최적 실행 조건 때문입니다.만약 당신이 "버전 19를 위한 당신의 앱"을 만든다면, 이것이 바로 여기에 명시될 것입니다.이전 버전이나 이후 버전에서 실행될 수도 있지만, 이것이 당신이 목표로 했던 것입니다.이는 대부분 시장 등에서 사용할 응용 프로그램이 얼마나 최신인지를 나타내기 위한 것입니다.
컴파일 sdk 버전은 당신의 IDE(또는 다른 컴파일 수단)가 당신이 게시할 때 당신의 앱을 만들기 위해 사용하는 안드로이드 버전입니다..apk
file때데합니다.file. 이것은 당신이 개발할 때 당신의 앱을 컴파일하는 것이 일반적인 필요이기 때문에 당신의 앱을 테스트하는데 유용합니다.이것이 APK에 컴파일하는 버전이 될 것이기 때문에 당연히 당신의 릴리스 버전이 될 것입니다.마찬가지로 목표 sdk 버전과 일치하도록 하는 것이 좋습니다.
minSdkVersion, targetSdkVersion, completeSdkVersion
공식은
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion - 응용프로그램이 설치할 수 있는 최소 Android 버전을 정의하는 마커입니다.또한 존재하지 않는 API 호출을 방지하기 위해 Lint에서 사용합니다.또한 빌드 타임에도 영향을 미칩니다.따라서 빌드 플레이버를 사용하여 개발 중에 minSdkVersion을 최대치로 재정의할 수 있습니다.Android 팀이 제공하는 모든 개선 사항을 사용하여 빌드를 더 빠르게 만드는 데 도움이 될 것입니다.예를 들어 특정 버전의 minSdkVersion을 사용하는 경우에만 Java 8의 일부 기능을 사용할 수 있습니다.
targetSdkVersion - if AndroidOS 버전은>= targetSdkVersion
Android 시스템에서 특정(새로운) 전원을 켜라고 합니다.behavior
변화들.*이러한 새로운 동작 중 일부는 생각하더라도 기본적으로 켜집니다.targetSdkVersion
이다 ㅇ<
은 공식적인 문서를 , 은 를 를 은 .
예를 들어,
6 23) Android 6.0 (API level 23)부터
Runtime Permissions
소개되었습니다.을targetSdkVersion
22 이하의 응용프로그램은 사용자에게 실행 시간에 대한 일부 권한을 요구하지 않습니다.8 26)부터 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
completeSdkVersion - 실제로는 SDK Platform 버전이며, Android SDK가 컴파일할 때 사용하는 것을 Gradle에게 알려줍니다.새 기능 또는 디버그를 사용하려는 경우.java
Android SDK의 파일은 completeSdkVersion을 처리해야 합니다.또 하나의 예는 강제로 사용하는 AndroidX를 사용하는 것입니다.compileSdkVersion
28. -벨 28.compileSdkVersion
APK에 포함되지 않음: 순수하게 사용됩니다.compile time
동작은 . completeSdkVersion을 변경해도 런타임 동작은 변경되지 않습니다.예를 들어 새로운 컴파일러 경고/오류를 생성할 수 있습니다.따라서 항상 최신 SDK로 컴파일하는 것이 좋습니다.기존 코드에 대한 새로운 컴파일 검사의 모든 이점을 얻을 수 있고, 새로 사용하지 않는 API를 피할 수 있으며, 새로운 API를 사용할 준비가 될 수 있습니다. 한 은 ㅇㅇㅇ입니다.compileSdkVersion >= Support Library version
자세한 내용은 여기서 확인하실 수 있습니다.또한 안드로이드 8.0으로의 마이그레이션 예를 한 번 살펴보시기 바랍니다.
min sdk 버전은 응용 프로그램을 실행하는 데 필요한 Android 운영 체제의 최소 버전입니다.
대상 sdk 버전은 앱이 실행되도록 만든 Android 버전입니다.
컴파일 sdk 버전은 빌드 도구가 릴리스, 실행 또는 디버그하기 위해 응용 프로그램을 컴파일하고 빌드하는 데 사용하는 Android 버전입니다.
보통 컴파일 sdk 버전과 타겟 sdk 버전이 같습니다.
completeSdkVersion : completeSdkVersion은 앱이 컴파일되는 API의 버전입니다.이는 해당 버전의 API에 포함된 Android API 기능을 사용할 수 있음을 의미합니다.API 16 기능을 사용해 보되 completeSdkVersion을 15로 설정하면 컴파일 오류가 발생합니다.completeSdkVersion을 16으로 설정해도 API 15 장치에서 앱을 실행할 수 있습니다.
minSdkVersion : minsdkVersion은 어플리케이션 실행에 필요한 Android 운영체제의 최소 버전입니다.
targetSdkVersion : targetsdk version은 앱을 실행할 대상 버전입니다.
- completeSdkVersion은 Gradle이 앱을 컴파일하는 데 사용할 Android SDK 버전을 정의합니다.
예를 들어,
안드로이드 12에서는 SDK 버전 31에서는 스플래시 화면을 쉽게 구현할 수 있는 새로운 API가 도입되었습니다.이 새 API에서는 다음 속성을 사용하여 스플래시 화면을 사용자 지정할 수 있습니다.
앱에서 해당 API를 사용하려면 먼저 다음 작업을 수행해야 합니다.
i) download SDK version 31 in Android Studio,
ii) and then: update compileSdkVersion to 31 in your app.
그래야만 이러한 새 속성을 볼 수 있습니다.그래야만 코드에 이 새로운 스플래시 스크린 API를 사용할 수 있습니다.
2.targetSdkVersion은 앱이 어떤 Android 버전으로 설계되고 테스트되었는지 시스템에 알려주는 속성입니다.
사용자가 앱에 정의된 목표 SdkVersion보다 높은 안드로이드 버전을 가진 장치에서 앱을 실행하는 경우, 새로운 안드로이드 기능의 경우 시스템에서 이전 버전과 호환되는 동작을 도입하여 앱이 여전히 사용자가 설계한 방식으로 보이고 작동하도록 보장할 수 있습니다.
예를 들어,
안드로이드 12에서는 사용자 지정 알림의 모양이 변경되었습니다.이전에는 전체 알림 영역을 사용할 수 있었지만 안드로이드 12 시스템에서는 모든 사용자 지정 알림에 표준 템플릿을 적용하여 일관성을 유지할 수 있습니다.목표 SdkVersion이 31 미만인 경우 시스템은 해당 기능을 테스트하지 않은 것으로 가정하고 이전 방식으로 알림을 표시하여 알림이 제대로 표시되지 않을 위험을 최소화합니다.대상 SDK 버전을 31로 업데이트한 후에만 새 알림 모양이 사용됩니다.
이전 답변에는 좋은 설명이 많지만 공식 문서에는 연결되지 않습니다.궁금하다면 https://developer.android.com/guide/topics/manifest/uses-sdk-element 에서 다음 정보를 확인하십시오.
- minSdk 버전:
시스템의 API 수준이 이 특성에 지정된 값보다 낮을 경우 Android 시스템은 사용자가 응용 프로그램을 설치하지 못하도록 합니다.
NDK를 사용하여 네이티브 코드를 실행하면,minSdkVersion
또한 NDK의 API 가용성에도 영향을 미칩니다.(https://developer.android.com/ndk/guides/sdk-versions)
- targetSdkVersion:
이 속성은 대상 버전에 대해 테스트했다는 것을 시스템에 알려주며, 시스템은 대상 버전과 앱의 정방향 호환성을 유지하기 위해 어떤 호환성 동작도 활성화해서는 안 됩니다.응용 프로그램은 이전 버전(minSdkVersion까지)에서도 실행할 수 있습니다.
Android가 새로운 버전으로 진화함에 따라 일부 동작과 심지어 모습도 바뀔 수 있습니다.그러나 플랫폼의 API 수준이 앱의 targetSdkVersion에서 선언한 버전보다 높으면 시스템이 호환성 동작을 활성화하여 앱이 기대한 대로 계속 작동하도록 할 수 있습니다.실행 중인 플랫폼의 API 수준과 일치하도록 targetSdkVersion을 지정하여 이러한 호환성 동작을 해제할 수 있습니다.예를 들어, 이 값을 "11" 이상으로 설정하면 시스템이 Android 3.0 이상에서 실행할 때 새 기본 테마(Holo)를 앱에 적용할 수 있으며 더 큰 화면에서 실행할 때 화면 호환 모드를 사용할 수 없습니다(API 레벨 11 지원은 암시적으로 더 큰 화면을 지원하므로).
따라서 대상 API를 염두에 두고 앱을 개발했으며, 특히 이 API에 도입된 기능을 사용하려고 할 경우 모든 것이 예상대로 표시/동작하는지 테스트했습니다.또한 코드는 새로운 기능이 없는 플랫폼을 처리할 수 있어야 합니다.minSdkVersion
, 예를 들어 코드가 누락된 API를 잘 처리하는지 확인하는 등).그러나 최신 Android 버전조차도 앱을 계속 실행시키기 위해 무언가를 할 수 있으며, 그렇지 않으면 OS가 "호환성 동작"을 활성화하지 않으면 고장이 나거나 더 펑키해 보일 수 있습니다.
다음 내용은 https://developer.android.com/studio/build 을 참조하십시오.
- completeSdkVersion:
completeSdkVersion은 Gradle이 앱을 컴파일하는 데 사용할 Android API 수준을 지정합니다.이것은 당신의 앱이 이 API 수준 이하에 포함된 API 기능을 사용할 수 있다는 것을 의미합니다.
이상적으로 대상 및 컴파일 버전을 가장 높은 릴리스로 동일하게 설정하는 것이 좋으며, 물론 새로운 기능을 사용할 필요는 없습니다.그러나 대상 버전을 업데이트할 준비가 될 때까지 더 나은 경고/오류를 위해 최신 컴파일 버전을 사용하는 동안 대상을 이미 출시된 이전 버전으로 유지하는 것이 좋습니다.과거에는 대상 안드로이드 API와는 별개로 안드로이드 그래들 플러그인 업그레이드를 통해 코드에 새로운 자바 언어 기능을 사용할 수도 있었습니다.
마지막으로 목표 API보다 최신 OS를 사용하는 Play 스토어의 사용자가 여전히 사용할 수 있으려면 특정 날짜까지 최신 API 레벨을 대상으로 하는 빌드를 릴리스해야 하는 Google의 최근 목표 API 레벨 요구 사항을 잊지 마십시오.이는 앱 개발자 커뮤니티가 새로운 성능/보안 향상 기능을 사용할 수 있도록 동기를 부여하기 위한 것입니다(위치 정보를 요청할 때 사용자에게 더 많은 개인 정보 옵션을 제공하는 것과 같이).
9 이후 출시된 Android의 모든 버전에는 사용자에 관계없이 모든 앱에 영향을 미치는 동작 변경 사항이 나열됩니다.targetSdkVersion
(예: Android 12) 및 특정 대상을 지정할 때 변경되는 사항(예: 동작 변경: 안드로이드 12를 대상으로 하는 앱들.다음 버전이 미리보기에 있을 때는 어떤 호환 모드라도 변경하지 않고 괜찮더라도 앱의 다음 버전과의 호환성을 확인하기에 좋은 시기입니다.compileSdkVersion
, 목표로 삼을 준비가 되지 않았다면요호환성 프레임워크 도구는 새로운 API를 사용하도록 마이그레이션하는 데 도움이 될 수 있습니다.
여기 이해하기 쉬운 조금 명확하고 쉬운 방법이 있습니다.
minSdkVersion은 앱이 설치될 안드로이드 기기의 최대 적용 범위를 대상으로 하려면 더 낮아야 합니다.
안드로이드의 최신 API를 사용하고 최적화하기 위해서는 앱을 개발하는 동안 컴파일 SdkVersion이 필요합니다.
tarketSkdVersion은 안드로이드 리소스의 완전한 최적화를 달성하기 위해 앱을 실행하고자 하는 안드로이드 OS의 최신/버전입니다.
참고- 실수가 있으면 수정 부탁드립니다.감사해요.
언급URL : https://stackoverflow.com/questions/24510219/what-is-the-difference-between-min-sdk-version-target-sdk-version-vs-compile-sd
'programing' 카테고리의 다른 글
행이 없는 경우 행을 삽입하는 방법, 그렇지 않으면 MariaDB에서 두 경우 모두 ID를 선택하고 반환하는 방법은 무엇입니까? (0) | 2023.09.13 |
---|---|
지난 5년간 조회 (0) | 2023.09.13 |
워드프레스 응답 이미지 - 망막 화면에서 잘못된 이미지 선택 (0) | 2023.09.13 |
스크롤 이벤트가 사용자에 의해 작성되었는지 여부 탐지 (0) | 2023.09.13 |
레일에서 기본 키로 테이블 및 문제 만들기 (0) | 2023.09.13 |