호환성 프레임워크 변경사항 (Android 15)

그림 1. 전환할 수 있는 변경사항이 나열된 개발자 옵션의 앱 호환성 변경사항 화면

이 페이지에서는 Android 15의 호환성 프레임워크에 포함된 전환 가능한 변경사항을 설명합니다. 이 목록을 개발자 옵션 및 ADB 명령어와 함께 사용하여 Android 15를 지원하고 타겟팅할 준비를 할 때 앱을 테스트하고 디버그하세요.

다음은 호환성 프레임워크 도구를 사용하여 실행할 수 있는 작업입니다.

  • 앱의 targetSdkVersion을 실제로 변경하지 않고 타겟팅된 변경사항을 테스트합니다. 전환을 사용해 타겟팅된 특정 동작 변경사항을 강제로 사용 설정하여 기존 앱에 미치는 영향을 평가할 수 있습니다.
  • 테스트에서 특정 변경사항에만 중점을 둡니다. 타겟팅된 모든 변경사항을 한 번에 처리할 필요 없이 전환을 사용하면 테스트하려는 변경사항을 제외하고 타겟팅된 모든 변경사항을 사용 중지할 수 있습니다.
  • adb를 통해 전환을 관리합니다. adb 명령어를 사용하여 자동화된 테스트 환경에서 전환 가능한 변경사항을 사용 설정하거나 사용 중지할 수 있습니다.
  • 표준 변경 ID를 사용하여 더 빠르게 디버그합니다. 전환 가능한 각 변경사항에는 로그 출력에서 근본 원인을 빠르게 디버그하는 데 사용할 수 있는 고유 ID와 이름이 있습니다.

이러한 각 사용 사례에 맞는 도구를 사용하는 방법에 관한 자세한 내용은 호환성 프레임워크 도구를 참고하세요.

호환성 프레임워크에 포함된 동작 변경사항

이 섹션의 목록에서는 Android 15 관련 변경사항의 호환성 프레임워크에 포함된 전환 가능한 변경사항과 일반적인 앱 테스트에 도움이 되는 전환 가능한 변경사항을 설명합니다.

기본 상태로 변경사항 목록을 필터링할 수 있습니다.

Android 15의 호환성 프레임워크에서 전환 가능한 변경사항

CAMERA_MIC_INDICATORS_NOT_PRESENT

변경 ID: 162547999
기본 상태: 모든 앱에서 사용 중지됩니다.

이 기기가 카메라 및 마이크 표시기를 지원함을 나타냅니다. 변경 ID가 없으면 CompatChanges#isChangeEnabled 메서드가 true를 반환하므로 값이 있으면 false입니다.

DOWNSCALED

변경 ID: 168419799
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항은 앱별 버퍼 축소 변경의 게이트키퍼가 됩니다. 이 변경을 사용 설정하면 다음 배율을 적용할 수 있습니다.

앱 패키지에 이 변경사항을 사용 설정하면 앱은 사용 설정된 가장 높은 배율로 크기가 강제 조절됩니다. 예를 들어 80% 와 70%(DOWNSCALE_80DOWNSCALE_70)가 모두 사용 설정되면 80%가 사용됩니다. 이 변경사항과 DOWNSCALED_INVERSE가 모두 사용 설정되면 DOWNSCALED_INVERSE가 우선 적용되고 배율이 반대로 적용됩니다.

DOWNSCALED_INVERSE

변경 ID: 273564678
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항은 모든 앱별 버퍼 역스케일 변경의 게이트키퍼가 됩니다. 이 변경을 사용 설정하면 다음 배율을 반비례 적용할 수 있습니다 (즉, 해상도가 대신 업스케일됨).

앱 패키지에 이 변경사항을 사용 설정하면 앱은 사용 설정된 가장 낮은 배율로 크기가 강제 조절됩니다. 예를 들어 80%와 70%(DOWNSCALE_80DOWNSCALE_70)가 모두 사용 설정된 경우 80%가 사용됩니다. 반대로 적용하면 80% 배율은 125%이고, 이는 70% 배율을 역으로 적용할 때 적용되는 142.86% 배율보다 작은 125%이기 때문입니다. 이 변경사항과 DOWNSCALED가 모두 사용 설정되면 DOWNSCALED_INVERSE가 우선 적용되고 배율이 반대로 적용됩니다.

DOWNSCALE_30

변경 ID: 189970040
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 30% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 333.33% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_35

변경 ID: 189969749
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 35% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 285.71% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_40

변경 ID: 189970038
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 40% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 250% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_45

변경 ID: 189969782
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 45% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 222.22% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_50

변경 ID: 176926741
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 50% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 200% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_55

변경 ID: 189970036
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 55% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 181.82% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_60

변경 ID: 176926771
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 60% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 166.67% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_65

변경 ID: 189969744
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 65% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 153.85% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_70

변경 ID: 176926829
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 70% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 142.86% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_75

변경 ID: 189969779
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 75% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 133.33% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_80

변경 ID: 176926753
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 80% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 125% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_85

변경 ID: 189969734
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 85% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 117.65% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

DOWNSCALE_90

변경 ID: 182811243
기본 상태: 모든 앱에서 사용 중지됩니다.

DOWNSCALED도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 90% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다. DOWNSCALED_INVERSE도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 앱이 실제 디스플레이의 세로 및 가로 해상도의 111.11% 를 사용하여 디스플레이에서 실행되고 있다고 가정합니다.

ENFORCE_STRICT_QUERY_BUILDER

변경 ID: 143231523
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 SQLiteQueryBuilder가 악성 인수를 대상으로 모든 CalendarProvider2 쿼리 선택을 확인합니다.

FGS_BOOT_COMPLETED_RESTRICTIONS

변경 ID: 296558535
기본 상태: Android 15 이상을 타겟팅하는 앱에서 사용 설정됩니다.

사용 설정하면 다음을 제외한 모든 유형의 BOOT_COMPLETED 브로드캐스트에서 포그라운드 서비스 백그라운드 시작이 사용 중지됩니다.

이 변경사항에 관한 자세한 내용은 Android 15 동작 변경사항 페이지의 포그라운드 서비스를 실행하는 BOOT_COMPLETED broadcast receiver 제한사항 섹션을 참고하세요.

FORCE_DISABLE_HEVC_SUPPORT

변경 ID: 174227820
기본 상태: 모든 앱에서 사용 중지됩니다.

앱이 HEVC 미디어 기능을 지원하지 않도록 강제 사용 중지합니다. 앱은 매니페스트에서 지원되는 미디어 기능을 선언해야 하지만 이 플래그는 앱이 HEVC를 지원하지 않도록 강제하는 데 사용할 수 있으므로 HEVC로 인코딩된 미디어에 액세스하는 동안 트랜스코딩을 강제합니다. 이 플래그를 설정하면 앱의 OS 수준 기본값이 재정의됩니다. 기본적으로 사용 중지되어 있으므로 OS 기본값이 우선 적용됩니다. 이 플래그와 FORCE_ENABLE_HEVC_SUPPORT가 모두 사용 설정되면 OS는 두 플래그를 모두 무시합니다.

FORCE_ENABLE_HEVC_SUPPORT

변경 ID: 174228127
기본 상태: 모든 앱에서 사용 중지됩니다.

앱이 HEVC 미디어 기능을 지원하도록 강제 사용 설정합니다. 앱은 매니페스트에서 지원되는 미디어 기능을 선언해야 하지만 이 플래그는 앱이 HEVC를 지원하도록 강제하는 데 사용할 수 있으므로 HEVC로 인코딩된 미디어에 액세스하는 동안 트랜스코딩을 방지합니다. 이 플래그를 설정하면 앱의 OS 수준 기본값이 재정의됩니다. 이 기능은 기본적으로 사용 중지되어 있으므로 OS 기본값이 우선 적용됩니다. 이 플래그와 FORCE_DISABLE_HEVC_SUPPORT가 모두 사용 설정되면 OS는 두 플래그를 모두 무시합니다.

FORCE_NON_RESIZE_APP

변경 ID: 181146395
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항이 적용되는 패키지는 크기를 조절할 수 없습니다.

FORCE_RESIZE_APP

변경 ID: 174042936
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항이 적용되는 패키지의 크기를 조절할 수 있도록 강제합니다. 전체 화면 윈도잉 모드에서만 크기 조절이 허용되고 앱을 크기 조절 가능한 멀티 윈도우 모드로 강제할 수 없습니다.

GWP_ASAN

변경 ID: 145634846
기본 상태: 모든 앱에서 사용 중지됩니다.

앱에서 샘플 네이티브 메모리 버그 감지를 사용 설정합니다.

GWP-ASan 사용에 관한 자세한 내용은 GWP-ASan 가이드를 참고하세요.

NATIVE_HEAP_ZERO_INIT

변경 ID: 178038272
기본 상태: 모든 앱에서 사용 중지됩니다.

네이티브 힙 메모리 할당 시 자동 0 초기화를 사용 설정합니다.

NATIVE_MEMTAG_ASYNC

변경 ID: 145772972
기본 상태: 모든 앱에서 사용 중지됩니다.

이 프로세스에서 비동기(ASYNC) 메모리 태그 확인을 사용 설정합니다. 이 플래그는 ARM Memory Tagging Extension (MTE)을 지원하는 하드웨어에만 영향을 미칩니다.

NATIVE_MEMTAG_SYNC

변경 ID: 177438394
기본 상태: 모든 앱에서 사용 중지됩니다.

이 프로세스에서 동기(SYNC) 메모리 태그 확인을 사용 설정합니다. 이 플래그는 ARM Memory Tagging Extension (MTE)을 지원하는 하드웨어에만 영향을 미칩니다. NATIVE_MEMTAG_ASYNC와 이 옵션이 모두 사용 설정된 경우 이 옵션이 우선하며 MTE는 SYNC 모드에서 사용 설정됩니다.

OVERRIDE_ANY_ORIENTATION

변경 ID: 265464455
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항을 사용 설정하면 활동에서 요청한 방향과 관계없이 다음 방향 재정의를 적용할 수 있습니다.

OVERRIDE_ANY_ORIENTATION_TO_USER

변경 ID: 310816437
기본 상태: 모든 앱에서 사용 중지됩니다.

이를 사용 설정하면 활동에서 요청한 모든 방향을 재정의하는 SCREEN_ORIENTATION_USER가 사용 설정됩니다. 이 재정의로 ignoreOrientationRequest가 사용 설정된 대형 화면 기기에서 고정 방향 앱을 전체 화면으로 재정의할 수 있습니다.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

변경 ID: 191514214
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 이 변경사항이 적용된 패키지가 android:resizeableActivity의 현재 값과 M 이하의 타겟 SDK를 무시하고 활동의 크기를 조절할 수 없는 것으로 간주하도록 강제합니다. 이 경우 카메라 회전 및 자르기 값은 현재 디스플레이 회전을 고려하여 필요한 보정에만 의존합니다.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

변경 ID: 189229956
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 이 변경사항이 적용되는 패키지가 기본 카메라 회전 및 자르기 동작을 재정의하고 항상 CaptureRequest.SCALER_ROTATE_AND_CROP_NONE를 반환하도록 강제합니다.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

변경 ID: 266124927
기본 상태: 모든 앱에서 사용 중지됩니다.

적용되는 앱에 SCREEN_ORIENTATION_REVERSE_LANDSCAPE를 사용 설정합니다. OVERRIDE_ANY_ORIENTATION도 사용 설정되어 있지 않으면 SCREEN_ORIENTATION_REVERSE_LANDSCAPE는 활동이 가로 방향을 지정하는 경우에만 사용됩니다. 이 변경사항을 사용 설정하면 Surface.ROTATION_90에 해당하는 기기와 가로 방향이 Surface.ROTATION_270에 해당하는 기기 간의 앱 동작 차이를 테스트할 수 있습니다.

OVERRIDE_MIN_ASPECT_RATIO

변경 ID: 174042980
기본 상태: 모든 앱에서 사용 중지됩니다.

이 변경사항은 지정된 최소 가로세로 비율을 강제로 적용하는 모든 변경의 게이트키퍼가 됩니다. 이 변경을 사용 설정하면 다음과 같은 가로세로 비율이 적용될 수 있습니다.

이 변경사항이 앱 패키지에 사용 설정되면 앱의 매니페스트에 지정된 최소 가로세로 비율은 앱의 매니페스트 값이 더 크지 않는 한 사용 설정된 가장 큰 가로세로 비율로 재정의됩니다.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

변경 ID: 218959984
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 사용 가능한 모든 화면 공간을 사용하기 위해 세로 모드 전체 화면의 최소 가로세로 비율 제한을 재정의합니다.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

변경 ID: 180326787
기본 상태: 모든 앱에서 사용 중지됩니다.

OVERRIDE_MIN_ASPECT_RATIO도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 활동의 최소 가로세로 비율이 OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE에서 정의한 큰 값으로 설정됩니다.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

변경 ID: 180326845
기본 상태: 모든 앱에서 사용 중지됩니다.

OVERRIDE_MIN_ASPECT_RATIO도 사용 설정된 경우 패키지에 이 변경사항을 사용 설정하면 활동의 최소 가로세로 비율이 OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE에 정의된 중간 값으로 설정됩니다.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

변경 ID: 203647190
기본 상태: 모든 앱에서 사용 설정됩니다.

OVERRIDE_MIN_ASPECT_RATIO도 사용 설정되면 이 변경사항은 활동의 최소 가로세로 비율을 특정 값(예: OVERRIDE_MIN_ASPECT_RATIO_LARGEOVERRIDE_MIN_ASPECT_RATIO_MEDIUM)으로 강제하는 기타 모든 변경을 세로 모드 방향도 있는 활동으로 제한합니다.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

변경 ID: 236283604
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 이 변경사항으로 인해 적용된 패키지가 기기 제조업체가 설정할 수 있는 방향 무시 제한에서 제외됩니다.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

변경 ID: 265451093
기본 상태: 모든 앱에서 사용 중지됩니다.

적용되는 앱에 SCREEN_ORIENTATION_NOSENSOR를 사용 설정합니다. OVERRIDE_ANY_ORIENTATION도 사용 설정되어 있지 않으면 SCREEN_ORIENTATION_NOSENSOR는 활동이 다른 고정된 방향을 지정하지 않는 경우에만 사용됩니다.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

변경 ID: 265452344
기본 상태: 모든 앱에서 사용 중지됩니다.

적용되는 앱에 SCREEN_ORIENTATION_PORTRAIT를 사용 설정합니다. OVERRIDE_ANY_ORIENTATION도 사용 설정되어 있지 않으면 SCREEN_ORIENTATION_PORTRAIT는 활동이 다른 고정된 방향을 지정하지 않는 경우에만 사용됩니다.

RATE_LIMIT_TOASTS

변경 ID: 174840628
기본 상태: 이 변경사항은 전환할 수 없습니다. 호환성 프레임워크에서만 기록됩니다.

제한된 시간에 너무 많은 토스트 메시지로 사용자에게 과도한 부담을 주지 않도록 Toast.show() 호출 수에 비율 제한을 사용 설정합니다. 특정 기간에 허용된 것보다 많은 토스트 메시지를 표시하려고 하면 토스트 메시지가 삭제됩니다.

USE_EXPERIMENTAL_COMPONENT_ALIAS

변경 ID: 196254758
기본 상태: 모든 앱에서 사용 중지됩니다.

사용 설정하면 시스템은 'android' 패키지가 구성요소 별칭을 사용하도록 허용합니다.