如何确定基于x86架构的Android设备是否能运行armeabi-v7a?

4

链接 https://developer.android.com/ndk/guides/abis.html 表明许多(但不是全部)基于x86的Android设备可以运行armeabi-v7a和armeabi NDK二进制文件。是否存在API来识别基于x86的设备是否支持armeabi-v7a二进制文件?或者,是否有一种通过adb检查此支持的方法?谢谢。

2个回答

7

对于我的x86 Android设备,有这个(可以从Java端访问):

Build.SUPPORTED_ABIS = {java.lang.String[3]@4180} 
 0 = "x86"
 1 = "armeabi-v7a"
 2 = "armeabi"

如果您想通过adb访问来检查支持的ABI,您可以尝试获取属性。

adb shell getprop ro.product.cpu.abilist

ro.product.cpu.abilist=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.dalvik.vm.isa.arm=x86

了解如何检查ABIs的更多信息:https://software.intel.com/en-us/blogs/2014/12/16/how-to-identify-the-image-is-32-bit-or-64-bit-user-space


此外,您还可以通过__system_property_read() (<sys/system_properties.h>)从本地代码中获取属性。 - Sergio

1
我认为如果Houdini可用,就会有一个类似于/system/lib/arm的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接