繁体   English   中英

即使它是X86,Asus Fonepad 7上的Android也会报告为armeabi-v7a

[英]Android on Asus Fonepad 7 report to be armeabi-v7a even if it's an X86

在我的应用程序中,我从Build.CPU_ABI检查CPU,如果CPU是X86,请让用户下载捆绑了X86库的正确软件包。

但是今天我得到了带有Intel CPU的Asus Fonepad 7,但令人惊讶的是Build.CPU_ABIarmeabi-v7a而不是X86 我在某处读到,由于许多开发人员没有在他们的应用程序中捆绑X86本机库,华硕使用了ARM-X86转换器,因此应用程序认为是在Arm设备上运行。 更令人惊讶的是,即使捆绑了X86库,它仍然会加载Arm库。

我认为代码转换会大大降低性能。 那么有什么方法可以确定真正的CPU拱门吗? 之后强制X86库加载而不是Arm?

------编辑--------

当我从包中删除armeabi-v7a文件夹时** Build.CPU_ABI变为X86,现在它加载了X86代码。**

我检查了/ proc / cpuinfo,唯一明确的是它包装了一个Intel CPU。 如果英特尔单词出现在cpuinfo中,那么将CPU视为X86是否安全?

唯一的选择是拥有两个不同的APK,一个用于另一个用于X86。 因为如果所有二进制文件都在同一个APK文件中,那么无论如何都会加载Arm二进制文件!

这是/ proc / cpuinfo内容:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 90
model name  : Genuine Intel(R) CPU   4000  @ 1.00GHz
stepping    : 0
microcode   : 0x27
cpu MHz     : 1833.000
cache size  : 1024 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips    : 1996.80
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 90
model name  : Genuine Intel(R) CPU   4000  @ 1.00GHz
stepping    : 0
microcode   : 0x27
cpu MHz     : 1833.000
cache size  : 1024 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 4
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips    : 1996.80
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 90
model name  : Genuine Intel(R) CPU   4000  @ 1.00GHz
stepping    : 0
microcode   : 0x27
cpu MHz     : 1833.000
cache size  : 1024 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 4
apicid      : 4
initial apicid  : 4
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips    : 1996.80
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 90
model name  : Genuine Intel(R) CPU   4000  @ 1.00GHz
stepping    : 0
microcode   : 0x27
cpu MHz     : 1833.000
cache size  : 1024 KB
physical id : 0
siblings    : 4
core id     : 3
cpu cores   : 4
apicid      : 6
initial apicid  : 6
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips    : 1996.80
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

你可以读/ proc / cpuinfo

➜  ~  adb shell
shell@android:/ $ cat /proc/cpuinfo                                            
Processor   : ARMv7 Processor rev 10 (v7l)
getprop | grep -i cpu

这将告诉你所有可用的abis ...一般来说,getprop对于获得更多粗糙的sysinfo非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM