반응형
Android 15(API 35)로 타깃 SDK를 올리면 Google Play 정책뿐만 아니라 UI/화면 처리 방식에서도 여러 변화가 생깁니다. 이 글에서는 주요 변경사항과 실제로 앱에 적용해야 할 수정 방안을 정리했습니다.
1. Edge-to-Edge 모드 강제 적용
🔄 변경 내용
- Android 15에서 SDK 35 이상 타깃 앱은 기본적으로 Edge-to-Edge 모드가 강제됩니다.
- 상태바(Status bar), 내비게이션 바(Navigation bar)가 투명해지고, 앱 콘텐츠가 화면 끝까지 확장됩니다.
🛠 수정 방안
- WindowInsets API를 사용해 시스템 바 영역을 안전하게 처리해야 합니다.
- 예시:
WindowCompat.setDecorFitsSystemWindows(window, false)
ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
2. 시스템 바 색상 처리 방식 변경
🔄 변경 내용
- window.statusBarColor 직접 설정 방식이 deprecated.
- 대신 투명 처리 후 배경은 앱이 직접 그려야 합니다.
🛠 수정 방안
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars = true
3. 화면 크기 계산 방식 변경
🔄 변경 내용
- Configuration.screenWidthDp / screenHeightDp 값이 시스템 바까지 포함하는 방식으로 바뀌었습니다.
🛠 수정 방안
val metrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(this)
val bounds = metrics.bounds
val width = bounds.width()
val height = bounds.height()
4. 디스플레이 컷아웃(Display Cutout) 처리
🛠 수정 방안
val insets = ViewCompat.getRootWindowInsets(window.decorView)
val safeInsets = insets?.getInsets(WindowInsetsCompat.Type.systemBars())
view.setPadding(
safeInsets?.left ?: 0,
safeInsets?.top ?: 0,
safeInsets?.right ?: 0,
safeInsets?.bottom ?: 0
)
5. TextView/폰트 렌더링 변경
🛠 수정 방안
<TextView
android:ellipsize="end"
android:scrollHorizontally="true"
android:elegantTextHeight="false"/>
6. EditText 줄 높이 변경
🛠 수정 방안
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineHeight="20sp" />
6. 네이티브 라이브러리 점검 (정책 대응)
readelf -lW libYourNative.so | grep "Align"
# 결과 Align 0x4000 → 정상
# 결과 Align 0x1000 → 수정 필요
✅ 마무리
- Android 15의 가장 큰 UI 변화는 Edge-to-Edge 강제 적용과 WindowInsets 기반 처리입니다.
- 단순히 Google Play 정책 대응(16KB 페이지 크기)뿐 아니라, 화면/UI 변경사항까지 조기에 테스트해야 앱 품질을 지킬 수 있습니다.
- 특히 풀스크린 UI, 다국어 앱, 커스텀 status/navigation bar 처리 앱은 반드시 Android 15 기기에서 검증하세요.
반응형
'Android' 카테고리의 다른 글
| [안드로이드]Google Play, 16KB 메모리 페이지 크기 지원 의무화 (2025년 11월부터) (0) | 2025.09.29 |
|---|---|
| [안드로이드] Play Store 심사 탈락 사례 모음 & 대응 방법 (1) | 2025.05.06 |
| [안드로이드] NetworkOnMainThreadException 발생 원인과 해결 방법 (1) | 2025.05.01 |
| [안드로이드] 앱 성능 최적화 : 렌더링 성능 (1) | 2025.04.27 |
| [안드로이드] 앱 성능 최적화 : 네트워크 최적화 (0) | 2025.04.27 |