美文网首页
Android ABI

Android ABI

作者: 笨鱼天阳 | 来源:发表于2021-11-19 12:31 被阅读0次

    Android 成长在于积累和分享

    本文:https://blog.csdn.net/CrazyApes/article/details/121604677

    ABI

    ABI 是 Application Binary Interface 的缩写。
    是应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。

    ABI涵盖了各种细节,如:

    • 数据类型的大小、布局和对齐;
    • 调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;
    • 系统调用的编码和一个应用如何向操作系统进行系统调用;
    • 以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。

    Android 支持的ABI

    Android目前支持以下七种ABI:armeabiarmeabi-v7aarm64-v8ax86x86_64mipsmips64

    CPU 支持的ABIs
    ARMv5 armeabi
    ARMv7 armeabi-v7a >> armeabi
    ARMv8 (64位) arm64-v8a >> armeabi-v7a >> armeabi
    x86 x86 >> armeabi-v7a >> armeabi
    x86_64 x86_64 >> x86 >> armeabi-v7a >> armeabi
    MIPS mips
    MIPS64 mips64 >> mips

    查看当前的ABI偏好

    每种CPU架构都有其自己支持的ABIs。
    可通过 Build.SUPPORTED_ABIS 得到根据偏好排序的设备支持的ABI列表。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        String[] ABIs = Build.SUPPORTED_ABIS;
        for (String s : ABIs) {
            Log.i("ABIs", s);
        }
    } else {
        String ABI = Build.CPU_ABI;
        Log.i("ABI", "ABI : " + ABI);
    }
    
    ========= print =========
     I/ABIs: arm64-v8a
     I/ABIs: armeabi-v7a
     I/ABIs: armeabi
    
     I/ABI: arm64-v8a
    

    查看当前的CPU信息

    • 使用adb查看
    C:\Users\Apes>adb shell cat /proc/cpuinfo
    Processor       : AArch64 Processor rev 4 (aarch64) // AArch64是ARMv8 架构的一种执行状态
    processor       : 0
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x801
    CPU revision    : 4
    
    processor       : 1
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x801
    CPU revision    : 4
    
    processor       : 2
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x801
    CPU revision    : 4
    
    processor       : 3
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x801
    CPU revision    : 4
    
    processor       : 4
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x800
    CPU revision    : 2
    
    processor       : 5
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x800
    CPU revision    : 2
    
    processor       : 6
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x800
    CPU revision    : 2
    
    processor       : 7
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x51
    CPU architecture: 8
    CPU variant     : 0xa
    CPU part        : 0x800
    CPU revision    : 2
    
    Hardware        : Qualcomm Technologies, Inc SDM660
    
    
    

    参考文献

    Android中的ABI (https://blog.csdn.net/mandagod/article/details/88245287)

    相关文章

      网友评论

          本文标题:Android ABI

          本文链接:https://www.haomeiwen.com/subject/jhbstrtx.html