Android:在英特尔设备上运行仅限armeabi的应用程序
我正在测试包含一些本机库的应用程序。 到目前为止,这些库仅为armeabi提供。 用于测试目的的设备为。 它是基于Intel的设备,因此我预计在运行应用程序时会出现问题,因为没有x86版本的库 令人惊讶的是,该应用运行良好。问题是为什么? 这是因为某种手臂模拟吗? 所有英特尔安卓设备都是这样吗 /proc/cpuinfo包含以下内容:Android:在英特尔设备上运行仅限armeabi的应用程序,android,arm,intel,Android,Arm,Intel,我正在测试包含一些本机库的应用程序。 到目前为止,这些库仅为armeabi提供。 用于测试目的的设备为。 它是基于Intel的设备,因此我预计在运行应用程序时会出现问题,因为没有x86版本的库 令人惊讶的是,该应用运行良好。问题是为什么? 这是因为某种手臂模拟吗? 所有英特尔安卓设备都是这样吗 /proc/cpuinfo包含以下内容: processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 53 model
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:
这是因为某种手臂模拟吗
对。它被称为libhoudini
。引述:
libhoudini
是一个专有的ARM翻译层,用于x86驱动的Android设备。它允许具有ARM NDK二进制文件(而非x86)的应用程序仍在x86硬件上运行,尽管速度不如使用本机x86二进制文件时快
请注意,libhoudini
仅与NDK一起使用。纯基于Java的应用程序在任何受支持的CPU体系结构上都可以正常工作
所有英特尔安卓设备都是这样吗
“所有”是一个强有力的词。我会避讳并说“大多数英特尔支持的安卓设备来自主要制造商”。非常感谢。你知道有哪个英特尔设备没有包含这种模拟吗?@aguyngueran:真正的老设备,比如第一代谷歌电视设备,不会。我的机队中的每台现代x86设备都有它,AFAICT。我之所以避讳普遍性,是因为我不知道libhoudini的许可条款是什么,因此可能有设备制造商为了节约成本而选择跳过它。