APP开发怎样做好ABI管理?深圳APP开发公司本站对这个问题分为四步与各位分享。
1.ABI简介
2.支持的ABI
3.为特定ABI生成代码
4.Android系统的ABI管理
5.Android系统ABI支持
6.安装时自动解压缩原生代码
ABI简介Android系统支持不同的Android设备使用不同的CPU,CPU与指令集的每种组合都有其自己的应用二进制界面(或ABI)。ABI可以非常精确地定义应用的机器代码在运行时如何与系统交互。开发者必须为应用要使用的每个CPU架构指定ABI。 典型的ABI包含以下信息。机器代码应使用的CPU指令集。运行时内存存储和加载的字节顺序。可执行二进制文件(例如程序和共享库)的格式,以及它们支持的内容类型。用于解析内容与系统之间数据的各种约定。这些约定包括对齐限制,以及系统如何使用堆栈和在调用方法时注册。运行时可用于机器代码的方法符号列表——通常来自非常具体的库集。
开发APP关于支持的ABI每个ABI支持一个或多个指令集。
(1)armeabi此ABI适用于基于ARM、至少支持ARMv5TE指令集的CPU,不支持硬件辅助的浮点计算。
此ABI支持ARM的Thumb(亦称Thumb-1)指令集。NDK默认生成Thumb代码,除非在Android.mk文件中使用LOCAL_ARM_MODE变量指定不同的行为。
(2)armeabi-v7a此ABI可扩展armeabi以包含多个CPU指令集扩展,包括Thumb-2指令集扩展,其性能堪比32位ARM指令,简洁性类似于Thumb-1;VFP硬件FPU指令,更具体一点,包括VFPv3-D16,它除了ARM核心中的16个32位寄存器之外,还包含16个专用64位浮点寄存器;v7-aARM规格描述的其他扩展,包括高级SIMD(亦称NEON)、VFPv3-D32和ThumbEE,都是此ABI可选的。
(3)arm64-v8a此ABI适用于基于ARMv8、支持AArch64的CPU。它还包含NEON和VFPv4指令集。
(4)x86
此ABI适用于支持通常称为“x86”或“IA-32”的指令集的CPU。
(5)x86_64此ABI适用于支持通常称为“x86-64”的指令集的CPU。
(6)mips此ABI适用于基于MIPS、至少支持MIPS32r1指令集的CPU。
(7)mips64此ABI适用于MIPS64R6。好了,APP开发公司本文关于“APP开发怎样做好ABI管理?”的专业知识就分享到这里,谢谢关注,博纳网络编辑整理。