SDK 확장 프로그램

SDK 확장 프로그램 모듈은 기기의 확장 SDK 수준을 결정하고 앱이 확장 SDK 수준을 쿼리할 수 있는 API를 제공합니다. 이 모듈은 업데이트할 수 있습니다. 즉, 일반적인 Android 출시 주기 외에도 기능 업데이트를 받을 수 있습니다.

SDK 확장 프로그램 모듈에는 다음과 같은 구성요소가 있습니다.

  • bin/derive_sdk - 이 네이티브 바이너리는 기기 부팅 프로세스 초기에 실행되며 다른 모듈의 메타데이터를 읽어 확장 SDK와 관련된 시스템 속성(예: build.version.extensions.r)을 설정합니다.

  • javalib/framework-sdkextension.jar - 이 파일은 bootclasspath에 있으며, 확장 SDK 수준을 쿼리하는 API를 앱에 노출합니다.

모듈 형식

SDK 확장 프로그램 모듈(com.android.sdkext)은 APEX 형식이며 Android 11 이상을 실행하는 기기에서 사용할 수 있습니다.

확장 SDK 수준 도출

derive_sdk 프로그램은 각 APEX 모듈 내의 etc/sdkinfo.binarypb 하위 경로에 바이너리 protobuf 파일로 저장된 메타데이터를 읽습니다. protobuf 구조에 관한 자세한 내용은 sdk.proto 파일을 참고하세요.

확장 SDK 수준 읽기

SDK 확장 프로그램 모듈은 android.os.ext 패키지의 SdkExtensions 자바 클래스를 노출합니다. getExtensionVersion(int) 메서드를 사용하여 SDK 확장의 버전을 읽습니다(예: getExtensionVersion(Build.VERSION_CODES.R)).