写点什么

Android ABI

用户头像
Changing Lin
关注
发布于: 2 小时前
Android ABI

1.简介

不同的 Android 设备使用不同的 CPU,而不同的 CPU 支持不同的指令集。

CPU 与指令集的每种组合都有专属的应用二进制接口 (ABI)

2.支持的 ABI

2.1 armeabi-v7a

此 ABI 适用于基于 32 位 ARM 的 CPU。armeabi、Thumb-2、VFPv3-D16

2.2 arm64-v8a

此 ABI 适用于基于 ARMv8-A 的 CPU,支持 64 位 AArch64 架构。它包含高级 SIMD (Neon) 架构扩展指令集。

2.3 x86

此 ABI 适用于支持通常称为“x86”、“i386”或“IA-32”的指令集的 CPU。

2.4 x86_64

此 ABI 适用于支持通常称为“x86-64”的指令集的 CPU。


3.为特定 ABI 生成代码

  • Gradle

android {    defaultConfig {        ndk {            abiFilters 'arm64-v8a', 'x86_64'        }    }}
复制代码
  • ndk-build

APP_ABI := arm64-v8a  # Target only arm64-v8aAPP_ABI := all  # Target all ABIs, including those that are deprecated.APP_ABI := armeabi-v7a x86_64  # Target only armeabi-v7a and x86_64.
复制代码
  • CMake

$ cmake -DANDROID_ABI=arm64-v8a ...$ cmake -DANDROID_ABI=armeabi-v7a ...$ cmake -DANDROID_ABI=x86 ...$ cmake -DANDROID_ABI=x86_64 ...
复制代码

构建系统的默认行为是将每个 ABI 的二进制文件包括在单个 APK(也称为胖 APK)内。

在安装时,软件包管理器只解压缩最适合目标设备的机器代码。

发布于: 2 小时前阅读数: 2
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
Android ABI