Android는 방대한 범위의 기기와 OS 버전("파편화")에서 실행되므로, 앱은 버전 호환성을 처리해야 합니다 — 더 오래된 버전을 지원하면서 새로운 기능을 안전하게 사용합니다. SDK 레벨, 호환성 라이브러리, 우아한 기능 축소를 이해하는 것이 중요합니다.
SDK 레벨: min, target, compile
minSdk → 앱이 지원하는 가장 오래된 Android 버전 (더 오래된 기기는 설치 불가)
→ 낮은 minSdk = 더 많은 기기 도달, 하지만 더 많은 호환성 작업
targetSdk → 앱이 테스트/최적화된 버전 (그 동작에 옵트인)
→ 최신으로 유지해야 함 (Play가 최근 targetSdk를 요구)
compileSdk → 컴파일에 사용된 SDK 버전 (새 API 접근)
→ 균형: 충분한 오래된 기기 지원 (minSdk) 하면서 현재 동작 타깃 (targetSdk).
오래된 버전에서 새 API를 안전하게 사용
(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
} {
}
