【问题标题】:How to identify if an x86-based Android device can run armeabi-v7a?如何识别基于 x86 的 Android 设备是否可以运行 armeabi-v7a?
【发布时间】:2016-09-09 07:42:46
【问题描述】:

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

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    如果是我的 x86 android 设备,有这个(可从 Java 端访问):

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

    对于 adb 访问来检查支持的 abis,你可以尝试获取 props

    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>) 从本机代码中获取属性。
    【解决方案2】:

    如果 Houdini 可用,我相信会有 /system/lib/arm 或类似的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-01
      • 2019-11-11
      • 1970-01-01
      • 2013-06-30
      • 2012-08-26
      • 2016-11-23
      • 2015-06-13
      • 2019-11-25
      相关资源
      最近更新 更多