23ABI管理
23.1 ABI简介
不同Android设备使用不同的CPU,因此支持不同的指令集。CPU与指令集的每种组合都有其自己的应用二进制界面(或 ABI)。 ABI可以非常精确地定义应用的机器代码在运行时如何与系统交互。开发者必须为应用要使用的每个 CPU架构指定ABI。
典型的ABI 包含以下信息:
机器代码应使用的 CPU 指令集。
运行时内存存储和加载的字节顺序。
可执行二进制文件(例如程序和共享库)的格式,以及它们支持的内容类型。
用于解析内容与系统之间数据的各种约定。这些约定包括对齐限制,以及系统如何使用堆栈和在调用函数时注册。
运行时可用于机器代码的函数符号列表 - 通常来自非常具体的库集。
(Android系统采用小字节序 ARM GNU/Linux ABI)
23.2 支持的ABI
每个 ABI 支持一个或多个指令集,下表是每个 ABI 支持的指令集概:
ABI |
支持的指令集 |