※ 이 글은 오가사와라 히로유키(小笠原博之) 씨가 블로그에 적은 글을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.

Android 5.0 Nexus Player x86과 대응 ABI

(원문 : Android 5.0 Nexus Player x86 と対応 ABI)

Android는 5.0부터 64bit CPU에 대응합니다. Android에서의 첫 64bit device는 Nexus 9입니다. 물론 상위호환성이 있어서 종래의 32bit ARM Native code도 실행가능합니다. 32bit ARM에는 2종류의 ABI가 존재하므로 전부 3종류입니다.

ARMv8A AArch64  arm64-v8a
ARMv7A          armeabi-v7a
ARMV5TE         armeabi

Android 4.4까지는 동시에 2종류의 ABI에 대응할 수 있었습니다. Android 5.0 이후는 위에 적은 대로 3개 이상 지정할 수 있게 되었습니다.

동시에 발표된 Nexus Player는 Nexus 첫 Intel CPU (Atom Z35xx) 탑재 단말입니다. OS도 Android 5.0이지만, 아쉽게도 64bit(x86_64)가 아니라 32bit(x86)로 동작하는 것 같습니다.

ro.product.cpu.abi=x86
ro.product.cpu.abi2=armeabi-v7a
ro.product.cpu.abilist=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64=

이전에 알아본대로, Android x86 단말은 Binary Translator를 통해 ARM의 Native code를 실행할 수 있습니다. 같은 x86(32bit)이라도 5.0 이후라면 3종류 지정할 수 있으므로, Nexus Player의 경우 armeabi도 포함되어있다는 것을 알 수 있습니다.

Device       Android CPU           ABI
-------------------------------------------------------------------
Nexus 5         5.0  Krait 400                armeabi-v7a  armeabi
Nexus 9         5.0  Denver        arm64-v8a  armeabi-v7a  armeabi
Nexus Player    5.0  Silvermont    x86        armeabi-v7a  armeabi
MeMO Pad ME176  4.4  Silvermont    x86        armeabi-v7a

Android 5.0부터는 지금까지 x86에서 돌지 않던 앱도 돌아가게 될 지도 모릅니다. 장래 x64(x86_64) 단말이 등장하면 x86_64를 포함하여 4종류가 됩니다.

관련글

+ Recent posts