ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 안드로이드 앱에서 16KB 메모리 페이지 크기 지원
    개발일지 2025. 9. 25. 21:53
    728x90

    최근 결제 프로필에 문제가 있음으로 (개인사업자, 법인관련 이슈로) 구글 계정을 3개나 더 만들고, 개발자 등록, 앱 이전,  개발자 인증 실패로 몇개월을 고생했고, 겨우 성공해서 한 숨 돌리고 있었는데...

     

    얼마전까지는 앱 타겟을 API 35이상으로 수정하라고 경고를 해서, 수정완료했습니다.

    서비스 중인 게임이 9개인데, 모두 동일하게 컴파일하고 업로드했지만 2개는 무슨 이유인지 몰라서 일단 2달 정도 미뤘는데...

     

    11월 1일이 되기도 전에, 구글 정책이 또 나왔습니다 ㅋㅋ

    (아이폰은 마지막 업로드 이후, 몇 년이나 지났지만 잘 서비스 중이라, 너무 비교가 됩니다.)

     

    최근 구글 알림이 빨간색으로 알려줘서, 정책이 뭔가 무시무시합니다.

    16KB 메모리 페이지 크기 지원이라고 하는데, 자세한 내용은 이렇습니다.

    https://developer.android.com/guide/practices/page-sizes?hl=ko

     

    16KB 페이지 크기 지원  |  Compatibility  |  Android Developers

    이 페이지는 Cloud Translation API를 통해 번역되었습니다. 16KB 페이지 크기 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 16KB Google Play 호환성 요구사항 202

    developer.android.com

     

    1. 대상 앱(게임)

    유니티, 언리얼 등 엔진을 사용하지 않고, 게임을 제작한다면 대부분 네이티브로 개발하실겁니다.

    저 또한 Java는 앱 구동 및 구글 플레이 서비스만 사용하고, OpenGL ES, OpenAL 등 실제 로직은 C++로 작성하고 있습니다. 네이티브로 개발하는 한 앱에 해당된다고 보시면 됩니다.

     

    - 안드로이드 스튜디오 상단 메뉴 Build > Analyze APK... 를 실행합니다. lib 폴더안 .so파일 4KB 어쩌고 저쩌고 노란색 불이 들어왔으면 대상이라 보시면됩니다. 

     

    2. 대응

    공식 문서에는 몇 %가 빨라지고 좋아진다고 하는데, 솔직히 개발자 입장에서 이딴게 궁금하지 않죠?!! 어떻게 대응하느냐지..덜 피곤하길 기도하면서 찾아보죠 솔직히!!

     

    - AGB버전 8.5.1이상 + Android NDK r28이상으로 컴파일 하면 해결됩니다.

    (안드로이드 스튜디오 옛날 버전이라 생각들면, 최신 버전으로 새로 설치하고 설정 이것저것 만저주시는게 좋습니다. 저도 이번에 오랜만에 만져봤는데, 옛날에 비하면 선녀더군요. 뭐 아직 한참 구리지만... 그냥 이클립스랑 연동할때 그대로 두지 쓸데없이 이런 쓰레기 왜 만든건지 이해가 잘...)

    - AGP 버전은 File > Project structure > Project탭에서 확인 가능합니다.

     

    - NDK 버전은 Tools > SDK Manager로 Settings창을 띄웁니다. 오른쪽 하단 Show Package Details를 눌러서 필요한 버전을 (rc가 붙은 버전을 피해서) 받으시면 됩니다. 

    저의 경우 NDK 버전이 여러개가 설치되어, build.gradle.kts(:app)에서 ndkVersion = "28.2.13676358" 입력하여 강제로 해당 버전으로 컴파일 되도록 했습니다.

     

    - Application.mk에 해당 옵션을 넣습니다. 64비트 지원 대상이기 때문에, arm64-v8a이나 x86_64이 없으면, 해당 단말기 혹은 에뮬레이터에서 지원하지 않는 앱이라면서 설치가 되지 않습니다.

     

    3. 트러블슈팅

    저의 경우 사운드 파일을 로드하면서 문제가 발생했습니다. 다행히 OpenAL은 잘 동작했지만, 용량을 줄이기 위해 Ogg파일을 사용하고, 사용시 PCM방식으로 변환 작업을 거치는데, Tremor라이브러가 64비트로 동작하면서 문제가 발생했습니다. 이 라이브러리는 (15년전) 2011년에 제가 사용할 목적으로 설정해서 쭉 사용해왔는데, 이젠 기억도 가물가물거려서 수정하느라 조금 헤맸습니다.

     

    내일은 단말기에 테스트를 하면서 업로드 노가다를 진행해야겠습니다.

    개발자 분들 파이팅입니다!!

     

    #안드로이드 #16KB메모리페이지크기지원 #구글정책 #API수준 #안드로이드스튜디오 #16KB메모리 #메모리페이지크기지원

Designed by Tistory.