본문 바로가기
[클라이언트]/[Android Kotlin]

Android 16KB 페이지 크기 지원 하기

by Hevton 2025. 12. 23.
반응형

컴퓨터의 OS가 메모리(RAM)를 관리할 때, 데이터를 아주 작은 단위로 쪼개서 관리하는데 이 단위를 '페이지(Page)'라고 부른다.

그동안 안드로이드는 이 단위를 4KB로 고정해서 사용해왔다. 마치 도서관의 책꽂이 칸이 모두 4KB 크기로 짜여 있었던 것과 같다.

 

 

Android 15(API 레벨 35) 이상의 모든 앱은 16KB 페이지 크기를 지원해야 한다.

기존 안드로이드는 메모리를 4KB 단위(페이지)로 쪼개어 관리했지만, 최신 CPU와 대용량 RAM 기기에서는 이 단위를 16KB로 키울 때

다음과 같은 이점이 있다.

 

  • 시스템에 메모리 문제가 있는 동안 앱 실행 시간 단축: 평균 3.16% 감소, 테스트한 일부 앱의 경우 더 큰 개선 (최대 30%)
  • 앱 실행 중 전원 소모 감소: 평균 4.56% 감소
  • 카메라 실행 속도 향상: 평균 핫 스타트 속도가 4.48%, 콜드 스타트 속도가 6.60% 빨라짐
  • 시스템 부팅 시간 개선: 평균 8% (약 950밀리초) 개선됨

 

 

순수 Java/Kotlin으로만 작성된 앱은 운영체제가 알아서 처리해주므로 별도 작업이 필요 없다.

하지만 C/C++ 코드(네이티브 라이브러리, .so 파일)를 사용하는 앱은 반드시 16KB 환경에 맞게 다시 빌드해야 한다.

 

  1. 네이티브 라이브러리 재빌드: .so 파일들이 16KB 경계에 맞춰 정렬(Alignment)되도록 컴파일 옵션을 수정해야 한다.
  2. 하드코딩된 값 수정: 코드 내에 4096이나 4KB라고 고정된 값이 있다면 이를 런타임에 페이지 크기를 확인하는 함수(getpagesize())로 변경해야 한다.
  3. Android Studio 설정 업데이트: Android Gradle Plugin(AGP)을 최신 버전(8.5.1 이상)으로 업데이트하면 많은 부분이 자동으로 해결된다.

 

 


 

그렇다면 내 앱이 마이그레이션 작업이 필요한지 어떻게 알 수 있을까?

 

 

공식 문서에서 안내하고 있는 방법은 다음과 같다.

 

방법 1.

플레이콘솔 -> 테스트 및 출시 -> 최신 버전 및 번들 -> 가장 최신 버전 앱 선택 -> 16KB 메모리 지원에 대한 안내사항 확인

 

방법 2.

Android Studio 에서 Build -> Analyze Apk -> 16 KB 메모리 지원하지 않는 라이브러리들에 대한 알림 확인

 

라이브러리들을 찾은 다음에 해당 라이브러리들을 최신 버전으로 업데이트하거나, 지원하지 않는 라이브러리들은

다른 라이브러리로 교체가 필요할 수도 있다.

 

 


 

나의 경우에는 다음과 같은 이유로, AGP 수정에 대한 부분만 체크해주면 됐다.

 

 

 

File -> Project Structure -> Project 에서 낮은 버전임을 확인할 수 있었다.

 

 

버전을 아래와 같이 조정해줬다.

 

 

끄읕!

반응형