arm64-v8a 和 armeabi-v7a、armeabi 有什么区别

有时下载软件包有好几种选择,包括 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
图中显示手机支持的 ABI(由于 64 位处理器能兼容运行 32 位软件,所以这里显示多个 ABI)

如果不想安装软件,还可以使用下面 ADB 命令查询(以 USB 调试模式连接电脑,并配置好 ADB 命令环境变量)。

adb shell getprop ro.product.cpu.abi

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。