本篇简单介绍Android中so文件相关事项。
CPU架构
目前主流的CPU架构:x86,ARM,MIPS
它们采用的指令集又分为CISC(复杂指令集)和RISC(精简指令集)两种
CISC(复杂指令集):
1.指令系统庞大,指令功能复杂,指令格式、寻址方式多
2.绝大多数指令需多个机器周期完成
3.各种指令都可访问存储器
4.采用微程序控制
5.有专用寄存器,少量
6.难以用优化编译技术生成高效的目标代码程序
RISC(精简指令集):
1.统一指令编码,可快速解译;
2.泛用的暂存器,所有暂存器可用于所有内容,以及编译器设计的单纯化
3.单纯的寻址模式
4.硬件中支援少数资料型别
-
x86``CISC绝大部分pc都是x86架构。 -
ARM``RISC广泛应用在嵌入式系统 -
MIPS``RISC广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上
CPU架构和ABI
Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的应用程序二进制接口ABI(Application Binary Interface)。
ABI定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。
| ABI\CPU | armeabi | armeabi-v7a | arm64-v8a | mips|mips64|x86|x86_64|
|-----------|:-------------