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種類です。
関連エントリ
・Nexus 9 Tegra K1 と ARM 64bit Denver
・Android x86 Binary Translator を試してみる