이 페이지에서는 Android 12 및 Android 12L 출시에 포함된 주요 기능을 요약하고 추가 정보 링크를 제공합니다. 기능 요약은 이 사이트의 기능 문서 위치에 따라 구성되었습니다.
아키텍처
AlwaysOnHotwordDetector 클래스 업데이트
Android 12부터, AlwaysOnHotwordDetector 클래스와 그 팩토리 메서드 android.service.voice.VoiceInteractionService.createAlwaysOnHotwordDetector()
는 공개 API가 아니라 시스템 API(@SystemApi
)입니다. AlwaysOnHotwordDetector
클래스는 시스템 수준 권한을 갖는 어시스턴트 앱(주로 OS 출시와 번들된 앱)이 사용하기 위한 용도입니다. Android 11 이하에서는 호출자가 현재 활성 상태인 어시스턴트 앱인지 확인하는 검사로 이 API가 보호되기 때문에 다른 서드 파티 앱에서 이 API를 사용할 수 없습니다.
Android 12에는 알림음 트리거 API를 통한 마이크 사용과 관련된 권한의 출처 및 적용을 개선하기 위해 알림음 트리거 기능 개선도 적용되었습니다. 마이크 사용(SoundTriggerManager
또는 AlwaysOnHotwordDetector
클래스를 통한 간접 사용 포함)은 AlwaysOnHotwordDetector
클래스를 호출한 원래 패키지(어시스턴트 앱)로 그 출처가 표시됩니다. 이를 통해 마이크를 사용하는 패키지의 사용자 개인 정보 보호와 투명성이 향상됩니다. Android 11 이하에서는 원래 패키지가 알림음 트리거 API를 직접 사용하지 않고 system_server
프로세스에 있는 상위 수준 서비스를 통해 사용하기 때문에 마이크 사용의 출처가 시스템 사용자로 표시되었습니다.
이 변경사항은 다음과 같은 영향을 줍니다.
- API가 공개 노출 영역에서 삭제되었으므로
AlwaysOnHotwordDetector
클래스를 사용하는 비시스템 앱이 Android 12 API로 컴파일되지 않습니다. AlwaysOnHotwordDetector
클래스를 사용하는 기존 시스템 앱이 런타임에 알림음 트리거 기능을 사용하지 못할 수 있습니다. 이 문제를 해결하고 이러한 앱이 알림음 트리거를 통해 마이크에 액세스하도록 허용하려면 앱의RECORD_AUDIO
및CAPTURE_AUDIO_HOTWORD
권한을 선언하세요.
Android Rust 언어 지원
이제 Android 12에서 Rust 코드 사용이 지원됩니다. 설정 도움말에 추가된 새로운 섹션에서 Rust를 사용한 Android 개발에 관한 가이드를 제공합니다.
Android Rust 및 각종 모듈에 관한 자세한 정보와 예를 살펴보고 IDE 설정 정보를 확인하려면 Android Rust 소개의 새 Android Rust 섹션을 참고하세요.
부팅 이미지 헤더
Android 12에 GKI(일반 커널 이미지) 아키텍처를 지원하는 기기의 기본 부팅 이미지인 부팅 이미지 헤더 버전 4의 사용이 추가되었습니다. Android 12는 커널 및 램디스크의 무결성 검사를 위한 boot_signature
도 제공합니다. VtsSecurityAvbTest에서 실행되는 이 검사는 GKI 아키텍처를 사용하는 기기의 필수 검사입니다.
자세한 내용은 부팅 이미지 헤더 페이지를 참고하세요.
bootconfig 구현 변경사항
빌드 및 부트로더에서 Android 12로 구성 세부정보를 전달하는 메커니즘인 Android 12의 bootconfig 기능이 Android 11 이하에서 사용되는 androidboot.*
커널 명령줄 옵션을 대체합니다.
이 기능은 Android 사용자 공간의 구성 매개변수와 커널의 구성 매개변수를 분리할 방법을 제공합니다.
자세한 내용은 Bootconfig 구현을 참고하세요.
맞춤 글꼴 대체
Android 12 미만에서는 AOSP(/system/fonts
파티션) 또는 공급업체 파티션(/product/fonts
또는 /system/fonts
파티션)에 있는 기기에서 설치한 글꼴 파일을 업데이트하려면 OEM의 시스템 업데이트가 필요했습니다. 이 요구사항은 이모티콘 호환성에 상당한 영향을 미쳤습니다.
Android 12에서는 FontManager
시스템 서비스를 사용하여, 설치된 글꼴 파일을 관리하고 시스템 업데이트 없이 기기에 설치된 글꼴 파일을 업데이트합니다.
이 새로운 기능에 관한 자세한 내용은 맞춤 글꼴 대체 구현을 참고하세요.
DMA-BUF 힙
Android 12에서는 GKI 2.0이 ION 할당자를 DMA-BUF 힙으로 대체합니다.
언어 필터 사용 설정
Android 12에 새로운 기기 유형의 기본 시스템 언어와 언어 필터를 구성하는 데 사용할 수 있는 기능이 추가되었습니다. 이 기능을 통해 공장 보정 중에 oem/oem.prop
를 통해 필터 속성 값 및 기본 언어를 설정하고, 시스템 이미지에 필터를 적용하지 않고도 제한사항을 구성할 수 있습니다.
자세한 내용은 언어 필터 사용 설정을 참고하세요.
공급업체 램디스크 플래시
Android 12에 기기에서 전체 vendor_boot
이미지를 가져오는 빠른 부팅 명령어를 통해 공급업체 램디스크를 플래시하는 지원이 추가되었습니다. 이 명령어는 호스트 쪽 빠른 부팅 도구가 공급업체 부팅 헤더를 읽고, 다시 이미징하고, 새 이미지를 플래시하도록 합니다. 이 지원은 파티션 크기, 오프셋 등의 필요한 데이터를 가져오기 위한 부트로더 및 빠른 부팅 변경사항을 포함합니다.
자세한 내용은 사용자 공간에서의 빠른 부팅 페이지의 공급업체 램디스크 플래시를 참고하세요.
GKI 버전 관리
Android 12부터, 빌드 타임에 커널에서 KMI 버전의 Android 출시 부분을 추출하여 기기 매니페스트에 삽입할 수 있습니다.
자세한 내용은 GKI 버전 관리를 참고하세요.
MM 이벤트 기록 메모리 통계
Android 12를 실행하는 기기는 시스템이 메모리 압력을 경험하는 동안 주기적으로 캡처되는 메모리 관련 통계 세트인 mm_events
를 사용할 수 있습니다. mm_events
가 perfetto
추적 메커니즘과 통합되어 성능 오버헤드가 최소화되었습니다. 통계 수집은 구성 가능한 기간 동안 활성 상태로 유지되어 일정 간격으로 통계를 캡처합니다.
mm_events
통계 사용법에 관한 자세한 내용은 MM 이벤트 - 기록 메모리 통계를 참고하세요.
시스템 알림 창 제한사항
Android 생태계의 보안을 개선하기 위해 Android 12에서는 SYSTEM_ALERT_WINDOW
권한을 얻는 것이 더 어려워졌고 서드 파티 앱이 다른 서드 파티 앱의 오버레이를 차단할 수 있습니다.
Android 12에서는 사전 설치된 앱에 SYSTEM_ALERT_WINDOW
appOp가 자동으로 부여되지 않습니다. 사전 설치된 앱이 이 권한을 사용하려면 사용자가 명시적으로 권한을 부여해야 합니다. 시스템 앱에는 전과 동일하게 기본적으로 권한이 부여됩니다.
서드 파티 앱은 앱 위에 애플리케이션 오버레이가 그려지는 것을 거부할 수 있습니다.
이는 cloak and dagger
스타일 공격에 대한 보호 메커니즘을 제공합니다. 이 기능은 뱅킹 앱과 같이 보안에 민감한 앱이 스스로를 보호할 수 있도록 모든 앱에서 사용할 수 있습니다. 이 기능을 사용하려는 앱은 매니페스트에서 HIDE_OVERLAY_WINDOWS
권한을 선언해야 합니다.
HIDE_NON_SYSTEM_OVERLAY_WINDOWS(signature|privileged)
는 지원 중단되고 HIDE_OVERLAY_WINDOWS
로 대체됩니다.
공급업체 부팅 파티션 변경사항
부팅 이미지 헤더 버전 4를 사용하는 Android 12 기기는 vendor_boot
파티션에서 여러 공급업체 램디스크가 지원됩니다.
이러한 램디스크 프래그먼트는 공급업체 램디스크 섹션에서 순차적으로 연결됩니다.
공급업체 램디스크 테이블은 공급업체 램디스크 섹션의 레이아웃과 각 공급업체 램디스크 프래그먼트의 메타데이터를 설명합니다.
Android 12 이상의 공급업체 부팅 파티션 변경사항으로 인해, default
는 예약된 상태로 지정되므로 공급업체 램디스크 프래그먼트 이름으로 사용할 수 없습니다. 공급업체 램디스크 프래그먼트 이름으로 default를 사용하는 것은 어떤 경우에도 허용되지 않습니다.
자세한 내용은 공급업체 부팅 파티션 및 여러 공급업체 램디스크를 참고하세요.
오디오
결합된 오디오 기기 라우팅
결합된 오디오 기기 라우팅 기능은 동시에 여러 오디오 기기로의 오디오 스트리밍 지원을 추가합니다. 이 기능을 사용하면 권한이 있는 앱이 시스템 API를 통해 특정 전략에 맞는 기본 기기를 여러 개 선택할 수 있습니다. 앱은 이 기능에서 제공하는 공개 API를 사용하여 오디오 기기의 기능을 더 정확하게 검색할 수 있습니다.
자세한 내용은 결합된 오디오 기기 라우팅 페이지를 참고하세요.
오디오 HAL V7 업데이트
하위 호환성 문제를 해결하기 위해, Android 13부터 모든 HAL 변경사항에 안정적 AIDL이 요구됩니다. 앞으로 적용될 AIDL 도입을 준비하고 개선하기 위해 Android 12의 오디오 HAL 버전 7에 여러 변경사항이 적용되었습니다.
자세한 내용은 오디오 HAL V7 업데이트 섹션과 오디오 정책 예를 참고하세요.
카메라
폴더블 기기용 카메라 정적 메타데이터 항목
Android 12에서는 카메라 HAL이 기기의 접힌 상태가 변경되어 트리거된 센서 방향 변화를 카메라 클라이언트와 카메라 프레임워크에 알릴 수 있는 deviceStateOrientationMap
카메라 정적 메타데이터 항목을 도입했습니다. 폴더블 기기는 기기 접힘 상태에 따라 센서 방향이 달라지는 실제 기기로 구성된 하나 이상의 논리 카메라를 선택적으로 사용할 수 있습니다. deviceStateOrientationMap
메타데이터 항목을 사용하면 카메라 프레임워크가 캡처 결과에서 활성 실제 ID가 변경될 때, 필요한 출력 표면 변환이 적용되도록 할 수 있습니다.
자세한 내용은 metadata_definitions.xml
을 참고하세요.
CameraX 공급업체 확장 프로그램 지원 요구사항
Android 12에서는 CameraX 확장 프로그램을 지원하는 기기의 ro.camerax.extensions.enabled
속성이 true
로 설정되어야 합니다. 이렇게 하면 기기의 확장 프로그램 지원 여부를 쿼리할 수 있습니다.
자세한 내용은 기기에서 공급업체 라이브러리 설정을 참고하세요.
Quad Bayer 카메라 센서 지원
Android 12에 앱에서 이미지 품질과 저조도 성능에서 유연성을 제공하는 Quad 또는 Nona Bayer 패턴을 사용하는 초고해상도 카메라 센서가 적용된 기기를 사용할 수 있도록 해 주는 플랫폼 API가 추가되었습니다. 새로운 API는 이러한 센서의 동작을 지원하며, 센서가 '기본' 모드'가 아닌 '최대 해상도' 모드에서 작동할 때는 다른 스트림 구성 및 조합을 지원할 수 있다는 사실을 고려합니다.
초고해상도 카메라 센서를 위한 카메라 HAL 지원을 구현하려는 기기 제조업체는 다음 파일의 변경사항을 구현해야 합니다.
hardware/interfaces/camera/metadata/3.6/types.hal
: 새로운CameraMetadata
키hardware/interfaces/camera/device/3.7/types.hal
: 카메라 HAL 인터페이스의 새로운Stream
구조
호환성
SIM 카드의 ADN 지원 요구사항
Android 12부터, 기기에 탑재되고 CTS 테스트용으로 사용되는 모든 SIM 카드는 축약된 전화번호(ADN)의 저장을 지원해야 합니다.
자세한 내용은 화면 및 저장용량을 참고하세요.
카메라 ITS 업데이트
Android 12에 신규 및 업데이트된 테스트, Phtyon 3로의 리팩터링, Mobly 테스트 프레임워크 도입을 비롯한 여러 카메라 이미지 테스트 모음(ITS) 업데이트가 적용되었습니다.
자세한 내용은 Android 12 카메라 이미지 테스트 모음 출시 노트를 참고하세요.
CDD 업데이트
Android 12 호환성 정의 문서는 이전 버전에 더해 이전에 출시된 기능 요구사항 변경사항과 새로운 기능을 포함합니다.
연결성
5G 네트워크 슬라이싱
Android 12는 5G 네트워크 슬라이싱을 지원합니다. 5G 네트워크 슬라이싱은 네트워크 가상화를 사용하여 하나의 네트워크 연결을 다양한 유형의 트래픽에 서로 다른 양의 리소스를 제공하는 여러 고유한 가상 연결로 나누는 기술입니다. 이를 통해 네트워크 운영자는 네트워크의 일부분을 특정 고객 세그먼트에 특정 기능을 제공하는 전용 네트워크로 사용할 수 있습니다.
자세한 내용은 5G 네트워크 슬라이싱을 참고하세요.
호환 기기 관리도구 프로필
Android 12 이상을 타겟팅하는 앱은 시계에 연결할 때 호환 기기 프로필을 사용할 수 있습니다. 프로필을 사용하면 기기 유형별 권한 세트 부여를 한 단계로 묶어 등록 프로세스를 간소화할 수 있습니다.
번들 권한은 기기가 연결되면 호환 앱에 부여되고 기기가 연결된 동안에만 지속됩니다. 앱을 삭제하거나 연결을 제거하면 권한이 삭제됩니다.
자세한 내용은 호환 기기 프로필을 참고하세요.
IMS 서비스 사용 권한(TS.43)
Android 12에 Wi-Fi 음성 통화(VoWiFi), LTE 음성 통화(VoLTE), SMS over IP(SMSoIP), (요청 기기와 관련된) eSIM 호환 기기의 온디바이스 서비스 활성화(ODSA) 및 데이터 요금제 정보를 포함하여 서비스 활성화를 위한 사용 권한 확인 단계를 정의하는 GSMA 사양인 TS.43 서비스 사용 권한 구성이 추가되었습니다.
자세한 내용은 IMS 서비스 사용 권한을 참고하세요.
IMS 단일 등록
Android 12에서는 MMTEL 및 RCS 기능을 제공하기 위한 단일 등록 모델이 지원됩니다. 이 모델에서는 기기가 기기의 ImsService
에 의해 제공되는 단일 IMS 등록을 통해 모든 IMS 기능을 관리할 수 있습니다. 하나의 디바이스에서 여러 IMS 등록이 관리되는 이중 등록 모델과 비교했을 때, 단일 등록은 이동통신사 네트워크의 트래픽을 줄여 주고 안정성을 향상해 줍니다.
자세한 내용은 IMS 단일 등록을 참고하세요.
위치 시간대 감지
Android 12에 위치 시간대 감지 기능이 추가되었습니다. 위치 시간대 감지는 기기가 자신의 위치 및 시간대 지도 데이터를 사용하여 현재 시간대를 확인하도록 해 주는 선택적인 자동 시간대 감지 기능입니다.
자세한 내용은 위치 시간대 감지를 참고하세요.
MAC 주소 무작위 지정
Android 12에 Android가 모든 연결의 시작 시점에 특정 네트워크의 MAC 주소를 다시 무작위로 지정하도록 하는 비영구 MAC 주소 무작위 지정 유형이 추가되었습니다.
자세한 내용은 MAC 주소 무작위 지정 동작을 참고하세요.
네트워크 선택
Android 12에 NetworkScore
클래스를 사용하는 새로운 네트워크 선택 메커니즘이 추가되었습니다. 네트워크 선택은 Android가 앱 및 시스템 네트워크 요청을 처리하는 방식과 앱의 기본 네트워크가 선택되는 방식에 영향을 줍니다.
자세한 내용은 네트워크 선택을 참고하세요.
알림 CallStyle
Android 12부터는 앱이 수신 및 진행 중인 음성 통화와 영상 통화에서 새로운 알림 스타일인 CallStyle
을 사용하는 것이 권장됩니다. 이 알림 스타일에는 전화 수신, 거부, 끊기 작업 버튼이 포함됩니다. 또한 대화에서 사용하는 사용자 중심 스타일을 그대로 사용하며, 이는 알림 창 상단에 통화 알림이 지정된 순위대로 표시되는 동작을 그대로 따릅니다.
앱에서 CallStyle
알림 스타일을 사용하려면 전체 화면 인텐트 또는 포그라운드 서비스(관련 권한을 사용하여)를 사용해야 합니다. 이 스타일은 알림 창 상단에 통화 알림을 지정된 순위대로 표시합니다. 진행 중인 통화에서는 사용자가 빠르게 통화 앱으로 돌아갈 수 있도록 상태 표시줄에 칩을 추가합니다.
자세한 내용은 통화 알림을 참고하세요.
Passpoint 업데이트
Android 12에 Passpoint R3 및 그 밖의 Passpoint 기능(이용약관, 장소 정보 URL, 장식 ID 접두사, 인증 취소 임박 처리 등)이 추가되었습니다.
이러한 기능에 대한 자세한 내용은 Passpoint(핫스팟 2.0)를 참고하세요.
빠른 액세스 월렛 업데이트
Android 12 이상에서는 Android 11에서와 같은 전원 메뉴가 아닌 알림 창에서 빠른 액세스 월렛 기능을 사용할 수 있습니다. 월렛 UI는 이제 시스템 UI에서 실행되며 frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
에 있습니다.
자세한 내용은 빠른 액세스 월렛을 참고하세요.
간소화된 연결 사용자 환경
Android 12는 사용자가 네트워크 연결을 이해하고, 여러 인터넷 제공업체 간에 전환하고, 네트워크 연결 문제를 해결하도록 도와주는 간소화된 연결 환경(선택사항)을 제공합니다.
자세한 내용은 연결 사용자 인터페이스를 참고하세요.
시간 소스 우선순위
Android 12부터, 프레임워크는 기본적으로 네트워크 ID 및 시간대(NITZ) 소스보다 네트워크 시간 프로토콜(NTP) 시간 소스를 우선시합니다.
기기에서 시간 소스 우선순위를 구성하고 테스트하는 방법에 관한 자세한 내용은 시간 소스 우선순위를 참고하세요.
전환하여 2G 사용 중지
보안 강화를 위해, Android 12의 설정에 사용자가 2G 모바일 데이터 연결을 완전히 중지할 수 있는 2G 전환이 추가되었습니다. 이 기능을 사용하려면 Radio 1.6 HAL을 구현해야 합니다.
2G 전환 기능은 기본적으로 사용 설정됩니다. 이동통신사는 CarrierConfig 플래그 KEY_HIDE_ENABLE_2G
를 통해 런타임에 이 기능을 사용 중지할 수 있습니다.
기기 제조업체는 긴급 전화 중에 모든 네트워크를 사용할 수 있는지 확인해야 합니다.
UICC 사양
Android 12에서는 CTS 이동통신사 API 테스트를 실행하려면 기기에서 최신 버전의 서드 파티 GSMA TS.48 테스트 프로필 사양에 지정된 요구사항을 충족하는 CTS 이동통신사 권한을 보유한 개발자 UICC를 사용해야 합니다.
자세한 내용은 UICC 준비를 참고하세요.
Wi-Fi AP/AP 동시 실행
Android 12에 기기가 브리징된 이중(AP+AP) 테더링 핫스팟을 실행하도록 해 주는 Wi-Fi AP/AP 동시 실행 기능이 추가되었습니다.
자세한 내용은 Wi-Fi AP/AP 동시 실행을 참고하세요.
Wi-Fi/이동통신망 Coex 채널 회피
Android 12에 이동통신망 채널 간에 간섭이 있는 경우 안전하지 않은 Wi-Fi 채널 사용을 식별하고 방지해 주는 Wi-Fi/이동통신망 Coex 채널 회피 기능이 추가되었습니다. 여기에는 STA, SoftAp, Wi-Fi Direct(P2P), Wi-Fi Aware(NAN)와 같은 인터페이스가 포함됩니다.
Wi-Fi 보안 프로토콜 개선사항
Android 12에 WPA3 Hash-to-Element(H2E), WPA2/WPA3-Enterprise 전환 모드 및 전환 중지 표시 지원이 추가되었습니다.
자세한 내용은 WPA3 및 Wi-Fi Enhanced Open을 참고하세요.
Wi-Fi STA/STA 동시 실행
Android 12에 기기가 동시에 두 개의 Wi-Fi 네트워크에 연결하도록 해 주는 Wi-Fi STA/STA 동시 실행 기능이 추가되었습니다.
자세한 내용은 Wi-Fi STA/STA 동시 실행을 참고하세요.
기기
Android 12의 새로운 Automotive 기능
새로운 기능에 대한 자세한 내용은 Automotive의 새로운 기능을 참고하세요.
- 자체 클라우드 에뮬레이터 빌드
- 애플리케이션별 네트워크 선택(PANS)
- 전원 정책
- 보안:
- 자동차 설정 구조:
- 미디어 맞춤설정
- 로터리 컨트롤러:
- 가상화:
디스플레이
신뢰할 수 없는 터치 차단
시스템 보안 및 우수한 사용자 환경을 유지하기 위해 Android 12에 신뢰할 수 없는 터치 이벤트 차단 지원이 추가되었습니다. 이를 통해 오버레이가 안전하지 않은 방식으로 앱을 가리는 터치 이벤트를 앱에서 사용하지 못하게 됩니다.
대화 알림 및 위젯
Android 11에는 대화를 중요 항목으로 표시하고 대화 공간에 대화별 대화창이 실행되도록 우선순위와 알림 수준을 기준으로 알림 창에 대화 알림의 동작과 위치를 맞춤설정하는 지원이 추가되었습니다. 이러한 Android 11 기능을 기반으로 하는 Android 12의 대화 위젯 기능은 사용자가 중요한 연락처의 대화 위젯을 홈 화면에 추가하여 알림을 기다릴 필요 없이 쉽게 대화를 계속할 수 있도록 지원합니다.
자세한 내용은 대화 알림 및 위젯을 참고하세요.
창 흐리게 처리
Android 12는 창 흐리게 처리 효과(예: 배경 흐리게 처리, 후면 흐리게 처리)를 구현하는 데 사용할 수 있는 공개 API를 제공합니다. 이러한 API를 사용하면 창 후면의 내용을 흐리게 처리할 수 있습니다. 배경을 흐리게 처리하여 불투명 유리 효과가 나는 창을 만들거나 창 후면의 화면 전체를 흐리게 처리하여 심도 효과를 낼 수 있습니다. 이 두 가지를 결합할 수도 있습니다.
새로운 기능의 자세한 내용과 구현 방법을 알아보려면 창 흐리게 처리 페이지를 참고하세요.
창 확대
Android 12에서는 저시력 사용자가 창 확대 기능을 사용하여 화면에 표시되는 내용을 확대할 수 있습니다. 창 확대를 사용하면 전체 화면에서 확대/축소 기능을 사용하는 경우와 달리 화면에서 선택한 부분을 확대할 수 있습니다. 선택한 창을 화면 전체에서 드래그하여 필요에 따라 화면의 여러 부분을 확대할 수 있습니다.
자세한 내용은 창 돋보기를 참고하세요.
엔터프라이즈
기기 관리 업데이트
Android 12에 다음과 같은 기기 관리 업데이트가 적용되었습니다.
관리 프로필 데이터 분리 업데이트. 직장 프로필이 있는 개인 기기에서, Android 12는 기기 하드웨어 식별자(IMEI, MEID, 일련번호)에 대한 액세스를 없애고 특정 조직의 직장 프로필 등록을 식별하는 고유한 등록별 ID를 제공합니다. 자세한 내용은 기기 식별자를 참고하세요.
기기 프로비저닝 업데이트. Android 12에 기기 프로비저닝의 여러 변경사항이 적용되었습니다. 자세한 내용과 변경사항 목록은 Android 12 업데이트를 참고하세요.
그래픽
컴포저 HAL의 핫플러그 처리
Android TV 셋톱 박스(STB), 오버더톱(OTT) 기기와 같이 HDMI나 DisplayPort를 통해 외부에 연결된 디스플레이가 있는 기기에서 디스플레이 기능(표시 모드, 지원되는 HDR 유형 등)을 동적으로 변경할 수 있습니다. Android 12부터, 프레임워크의 변경사항이 핫플러그 처리 및 동적 디스플레이 기능을 지원합니다.
자세한 내용은 컴포저 HAL의 핫플러그 처리를 참고하세요.
모듈식 시스템 구성요소
Android 13에는 새롭게 업데이트된 모듈식 시스템 구성요소가 여러 개 포함되어 있습니다. 새 모듈은 다음과 같습니다.
ART: 이 모듈은 사용자에게 최신 관리형 런타임 최적화, 기능, 버그 수정을 제공하여 Android 환경을 개선하는 것을 목표로 합니다.
기기 예약: 이 모듈에는 기기가 유휴 상태인지 여부를 감지하는 로직이 포함되어 있으며 사용자 방해 없이 재부팅할 수 있습니다.
기존 모듈 업데이트
adbd: 모듈 경계를 업데이트했습니다.
DocumentsUI: 파일 탐색을 사용 중지했습니다.
ExtServices:
DisplayHashingService
를 추가하고 모듈 경계를 업데이트했습니다.Media: 새 미디어 구성요소를 추가했습니다.
NNAPI 런타임: 모듈 경계를 업데이트했습니다.
PermissionController: PermissionController 모듈을 완전히 모듈화하고 모듈 경계를 업데이트했습니다.
SDK 확장 프로그램: 모듈 책임을 업데이트하고 새 구성요소를 추가했습니다.
Statsd: 모듈 경계를 업데이트했습니다.
테더링: 모듈 경계를 업데이트한 기능을 추가했습니다.
시간대 데이터: 패키지 형식을 업데이트했습니다.
Wi-Fi: 모듈 경계를 업데이트했습니다.
미디어
호환 미디어 트랜스코딩
호환 미디어 트랜스코딩을 사용하면 기기에서 앱과의 호환성을 유지하면서 HEVC와 같은 저장용량 효율적인 모던 미디어 형식을 사용할 수 있습니다. 기기 제조업체는 이 기능을 바탕으로 기본적으로 AVC 대신 HEVC를 사용하여 동영상 품질을 향상하고 저장용량 및 대역폭 요구사항을 줄일 수 있습니다. 자세한 내용은 호환 미디어 트랜스코딩을 참고하세요.
성능
앱 최대 절전 모드
Android 12는 사용자가 몇 개월 동안 사용하지 않은 앱을 최대 절전 모드로 전환하는, 권한 자동 취소와 유사한 기능을 제공합니다.
자세한 내용은 앱 최대 절전 모드를 참고하세요.
Cgroup 추상화 계층
Android 12의 통제 그룹(cgroup) 추상화 계층에는 특정 cgroup 컨트롤러를 선택사항으로 정의하는 기능, 지원 중단된 writepid
명령어 대신 새로운 task_profiles
명령어를 사용하는 기능 등 여러 기능이 새로 추가되었습니다. 지원 중단된 명령어 대체 기능은 cgroup 계층 구조 내에서 작업을 이전할 때 기본 cgroup 구현이 상위 계층에 영향을 주지 않도록 합니다. Android 12에는 API 수준별 작업 프로필 지원도 추가되었습니다.
자세한 내용은 cgroup 추상화 계층을 참고하세요.
권한
블루투스 권한
Android 12에 BLUETOOTH
및 BLUETOOTH_ADMIN
권한을 대체하는 다음과 같은 블루투스 권한이 추가되었습니다.
BLUETOOTH_SCAN
: 앱이 근처의 블루투스 기기를 찾아서 페어링하도록 허용합니다.BLUETOOTH_ADVERTISE
: 앱이 근처의 블루투스 기기로 광고하도록 허용합니다.BLUETOOTH_CONNECT
: 앱이 페어링된 블루투스 기기에 연결하도록 허용합니다.
이러한 권한은 새로운 NEARBY_DEVICES
런타임 권한 그룹의 일부입니다. 이 권한 그룹은 LOCATION
런타임 권한 없이 스마트시계에 연결하기와 같은 사용 사례를 지원합니다.
새로운 권한은 앱과 호환되며, Android 11 이하에서 실행되는 앱에서 권한을 변경할 필요가 없습니다. Android 11 이하를 타겟팅하는 레거시 앱의 경우 플랫폼이 레거시 블루투스 권한 요청을 새로운 권한 요청으로 자동 변환합니다. Android 12 이상을 타겟팅하도록 업그레이드된 앱에서는 새로운 블루투스 권한을 명시적으로 요청해야 합니다.
권한 사용에 관한 자세한 내용은 블루투스 권한을 참고하세요.
개인 정보 보호 표시기
Android 12는 앱이 카메라 및 마이크 app-op 권한을 통해 비공개인 데이터 소스를 사용하는 경우 이 표시기를 표시하여 사용자에게 투명하게 안내합니다.
App Ops는 활동 상태와 개별 API 호출 개수를 모두 추적하고, Android 12의 마이크 및 카메라 표시기와 상호작용하여 앱이 사용자 기기에 있는 오디오 및 카메라 데이터에 액세스하면 사용자에게 알려줍니다. 사용자는 마이크 또는 카메라 표시기를 클릭하여 어느 앱이 데이터에 액세스했는지 확인할 수 있습니다.
이 기능은 모든 OEM의 필수 기능입니다. 자세한 내용은 개인 정보 보호 표시기를 참고하세요.
위치
Android 12부터 앱이 위치 정보에 액세스할 때 사용자는 대략적인 정확도만 가져오도록 요청할 수 있습니다.
이 변경사항은 Android 12 이상을 타겟팅하는 앱에만 영향을 미치도록 설계되었습니다. 하지만 이전 버전의 PermissionController 모듈이 있는 기기에서 이 변경사항은 대상 SDK 버전과 관계없이 모든 앱에 영향을 미칩니다.
런타임
Dexpreopt 및 <uses-library> 검사
Android 12에서는 <uses-library>
종속 항목이 있는 자바 모듈의 DEX 파일(dexpreopt)의 AOT(사전) 컴파일에 빌드 시스템 변경사항이 적용되었습니다. 이러한 빌드 시스템은 특정 경우에 빌드의 손상을 야기할 수 있습니다.
손상에 대비하는 방법과 손상을 수정하고 완화하는 방법을 알아보려면 Dexpreopt 및 <uses-library> 검사를 참고하세요.
테스트
호환성 테스트 모음(CTS)
Android 12에는 CTS를 위한 많은 새로운 주요 모듈 및 테스트 변경사항이 도입되었습니다. 자세한 내용은 CTS 출시 노트를 참고하세요.
TV
HDMI-CEC 제어 서비스
Android 12는 HDMI-CEC를 사용하여 기기의 절전 모드가 해제되거나 절전 모드로 전환될 때 HDMI에 연결된 디스플레이를 자동으로 제어합니다.
자세한 내용은 HDMI-CEC 제어 서비스를 참고하세요.
Tuner 프레임워크
Android 12:
Tuner HAL 1.1 이상을 사용하는 프런트엔드는 DTMB DTV 표준을 지원합니다. 다음과 같은 프런트엔드 기능 및 설정이 지원됩니다.
DtmbFrontendCapabilities
DtmbFrontendSettings
Tuner SDK API는 Tuner 1.0의 하위 호환성 버전 업그레이드인 Tuner HAL 1.1의 새로운 기능을 지원합니다.
android.media.tv.tuner.TunerVersionChecker.getTunerVersion()
은 실행 중인 HAL 버전을 확인합니다.
업데이트
APEX 압축
Android Pony EXpress 컨테이너(APEX) 업데이트가 설치되면 사전 설치된 버전은 더 이상 사용되지 않지만 동일한 양의 메모리 공간을 차지합니다. 이러한 점유 공간은 사용할 수 없습니다. Android 12의 APEX 압축은 읽기 전용 파티션(예: /system
파티션)에서 고도로 압축된 APEX 파일 세트를 사용하여 이러한 저장용량 영향을 최소화합니다. Android 12의 APEX 압축에 관한 내용은 압축된 APEX를 참고하세요.
재부팅 시 다시 시작 보안 및 편의성
Android 12에 향상된 다중 클라이언트 지원 및 서버 기반 재부팅 기능이 추가되었습니다. 재부팅 시 다시 시작(RoR) 프로세스는 사용자에게 한층 강화된 보안 및 편의성을 제공합니다. 기기 유휴 상태에 OTA 업데이트가 진행될 수 있고, Android 12의 다중 클라이언트 및 서버 기반 업데이트 기능이 기기 하드웨어 수준 유형의 보안을 제공하기 때문입니다.
자세한 내용은 재부팅 시 다시 시작을 참고하세요.
RoR을 사용한 SIM PIN 리플레이
Android 12에는 RoR로 시작된 재부팅 후에 매끄러운 PIN 코드 확인을 위한 SIM-PIN 리플레이 기능이 있습니다. SIM PIN은 사용자가 SIM PIN을 성공적으로 사용하거나 확인하거나 수정할 때마다 다시 암호화되어 저장됩니다.
자세한 내용은 SIM-PIN 리플레이를 참고하세요.
가상 A/B 업데이트
Android 12는 스냅샷으로 찍힌 파티션에서 가상 A/B 압축 옵션을 제공합니다. Android 12에서는 부트로더가 사용하지 않는 업데이트 가능한 파티션을 스냅샷으로 찍어서 공간을 절약할 수 있습니다. 파티션을 압축하는 것도 가능합니다. Android 12용 빌드에서 스냅샷 압축을 사용 설정하면 /data
파티션의 공간이 절약됩니다.
스냅샷 압축을 사용하는 가상 A/B를 구현하려면 기기 코드를 변경해야 합니다. 변경사항 및 구현 세부정보는 가상 A/B 개요 및 가상 A/B 구현 페이지를 참고하세요.