Android 10 이상에서는 일부 Android 시스템 구성요소를 모듈화하여 일반적인 Android 출시 주기 외에도 업데이트될 수 있도록 지원합니다. 최종 사용자 기기는 Google Play 스토어 인프라 또는 파트너가 제공하는 무선 업데이트(OTA) 메커니즘을 통해 이러한 모듈화된 시스템 구성요소에 대한 업데이트를 받을 수 있습니다.
모듈식 시스템 구성요소 정보
모듈식 시스템 구성요소를 사용하면 Google 및 Android 파트너가 비침해적 방식으로 최종 사용자 기기에 업데이트를 광범위하고 빠르고 원활하게 배포할 수 있습니다. 예를 들어 미디어 코덱이 세분화되고 동시에 치명적인 버그가 발생하게 되면 앱 채택 및 사용자 참여를 크게 둔화시킬 수 있습니다. 미디어 관련 모듈을 자주 업데이트하면 코덱 세분화를 줄임으로써 여러 Android 기기에 걸쳐 미디어 앱이 더 일관적으로 작동하도록 하고 치명적인 버그를 해결하여 사용자의 신뢰를 쌓을 수 있습니다.
Android 12의 업데이트
새 모듈
기존 모듈 업데이트
다음 문서에서는 Android 12 버전의 모듈별 변경사항을 다룹니다.
모듈 | 변경사항 |
---|---|
adbd | 모듈 경계를 업데이트했습니다. |
DocumentsUI | 파일 탐색을 사용 중지했습니다. |
ExtServices |
|
미디어 | 새로운 미디어 구성요소를 추가했습니다. |
NNAPI 런타임 | 모듈 경계를 업데이트했습니다. |
PermissionController |
|
SDK 확장 프로그램 |
|
Statsd | 모듈 경계를 업데이트했습니다. |
테더링 |
|
시간대 데이터 | 패키지 형식을 업데이트했습니다. |
Wi-Fi | 모듈 경계를 업데이트했습니다. |
아키텍처
Android 10 이상에서는 선택된 시스템 구성요소를 모듈로 변환합니다. 이 중 일부는 Android 10에서 도입된 APEX 컨테이너 형식을 사용하고 일부는 APK 형식을 사용합니다. 모듈식 아키텍처를 사용하면 하위 공급업체 구현이나 상위 앱 및 서비스에 영향을 주지 않고도 필요에 따라 중요한 버그 수정 및 기타 개선사항을 시스템 구성요소에 업데이트할 수 있습니다.
그림 1. 모듈식 시스템 구성요소
모듈 업데이트에는 새로운 API가 도입되지 않습니다. 호환성 테스트 모음(CTS)에 의해 보장되는 SDK와 시스템 API만 사용하고 서로 간에만 통신하며 안정적인 C API나 안정적인 AIDL 인터페이스만 사용합니다.
업데이트된 모듈식 시스템 구성요소는 Google(Google Play 스토어 인프라 사용)이나 Android 파트너(파트너가 제공한 OTA 메커니즘 사용)에 의해 함께 패키징되어 최종 사용자 기기에 푸시될 수 있습니다. 모듈 패키지는 원자적으로 설치 및 롤백됩니다. 즉, 업데이트가 필요한 모든 모듈이 전부 업데이트되거나 하나도 업데이트되지 않거나 둘 중 하나입니다. 예를 들어 업데이트가 필요한 모듈을 어떠한 이유로든 업데이트할 수 없는 경우 기기는 패키지에 아무런 모듈도 설치하지 않습니다.
가용한 모듈
Android에 포함되는 모듈은 다음과 같습니다.
모듈 이름 | 패키지 이름 | 유형 | 출시 버전 |
---|---|---|---|
adbd | com.android.adbd |
APEX | Android 11 |
ART | com.android.art |
APEX | Android 12 |
종속 포털 로그인 | com.android.captiveportallogin |
APK | Android 10 |
CellBroadcast | com.android.cellbroadcast |
APEX | Android 11 |
Conscrypt | com.android.conscrypt |
APEX | Android 10 |
기기 예약 | com.android.scheduling |
APEX | Android 12 |
DNS 리졸버 | com.android.resolv |
APEX | Android 10 |
DocumentsUI | com.android.documentsui |
APK | Android 10 |
ExtServices | com.android.ext.services |
APK(Android 10) APEX(Android 11) |
Android 10 |
IPsec/IKEv2 라이브러리 | com.android.ipsec |
APEX | Android 11 |
미디어 코덱 | com.android.media.swcodec |
APEX | Android 10 |
미디어 | com.android.media |
APEX | Android 10(추출기, MediaSession API) Android 11(MediaParser API) |
MediaProvider | com.android.mediaprovider |
APEX | Android 11 |
ModuleMetadata | com.android.modulemetadata |
APK | Android 10 |
네트워크 스택 권한 구성 | com.android.networkstack.permissionconfig |
APK | Android 10 |
네트워크 구성요소 | com.android.networkstack |
APK | Android 10 |
NNAPI 런타임 | com.android.neuralnetworks |
APK | Android 11 |
PermissionController | com.android.permissioncontroller |
APK | Android 10 |
SDK 확장 프로그램 | com.android.sdkext |
APEX | Android 11 |
Statsd | com.android.os.statsd |
APEX | Android 11 |
테더링 | com.android.tethering |
APK | Android 11 |
시간대 데이터 | com.android.tzdata |
APEX | Android 10 |
Wi-Fi | com.android.wifi.apex |
APEX | Android 11 |