구글 플레이 16KB 페이지 크기 요구사항

앞으로 Android 15 이상을 타겟팅하는 모든 앱은 16KB 페이지 사이즈를 지원해야 한다.
2025년 11월 1일부터는 16KB 페이지 사이즈를 지원하지 않는 앱은 Google Play에 업데이트를 출시할 수 없다고 한다.
16KB 페이지 크기 지원의 장점
기존에는 안드로이드에서 4KB 메모리 페이지 크기만 지원했지만,
안드로이드 15부터는 16KB 페이지 크기를 사용하는 기기를 지원하게 되었기 때문에
앱이 이러한 16KB 기기에서도 정상적으로 작동하도록 다시 빌드해야 한다고 한다.
16KB 페이지 크기로 구성된 기기는 평균적으로 약간 더 많은 메모리를 사용하지만,
시스템과 앱 모두에서 다양한 성능 개선 효과가 확인되었다고 한다.
- 시스템 메모리 부족 시 앱 실행 시간 평균 3.16% 단축, 일부 앱은 최대 30% 개선
- 전력 소모 평균 4.56% 감소
- 카메라 실행 속도 향상: 핫 스타트 4.48%, 콜드 스타트 6.60% 빨라짐
- 시스템 부팅 시간 평균 8% (약 950ms) 단축
APK Analyzer로 네이티브 라이브러리 확인하기
먼저, 어떤 라이브러리가 문제가 되는지 확인하기 위해 Android Studio의 APK Analyzer 기능을 사용했다.
1. Android Studio > File > Open을 클릭한 후 프로젝트를 선택한다.
2. 상단 메뉴에서 Build > Analyze APK...을 클릭한다.
3. 분석하려는 APK 파일을 선택한다.

이 도구를 통해 `Alignment` 항목에서 정렬 문제를 바로 확인할 수 있다고 한다.
하지만 내 경우에는 별다른 경고 메시지가 표시되지 않아서 어디를 수정해야 할지 몰라 더 혼란스러웠다.
구글 플레이 콘솔에서 최신 번들 세부정보 확인하기

구글링을 하던 중에 레딧에서 유용한 댓글을 하나 발견했다.
구글 플레이 콘솔의 앱 번들 페이지에서 어떤 라이브러리가 문제인지 세부정보를 확인할 수 있다는 것이었다.

실제로 `테스트 및 출시 > 최신 버전 및 번들`로 가서
최신 번들 세부정보 페이지 하단에서 `메모리 페이지 크기`라는 항목을 찾았다.
압축되지 않은 네이티브 라이브러리가 앱 내에서 16KB로 압축정렬(zipalign)되지 않았습니다. 이 문제를 해결하려면 AGP 구성을 수정하세요.
세부정보에서 안내하는 대로 AGP 구성을 수정하기로 했다.
AGP 버전 업그레이드
// android/settings.gradle
plugins {
id "com.android.application" version "8.5.1" apply false
}
공식 문서에서는 앱을 16KB로 정렬하기 위해 AGP 버전을 8.5.1 이상으로 업그레이드하는 것을 권장하고 있다.
// android/app/build.gradle
android {
...
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
만약 AGP를 버전 8.5.1 이상으로 업그레이드할 수 없는 경우에는
앱을 패키징할 때 Gradle이 공유 라이브러리를 압축하도록 설정할 수도 있다.
정책 위반 해결 완료

AGP를 8.5.1로 업그레이드한 후에 다행히 정책 위반이 해결되었다는 알림을 받았다!
참고 문서