🤖 안드로이드 Android

[안드로이드/Android] minSDK, targetSDK, compileSDK, Play Store 정책에 따른 targetSDK 업데이트, ART

핑크빛연어 2024. 8. 14. 11:31

 

🍀 느슨해진 나의 블로그를 위한 Android 용어 정리 🍀

 

 

 

🚨 Android API Level

• Android OS 별로 정해진 Level

• 안드로이드 OS 운영 체제의 다양한 버전에서 제공하는 API 집합

• 이 API는 이전 버전의 API 와 호환되면서 각 버전의 운영 체제에서 사용할 수 있는 기능과 서비스를 포함한다

 

https://developer.android.com/tools/releases/platforms?hl=ko

 

SDK 플랫폼 출시 노트  |  Android Studio  |  Android Developers

SDK Manager의 SDK Platforms 탭에서 다운로드할 수 있는 SDK 패키지에 관한 출시 정보를 확인하세요.

developer.android.com

 

 

 minSDKVersion 

• 앱을 실행하는데 필요한 최소 Android API 버전

• 앱의 minSDK 버전보다 OS 버전이 낮은 기기의 경우 앱이 설치되지 않는다

• minSDK 버전보다 낮은 기기의 경우 구글 플레이 스토어에서 해당 앱이 검색되지 않는다

 

 

 targetSDKVersion 

• 앱이 기기에서 동작할 때 사용되는 Android API 버전 (런 타임)

• 앱은 targetSDK 버전에 명시된 API 버전을 기준으로 동작한다

• OS 버전이 낮아 아직 targetSDKVersion 의 API 버전을 지원하지 않을 경우 기기 OS 버전을 따라간다

 

 

OS 버전 > targetSDKVersion 

 기기의 OS 버전 : API 32  ➡️ 안드로이드 기기에서 API 30 을 기반으로 동작
 targetSDKVersion : API 30

 

 해당 기기는 Android API 32 에 포함된 기능을 모두 사용할 수 있다

 그러나 앱의 targetSDKVersion 이 API 30 으로 더 낮기 때문에 해당 기기는 Android API 30 을 기반으로 동작한다

 

 

OS 버전 == targetSDKVersion 

 기기의 OS 버전 : API 32  ➡️ 안드로이드 기기에서 API 32 을 기반으로 동작
 targetSDKVersion : API 32

 

 기기의 OS 버전과 앱의 targetSDKVersion 이 동일하기 때문에 Android API 32 을 기반으로 해당 기기에서 앱이 동작한다

 Android API 32 에서 제공하는 기능을 모두 사용할 수 있다

 

 

OS 버전 < targetSDKVersion 

 기기의 OS 버전 : API 30  ➡️ 안드로이드 기기에서 API 30 을 기반으로 동작
 targetSDKVersion : API 32

 

앱의 targetSDKVersion 이 API 32 이더라도 기기의 OS 버전이 API 30 이기 때문에 해당 기기는 Android API 30 을 기반으로 동작한다

 

 

 compileSDKVersion 

 컴파일 시 사용되는 Android API 버전 (컴파일 타임)

• 실제 개발 중에 코드 작성 시 사용할 수 있는 Android API 범위는 compileSDKVersion 에 의해 결정된다

• 컴파일 시에만 적용되므로 실제 기기에서 실행하는 동안에는 (런타임)  영향을 미치지 않는다

• 따라서 compileSDKVersion 은 최신으로 유지하기를 권장한다 (targetSDKVersion 을 변경하지 않는 한 실제 배포되는 앱에 영향을 미치지 않기 떄문)

• 최신 API 가 발표되면 compileSDKVersion 을 먼저 올려 최신 API 버전에 대한 테스트를 진행한 후 targetSDKVersion 을 올리게 된다

 

 

⭐️ targetSDKVersion 과 compileSDKVersion 을 동일하게 유지하는 것이 이상적이다

⭐️ Android SDK Version : minSDKVersion <= targetSDKVersion <= compileSDKVersion

 

 

 

🚨 Android Play Store 정책에 따른 targetSDK 업데이트

매년 Google Play Conosle 에서 요구하는 Google Play 앱의 대상 API 수준(target SDK Version) 이 업데이트 필요 합니다.

 

https://support.google.com/googleplay/android-developer/answer/11926878?hl=ko

 

Google Play 앱의 대상 API 수준 요구사항 - Play Console 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

 

8월 31일부터 최신 Android 출시로부터 1년 이내의 대상 API 수준을 타겟팅하지 않는 경우 앱을 업데이트할 수 없습니다.

그렇기 때문에 앱 업데이트를 출시하려면 2024년 8월 31일까지 대상 API 수준을 업데이트 를 진행해야 하고,
보통 7월 초에 경고로 메세지를 보내줍니다.

 

 

Google Play Console > 정책 및 프로그램 - 정책 상태 에서도 해당 내용을 자세하게 확인 가능하며
해결방법도 명시되어 있습니다.

 

 

앱 업데이트 작업시간이 더 필요한 경우 11월 1일까지 추가 시간 요청 을 통해 기한 연장을 요청할 수 있습니다.

 

 

https://developer.android.com/google/play/requirements/target-sdk?hl=ko

 

Google Play의 대상 API 수준 요구사항 충족  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Google Play의 대상 API 수준 요구사항 충족 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. APK를 업로드하

developer.android.com

 

 

 targetSDK 정책 해결 

기한 내에 대상 API 수준(targetSDKVersion) 을 타겟팅하는 앱을 출시하였을 경우 약 반나절 정도 후에

앱의 최근 정책 위반이 해결됨 이라는 메세지를 받게 됩니다.

 

 

Google Play Console > 정책 및 프로그램 - 정책 상태 에서도 위반 사항이 해결된 것을 확인할 수 있습니다.

 

 

 

🚨 안드로이드 런타임 ART (Android RunTime)

 

 컴파일 타임 (CompileTime) 

• 개발자가 작성한 소스 코드를 기계 코드로 컴파일해야 프로그램을 실행할 수 있는데, 이 컴파일  프로세스를 컴파일 타임이라고 한다

 

 

 런타임 (RunTime) 

• 컴파일된 프로그램을 사용자가 열고 실행할 수 있는데 애플리케이션이 실행 중일 때를 런타임 이라고 한다

• 애플리케이션을 관리하기 위해서 특정한 컴파일러나 가상머신이 사용하는 기본 코드 라이브러리
• 애플리케이션이 실행되고 있는 동안의 동작
• 런타임 환경(Runtime Environment) : 프로세스나 애플리케이션을 위한 서비스를 제공하는 가상머신의 상태

 

 

 안드로이드 런타임 (Android RunTime - ART) 

Android 런타임(ART)은 Android의 앱 및 일부 시스템 서비스에서 사용하는 관리형 런타임입니다. ART와 그 전의 Dalvik은 원래 Android 프로젝트용으로 특별히 제작된 것으로, ART는 런타임으로서 Dalvik Executable(DEX) 형식 및 DEX 바이트 코드 사양을 실행합니다.
ART와 Dalvik은 DEX 바이트 코드를 실행하는 호환 가능한 런타임이므로, Dalvik용으로 개발된 앱은 ART로 실행 시에도 작동해야 합니다. 그러나 Dalvik에서 작동하는 기술 중 일부는 ART에서 작동하지 않습니다.

 

 

ART 주요 기능

  • AOT(Ahead-of-time) 컴파일
  • 가비지 컬렉션 개선
  • 개발 및 디버깅 개선

 

 

https://source.android.com/docs/core/runtime?hl=ko

 

Android 런타임 및 Dalvik  |  Android 오픈소스 프로젝트  |  Android Open Source Project

Android 런타임 및 Dalvik 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 런타임(ART)은 Android의 앱 및 일부 시스템 서비스에서 사용하는 관리형 런타임입

source.android.com

 

 

감사합니다 :)

728x90
반응형