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

时间:2015-06-25 10:18:46

标签: android arm intel

我正在测试包含一些本机库的应用。 到目前为止,这些库仅用于 armeabi arch。 用于测试目的的设备是Asus Zenfone 4。 它是基于英特尔的设备,因此我预计运行该应用程序时会遇到问题,因为该库的没有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:

1 个答案:

答案 0 :(得分:6)

  

是因为某种ARM仿真吗?

是。它被称为libhoudini。引用myself

  

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

请注意,libhoudini仅适用于NDK。基于Java的纯应用程序应该可以在任何受支持的CPU架构上正常运行。

  

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

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