일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- JavaScript
- tomcat
- Kotlin
- mapreduce
- Express
- xPlatform
- Java
- plugin
- window
- Android
- NPM
- es6
- vaadin
- MSSQL
- Eclipse
- hadoop
- table
- mybatis
- 보조정렬
- SQL
- Spring
- SPC
- R
- Sqoop
- GIT
- 공정능력
- Python
- SSL
- react
- IntelliJ
- Today
- Total
DBILITY
compileSdk, targetSdk,targetApi 본문
compileSdk는 애플리케이션이 컴파일될 때 사용할 SDK 버전을 지정합니다. 이 값은 개발자가 사용하는 API의 기능과 클래스에 영향을 미칩니다. 예를 들어, compileSdk를 최신 버전으로 설정하면 최신 API 기능을 사용할 수 있지만, 실제로 앱이 실행되는 기기에서 지원되는 API는 다를 수 있습니다.
targetSdk는 애플리케이션이 테스트되고 최적화된 SDK 버전을 지정합니다. 이 값은 앱이 특정 Android 버전에서 어떻게 동작할지를 결정합니다. 예를 들어, targetSdk가 최신 버전으로 설정되어 있으면, 해당 버전의 새로운 기능을 사용할 수 있으며, 이전 버전의 동작 방식과 호환성을 유지하기 위해 필요한 조치를 취할 수 있습니다. 만약 targetSdk가 낮은 버전으로 설정되어 있다면, 새로운 Android 버전에서 앱이 동작할 때 이전 버전의 동작 방식을 따르게 됩니다.
@targetApi는 특정 코드 블록이 특정 API 레벨에서만 실행될 것임을 나타내는 주석입니다. 이는 주로 코드에서 조건부로 API를 사용할 때 사용됩니다. 예를 들어, 특정 API가 API 레벨 21에서 도입되었다면, 해당 API를 사용하는 코드 블록에 @TargetApi(21) 주석을 추가하여 이 코드가 API 레벨 21 이상에서만 실행된다는 것을 명시할 수 있습니다. 이는 코드의 가독성을 높이고, 컴파일러가 경고를 발생시키지 않도록 도와줍니다.
이렇게 compileSdk, targetSdk, targetApi는 각각의 역할이 있으며, 안드로이드 애플리케이션의 호환성과 기능성을 관리하는 데 중요한 요소입니다.
AndroidManifest.xml의 tools:targetApi는 특정 API 레벨에서의 동작을 명시적으로 지정하는 데 사용됩니다. 이 속성은 주로 Lint 도구와 관련이 있으며, 코드에서 특정 API를 사용할 때 발생할 수 있는 경고를 제어하는 데 도움을 줍니다.
주요 기능:
Lint 경고 제어: tools:targetApi를 사용하면 특정 API 레벨에서 사용할 수 있는 메서드나 속성을 명시할 수 있습니다. 이를 통해 Lint 도구가 해당 API를 사용할 때 발생할 수 있는 경고를 무시하도록 할 수 있습니다.
코드 문서화: 이 속성을 사용하면 코드에서 어떤 API 레벨을 대상으로 하고 있는지를 명확히 할 수 있어, 다른 개발자들이 코드를 이해하는 데 도움이 됩니다.
조건부 코드 실행: tools:targetApi는 주로 XML에서 사용되며, 특정 API 레벨에 따라 다른 동작을 정의할 수 있습니다. 예를 들어, 특정 API 레벨에서만 적용되는 속성을 설정할 수 있습니다.
'android' 카테고리의 다른 글
android Missing required view with ID (1) | 2024.11.21 |
---|---|
android WindowInsets Insets (0) | 2024.11.19 |
Caused by: org.gradle.api.internal.artifacts.ivyservice.TypedResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath'. (0) | 2024.11.13 |
theme (0) | 2024.05.04 |
android avd localhost (0) | 2024.05.01 |