阅读本文大约需要1分钟。
点击?小卡片,回复 “合集” 获取系统性的学习笔记和测试开发技能图谱
类型
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型的CPU,下面是几个常见的类型:
- ARM公司: arm架构
- Intel公司: x86和x86-64系列架构
- AMD公司: x86和x86-64系列架构
其中电脑PC一般是用Intel和AMD公司的x86和x86-64系列的CPU,手机一般是用arm的CPU,主要是因为arm处理器功耗低、体积小、非常适合手机这种嵌入式设备的使用场景。
iOS
armv7、armv7s、arm64、arm64e这些都是ARM处理器的指令集,下面看一下iOS真机和模拟器的CPU架构区别:
模拟器
- i386:32位模拟器
- x86-64:64位模拟器
真机
- arm64e :64位处理器,例如:iPhone XS | iPhone XS Max | iPhone XR | iPhone 11 | iPhone 11 Plus | iPhone 12 等新一代机型
- arm64:64位处理器,例如:iPhone 5S | iPhone 6 | iPhone 6 Plus | iPhone 6S | iPhone 6S Plus | iPhone 7 | iPhone 7 Plus | iPad (2018) | iPhone 8 | iPhone 8 Plus | iPhone X
- armv7s:32位处理器,例如:iPhone 5|iPhone 5C|iPad4(iPad with Retina Display)
- armv7:32位处理器,例如:iPhone 4|iPhone 4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
Android
在讲Android的CPU架构前先来看看ABI的概念,想必很多端上的测试开发同学在日常工作中都有听业务研发提到过Android应用ABI的支持情况。
ABI简介
不同的Android手机使用不同的CPU,而不同的CPU又支持不同的指令集,CPU 与指令集的每种组合都有专属的应用二进制接口,也就是我们上面提到的ABI。
CPU架构和ABI的关系
应用程序二进制接口(Application Binary Interface)定义了二进制文件,特别是.so文件如何运行在相应的系统平台上(从使用的指令集、内存对齐到可用的系统函数库等),在Android系统上,每一个CPU架构都对应一个ABI:armeabi,armeabi-v7a,arm64-v8a,x86,mips,mips64,x86_64。
CPU架构
目前主要有以下几种CPU架构:
- ARMv5:第5、6代的32位ARM处理器,缺少对浮点数计算的硬件支持,使用软件浮点运算,在需要大量计算时有性能瓶颈,虽然速度慢,但通用性强,支持的ABI类型:armeabi;
- ARMv7:第7代的32位ARM处理器,是目前的主流版本,使用硬件浮点运算,具有高级扩展功能,支持的ABI类型:armeabi-v7a 和 armeabi;
- ARMv8:第8代的64位ARM处理器,支持的ABI类型:arm64-v8a、armeabi-v7a和armeabi(可用32位模式运行armeabi-v7a和armeabi);
- x86:32位intel处理器,一般用于平板和模拟器,支持的ABI类型:armeabi(性能有所损耗) 和 x86;
- x86_64:64位intel处理器,一般用于平板和模拟器,支持的ABI类型:x86 和 x86_64;
- MIPS/MIPS64:极少用于手机可以忽略,支持的ABI类型:mips和mips64;
注意:在最新的Mac M1系列电脑上也可以运行ARM的模拟器了,CPU架构类型为arm64-v8a