俗语俗话 --- 什么是ABI API

API是应用程序编程接口,通俗讲就是应用程序之间定义的接口,暴露在外部提供调用的地址。

ABI是应用程序二进制接口,是应用程序和底层cpu之间定义的接口,就是指令集。

ABI(Application Binary Interface)

ABI 是 二进制层面的接口规范,它定义了:

CPU 指令集(如 ARMv8、x86_64)

函数调用约定(参数如何传递,返回值如何存储)

系统调用方式(如何与操作系统交互)

数据类型大小和对齐(如 int 是 4 字节)

异常处理机制(如 C++ 的异常如何传递)

在 Android 开发中的 ABI:Android 支持多种 CPU 架构,每种架构有自己的 ABI:

ABICPU 架构说明

armeabi-v7a

ARM 32-bit

旧版 ARM,支持浮点运算

arm64-v8a

ARM 64-bit

现代 ARM,性能更好

x86

Intel 32-bit

模拟器/旧设备使用

x86_64

Intel 64-bit

现代 x86 CPU

mips / mips64

MIPS 架构

已废弃

ABI 兼容性问题:

如果 App 只提供 arm64-v8a 库,则在 armeabi-v7a 设备上可能崩溃(除非启用兼容模式)。

NDK 编译时需指定目标 ABI(如 -DANDROID_ABI=arm64-v8a)。

API(Application Programming Interface)

API 是 源代码层面的接口规范,它定义了:

可调用的函数/方法(如 Activity.onCreate())

数据结构(如 Intent、Bundle)

协议/通信方式(如 REST API、gRPC)

编程语言绑定(如 Java/Kotlin 的 Android SDK)

在 Android 开发中的 API:

Android SDK API 级别(如 API 34 = Android 14)

不同版本提供不同的功能(如 API 21 引入 Material Design)。

Java/Kotlin 标准库 API(如 List、String)

NDK API(如 libc、OpenGL ES)

API 兼容性问题:

如果调用 API 28 的新方法,但在 API 21 设备上运行,会抛出 NoSuchMethodError。

通常用 @RequiresApi 或 Build.VERSION.SDK_INT 做版本检查。

Copyright © 2088 世界杯点球_2022世界杯亚洲预选赛 - ktllb.com All Rights Reserved.
友情链接