개발하는 두더지

[안드로이드] 2019년 8월부터 구글 플레이에 올라가는 앱 64비트 대응하기 본문

Java,Android

[안드로이드] 2019년 8월부터 구글 플레이에 올라가는 앱 64비트 대응하기

덜지 2019. 2. 14. 01:42

2019년 8월부터 구글 플레이에 올라가는 앱 64비트 대응하기


안드로이드는 2017년 롤리팝 때 부터 64비트 cpu를 지원했습니다. 그리고 이제 곧 다가올 2019년 8월 1일부터 구글 플레이에 앱을 새롭게 등록하거나 업데이트를 할 때 네이티브 코드를 사용하고 있다면 32, 64비트 so 파일들을 포함시켜야 합니다.   


앞으로 64비트 so 파일이 포함되지 않은 앱은 스토어에 등록되지 않는다는 것을 의미합니다. 이미 현재 기준 지금 사용하고 계신 스마트폰은 64비트가 대부분일 것입니다. 몇년전부터 64비트 지원으로 인해 대부분 4기가 이상 RAM을 탑재하고 있고 앞으로 더 많은 RAM을 탑재한 단말기가 나올 것 입니다.  그래서 구글에서 언젠간 CPU 성능이 낮은 32비트 단말기를 더이상 지원하지 않고 64비트만 사용하는 정책으로 바뀌게 될 것 같습니다. 64 비트를 지원한다는 것은 64 비트 단말기의 고급 컴퓨팅 기능을 활용해 인공 지능, 기계 학습과 같은 기술을 적용할 수 있다는 것이고 향후 64 비트 코드만 지원하는 생태계를 준비하는 것과 마찬가지기 때문입니다.


이러한 권고사항이 나왔으니 어떤 앱을 운영중 이거나, 새로운 앱을 등록하기 전에 몇가지를 확인해야 합니다.




첫번째,  

1. 네이티브 코드( so 파일)을 사용하지 않고, 자바와 코틀린으로만 개발된 앱은 이미 64비트를 지원하는 앱이므로 별다른 조치를 안해도 됩니다.

2. Unity 5.6이상을 사용하고 있던 기존의 게임 앱은 2021년 8월까지 32비트만 사용해도 문제가 없습니다.

3. 현재 64비트를 지원하지 않는 Wear OS, Android TV으로 생성된 프로젝트는 64비트를 지원할 필요가 없습니다.


두번째,  

자체적으로 C / C++ 네이티브 코드를 사용하거나,  써드 파티 so 파일을 사용하는 경우 아래의 파일들이 있는지 확인하면 됩니다. 

프로젝트의 jniLibs 폴더에 각 ABI 타입마다 폴더가 들어있습니다. 그 안에 32, 64비트 so 파일을 추가하고 APK를 만들어서 스토어에 등록/업데이트를 진행하면 됩니다.


Platform32-bit libraries folder64-bit libraries folder
ARMlib/armeabi-v7alib/arm64-v8a
x86lib/x86lib/x86_64



이미 스토어에 올라가있는 APK가 64비트를 포함하고 있는지 확인할 수 있습니다.



arm64-v8a or x86_64 이 없다면 추가해서 스토어에 업데이트를 해야 합니다.




NDK를 직접 사용하는 경우에는 64비트 so 파일을 만들 수 있게 환경을 구축해야 합니다.

저는 NDK_BUILD를 사용하므로 여기에 기준을 맞춰서 설명하겠습니다. ( CMake 쓰는 분은 검색..)


Application.mk 파일에 아래 코드를 작성해주고 빌드를 하면 끝입니다.

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64






참고

https://developer.android.com/distribute/best-practices/develop/64-bit

https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

Comments