Android:在英特尔设备上仅运行armeabi应用程序

agu*_*ran 5 android arm intel

我正在测试包含一些本机库的应用程序.到目前为止,这些图书馆仅供armeabi拱门使用.用于测试目的的设备是Asus Zenfone 4.它是基于Intel的设备,所以我期待运行应用程序时遇到问题,因为没有x86版本的库.

令人惊讶的是,该应用运行良好.问题是为什么?是因为某种ARM仿真吗?这种仿真适用于所有英特尔Android设备吗?

/ proc/cpuinfo包含以下内容:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 53
model name  : Intel(R) Atom(TM) CPU Z2520  @ 1.20GHz
stepping    : 1
microcode   : 0x110
cpu MHz     : 800.000
cache size  : 512 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts nonstop_tsc aperfmperf nonstop_tsc_s3 pni dtes64 monitor ds_cpl vmx est tm2 ssse3 xtpr pdcm movbe lahf_lm arat dtherm tpr_shadow vnmi flexpriority
bogomips    : 2396.16
clflush size    : 64
cache_alignment : 64
address sizes   : 32 bits physical, 32 bits virtual
power management:
Run Code Online (Sandbox Code Playgroud)

Com*_*are 7

是因为某种ARM仿真吗?

是.它被称为libhoudini.引用自己:

libhoudini是专为x86驱动的Android设备的ARM转换层.它允许具有ARM的NDK二进制文件但不是x86的应用程序仍然可以在x86硬件上运行,尽管不像使用本机x86二进制文件那样快.

请注意,libhoudini只有NDK才能发挥作用.纯Java基础应用程序应该可以在任何支持的CPU架构上正常运行.

这种仿真适用于所有英特尔Android设备吗?

"所有"是一个强有力的词.我将对冲并说"主要制造商的大多数英特尔驱动的Android设备".