有时下载软件包有好几种选择,包括 arm64-v8a、armeabi-v7a、armeabi、x86_64 等。如果不清楚它们的含义,随便选择下载可能导致软件不能安装。以下是相关知识介绍。
从这些命名大概可以猜出它与 32 位或 64 位软件有关,部分确实可以这样理解,更准确的说法是:arm64-v8a 和 armeabi-v7a 这些信息表示手机处理器和其支持指令集的对应 ABI (应用二进制接口)。
简单来说就是使用不同 ABI 的软件包,它们支持在不同手机处理器上运行,请见下面表格介绍。
ABI 名称 | 对应 CPU |
---|---|
arm64-v8a | 表示第 8 代 64 位 ARM 处理器 |
armeabi-v7a | 表示第 7 代及以上 32 位 ARM 处理器 |
armeabi | 表示第 5 代和第 6 代 32 位 ARM 处理器 |
x86-64 | 表示 Intel 64 位处理器(主要平板和虚拟机使用) |
x86 | 表示 Intel 32 位处理器(主要平板和虚拟机使用) |
提示:64 位处理器可以兼容运行针对 32 位处理器编译的软件,反之则不行 |
那么如何确认自己手机支持哪些 ABI 呢?
简单方法可以安装安兔兔评测软件查看,在我的设备 -> CPU 栏目下查看。
图中显示手机支持的 ABI(由于 64 位处理器能兼容运行 32 位软件,所以这里显示多个 ABI)
如果不想安装软件,还可以使用下面 ADB 命令查询(以 USB 调试模式连接电脑,并配置好 ADB 命令环境变量)。
adb shell getprop ro.product.cpu.abi
比如32位机器输入这个命令可以得到
比如64位机器输入这个命令可以得到