Android 앱은 스마트폰, 태블릿, 폴더블, Chromebook, 자동차, TV, XR 등 모든 종류의 기기에서 실행됩니다. 이러한 다양한 환경에 적응하려면 앱이 모든 기기 폼 팩터와 디스플레이 크기를 지원해야 합니다.
Android 16 (API 수준 36)을 사용하면 앱이 화면 방향, 가로세로 비율, 크기 조절 가능성에 대한 앱 제한을 재정의하여 다양한 폼 팩터와 디스플레이 크기에 맞게 조정할 수 있습니다. 재정의는 최소 너비가 600dp를 초과하는 기기에 적용되며 다음을 정의합니다.
태블릿
대형 화면 폴더블의 내부 디스플레이
데스크톱 창 모드 (모든 폼 팩터)
API 수준 36을 타겟팅하는 앱은 크기를 조절할 수 있으며 디스플레이의 최소 너비가 600dp 이상인 경우 멀티 윈도우 모드 (resizeableActivity="true"와 동일)로 전환할 수 있습니다.
그림 1. 이전에 대형 화면 기기 (왼쪽)에서 레터박스 처리된 개발자 뉴스 피드는 Android 16(오른쪽)을 타겟팅할 때 전체 화면으로 실행됩니다.
Android 16은 기기 방향, 가로세로 비율, 디스플레이 크기에 관한 사용자 환경설정을 준수하여 사용자 환경을 최적화하는 일관된 적응형 앱 디자인 모델을 시행합니다.
변경사항
대형 화면에서 Android 16 (API 수준 36)을 타겟팅하는 앱의 경우 다음 매니페스트 속성과 API가 무시됩니다.
앱이 Android 16 변경사항의 영향을 받는지 테스트하려면 Android 스튜디오에서 Pixel Tablet 및 Pixel Fold 시리즈 에뮬레이터를 사용하고 앱의 모듈 build.gradle 파일에서 targetSdkPreview = "Baklava"를 설정하세요.
기기 방향, 가로세로 비율 또는 앱 크기 조절 가능 여부를 제한하는 앱은 Android 16에서 겹치는 레이아웃과 같은 디스플레이 문제가 발생할 수 있습니다.
휴대전화, 폴더블, 태블릿, Chromebook, 자동차 디스플레이 또는 XR에서 최적의 사용자 환경을 제공하려면 반응형 및 적응형으로 앱을 빌드하세요.
UI 구성요소 늘리기 피하기: 표준 세로 모드 휴대전화 화면에 맞게 설계된 레이아웃은 다른 가로세로 비율을 수용할 수 없을 가능성이 높습니다. 예를 들어 디스플레이의 전체 너비를 채우는 UI 요소는 가로 모드 방향에서 늘어난 것처럼 표시됩니다. 늘어나지 않도록 구성요소에 최대 너비를 추가합니다.
스크롤하도록 레이아웃 사용 설정: 레이아웃이 스크롤되지 않으면 사용자가 가로 모드 방향에서 화면 밖의 버튼이나 기타 UI 요소에 액세스하지 못할 수 있습니다. 디스플레이 높이와 관계없이 모든 콘텐츠에 액세스할 수 있도록 앱 레이아웃이 스크롤되도록 사용 설정합니다.
세로 모드와 가로 모드에서 카메라 호환성 보장: 카메라 센서에 대해 특정 가로세로 비율과 방향을 가정하는 카메라 뷰파인더 미리보기는 비규격 디스플레이에서 미리보기가 늘어나거나 뒤집힐 수 있습니다. 방향 변경 시 뷰파인더가 올바르게 회전하는지 확인합니다.
뷰파인더가 센서 가로세로 비율과 다른 UI 가로세로 비율에 맞게 조정되도록 사용 설정합니다.
창 크기 변경 중에 상태 유지: 방향 및 가로세로 비율 제한을 삭제하면 사용자가 앱을 사용하는 방식(예: 기기 회전, 접기, 펼치기 또는 멀티 윈도우 또는 데스크톱 창 모드에서 앱 크기 조절)에 따라 앱 창 크기가 자주 변경될 수 있습니다. 방향 변경 및 창 크기 조절과 같은 구성 변경으로 인해 기본적으로 활동이 다시 생성됩니다. 최적의 사용자 환경을 보장하려면 구성 변경 중에 앱 상태를 보존하여 앱이 데이터 (예: 양식 입력)를 유지하고 사용자가 컨텍스트를 유지할 수 있도록 하세요.
창 크기 클래스 사용: 기기별 맞춤설정 없이 다양한 창 크기와 가로세로 비율을 지원합니다. 창 크기가 자주 변경된다고 가정합니다. 창 크기 클래스를 사용하여 창 크기를 특성화한 다음 적절한 적응형 레이아웃을 적용합니다.
반응형 레이아웃 빌드: 창 크기 클래스 내에서 반응형 레이아웃은 디스플레이 크기의 변경사항에 맞게 조정되어 항상 최적의 앱 프레젠테이션을 만듭니다.
타임라인
Android 16 (2025): 모든 방향 및 가로세로 비율과 앱 크기 조절 지원은 API 수준 36을 타겟팅하는 앱의 대형 화면 기기(가장 작은 화면 너비 600dp 이상)의 기준 환경입니다. 그러나 개발자는 선택 해제할 수 있습니다.
2026년 Android 출시: 모든 방향 및 가로세로 비율 지원과 앱 크기 조절 가능 여부는 API 수준 37을 타겟팅하는 앱의 대형 화면 기기 (가장 작은 화면 너비 600dp 이상)의 기준 환경이 됩니다.
개발자는 선택 해제할 수 없습니다.
대상 API 수준
대상 기기
개발자 선택 해제 허용됨
36 (Android 16)
대형 화면 기기 (가장 작은 화면 너비 >= 600dp)
예
37 (예상됨)
대형 화면 기기 (가장 작은 화면 너비 >= 600dp)
아니요
특정 API 수준을 타겟팅하는 기한은 앱 스토어마다 다릅니다. Google Play에서는 2026년 8월부터 앱이 API 수준 36을, 2027년 8월부터 API 수준 37을 타겟팅하도록 요구합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# App orientation, aspect ratio, and resizability\n\nAndroid apps run on devices of all kinds: phones, tablets, foldables,\nChromebooks, cars, TVs, and even XR. To adapt to this varied environment, your\napp should support all device form factors and display sizes.\n\nAndroid 16 (API level 36) enables apps to adapt to different form factors and\ndisplay sizes by overriding app restrictions for screen orientation, aspect\nratio, and resizability. The overrides apply to devices with smallest width \\\u003e=\n600dp which defines the following:\n\n- Tablets\n- Inner displays of large screen foldables\n- Desktop windowing (on all form factors)\n\nApps that target API level 36 are resizable and able to enter multi‑window\nmode (equivalent to [`resizeableActivity=\"true\"`](/guide/topics/manifest/activity-element#resizeableActivity)) if the display's smallest\nwidth is \\\u003e= 600dp.\n**Figure 1.** Developer News feed previously letterboxed on large screen devices (left) runs full screen when targeting Android 16 (right).\n\nAndroid 16 enforces a consistent model of adaptive app design that optimizes the\nuser experience by respecting user preferences for device orientation, aspect\nratio, and display size.\n\nChanges\n-------\n\nThe following manifest attributes and APIs are ignored for apps targeting\nAndroid 16 (API level 36) on large screens:\n\n| Attribute or API | Ignored values |\n|---------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\n| `screenOrientation` | `portrait`, `landscape`, `reversePortrait`, `reverseLandscape`, `sensorPortrait`, `sensorLandscape`, `userPortrait`, `userLandscape` |\n| `resizeableActivity` | all |\n| `minAspectRatio` | all |\n| `maxAspectRatio` | all |\n| `setRequestedOrientation()` `getRequestedOrientation()` | `portrait`, `landscape`, `reversePortrait`, `reverseLandscape`, `sensorPortrait`, `sensorLandscape`, `userPortrait`, `userLandscape` |\n\nExceptions\n----------\n\nExceptions to the Android 16 changes include the following:\n\n- Displays smaller than sw600dp (most phones, flippables, and outer displays\n of large screen foldables)\n\n- Games, based on the [`android:appCategory`](/guide/topics/manifest/application-element#appCategory) flag\n\n Publish your game using Android App Bundles and Play App Signing, allowing\n Google Play to manage the flag and provide the benefits of app bundles\n automatically. See also [App manifest overview](/guide/topics/manifest/manifest-intro).\n- User opt in to app's default behavior in the aspect ratio settings\n\nOpt out\n-------\n\nTo opt out of the API level 36 behavior, declare the\n`PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY` manifest property.\n\nTo opt out for a specific activity, set the property in the `\u003cactivity\u003e`\nelement: \n\n \u003cactivity ...\u003e\n \u003cproperty\n android:name=\"android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY\"\n android:value=\"true\" /\u003e\n ...\n \u003c/activity\u003e\n\nTo opt out for your entire app, set the property in the `\u003capplication\u003e` element: \n\n \u003capplication ...\u003e\n \u003cproperty\n android:name=\"android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY\"\n android:value=\"true\" /\u003e\n ...\n \u003c/application\u003e\n\n| **Warning:** The Android framework will eliminate the opt-out capability in API level 37. For apps that target API level 37 or higher, orientation, aspect ratio, and resizability restrictions will always be ignored on displays that are at least sw600dp.\n\nTests\n-----\n\nTo test whether your app is impacted by the Android 16 changes, use the Pixel\nTablet and Pixel Fold series emulators in Android Studio and set\n`targetSdkPreview = \"Baklava\"` in your app's module `build.gradle` file.\n\nOr use the app compatibility framework on your test devices by enabling the\n[UNIVERSAL_RESIZABLE_BY_DEFAULT](/about/versions/16/reference/compat-framework-changes#universal_resizable_by_default) flag (see [Compatibility framework tools](/guide/app-compatibility/test-debug)).\n\nYou can automate testing with the [Espresso](/training/testing/espresso) testing framework and [Jetpack\nCompose testing APIs](/develop/ui/compose/testing/apis).\n\nCommon problems\n---------------\n\nApps that restrict device orientation, aspect ratio, or app resizability might\nhave display issues on Android 16, such as overlapping layouts.\n\nTo provide an optimal user experience on phones, foldables, tablets,\nChromebooks, car displays, or XR, build your app to be responsive and adaptive:\n\n- **Avoid stretched UI components:** Layouts designed for standard, portrait\n phone screens will likely fail to accommodate other aspect ratios. For\n example, UI elements that fill the entire width of the display will appear\n stretched in landscape orientation. Add a maximum width to components to\n avoid stretching.\n\n- **Enable layouts to scroll:** If layouts don't scroll, users might not be\n able to access buttons or other UI elements that are off screen in landscape\n orientation. Enable app layouts to scroll to ensure all content is reachable\n regardless of the height of the display.\n\n- **Ensure camera compatibility in portrait and landscape:** Camera viewfinder\n previews that assume a specific aspect ratio and orientation relative to the\n camera sensor can result in stretched or flipped previews on nonconforming\n displays. Ensure viewfinders rotate properly with orientation changes.\n Enable viewfinders to adjust to UI aspect ratios that differ from the sensor\n aspect ratio.\n\n- **Preserve state during window size changes:** The removal of orientation\n and aspect ratio restrictions can result in frequent app window size changes\n in response to how users prefer to use an app, for example, by rotating,\n folding, or unfolding a device or by resizing an app in multi-window or\n desktop windowing mode. Configuration changes such as orientation changes\n and window resizing cause activity recreation (by default). To ensure an\n optimal user experience, preserve app state during configuration changes so\n your app retains data (such as form input) and users can maintain context.\n\n- **Use window size classes:** Support different window sizes and aspect\n ratios without device‑specific customizations. Assume window sizes\n will change frequently. Use window size classes to characterize the window\n dimensions, and then apply an appropriate adaptive layout.\n\n- **Build responsive layouts:** Within window size classes, responsive layouts\n adjust to changes in display dimensions to always create an optimal app\n presentation.\n\nTimeline\n--------\n\n- **Android 16 (2025):** Support for all orientations and aspect ratios and\n for app resizability is the baseline experience for large screen devices\n (smallest screen width \\\u003e= 600dp) for apps that target API level 36. However,\n developers can opt out.\n\n- **Android release in 2026:** Support for all orientations and aspect ratios\n and for app resizability will be the baseline experience for large screen\n devices (smallest screen width \\\u003e= 600dp) for apps that target API level 37.\n Developers will not have an option to opt out.\n\n| Target API level | Applicable devices | Developer opt out allowed |\n|------------------|--------------------------------------------------------|---------------------------|\n| 36 (Android 16) | Large screen devices (smallest screen width \\\u003e= 600dp) | Yes |\n| 37 (Anticipated) | Large screen devices (smallest screen width \\\u003e= 600dp) | No |\n\nThe deadlines for targeting specific API levels are app store specific. Google\nPlay will require apps to target API level 36 as of August 2026, API level 37 as\nof August 2027.\n\nAdditional resources\n--------------------\n\n- [Behavior changes: Apps targeting Android 16 or higher](/about/versions/16/behavior-changes-16)\n- [Build adaptive apps](/develop/ui/compose/build-adaptive-apps)\n- [Adaptive do's and don'ts](/develop/ui/compose/layouts/adaptive/adaptive-dos-and-donts)"]]