iOS_Apple 指令集

Apple 指令集

iOS测试分为模拟器测试和真机测试,处理器分为32位和64位。

ARM架构

​ ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。由于节能的特点,其在其他领域上也有很多作为。ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。

参考维基百科


指令集对应设备

Architecture 指令集对应设备说明
armv6iPhone、iPhone 3G、iPod 1G/2G32位,09年之前出的iOS设备
armv7iPhone 3GS、iPhone 4(S)、iPod 3G/4G/5G、iPad、iPad 2、iPad 3、iPad Mini32位,A5X及更早版本
armv7siPhone 5、iPhone 5c、iPad 432位,A6和A6X芯片中使用。 (iOS6.0及更高版本中可用)
arm64iPhone 5s、iPhone 6s(Plus)、iPhone 6(Plus)、iPhone 7(Plus)、iPhone 8(Plus)、iPhone X、iPad Air(2)、Retina iPad Mini(2,3)、Apple TV 4 20年末及之后推出的基于Apple Silicon的新型Mac使用的体系结构64位,A7及更高版本开始使用。 (iOS7.0及更高版本中可用)
arm64eiPhone XS/XR/XS Max/XR/11/11 Pro/11 Pro Max……64位,A12处理器的新指令集
i386iPhone5、iPhone5s及以下的模拟器。(macOS)32位 Intel 处理器 iOS6.1及更低版本上的唯一选项
x86_64iPhone6及以上的模拟器。(macOS) 05-21年间交付的所有Intel Mac的体系结构64位 Intel 处理器 iOS7.0开始可用

iOS11放弃支持32位应用,Modern Objective-C Runtime未在32位上受支持,是ARC模式支持的先决条件

  • ARM处理器和Intel处理器的区别

ARM处理器:使用精简指令集(RISC)

Intel处理器:使用复杂指令集(CISC)

  • ARM处理器指令集

ARM指令集:计算机ARM操作指令系统

armv6、armv7、armv7s、arm64、arm64e 都是arm处理器的指令集,所有指令集原则上都是向下兼容的。

(比如:你的设备是armv7s指令集,那么它可以兼容运行比armv7s版本更低的指令集:armv7、armv6,只是使用armv6指令集时无法充分发挥其性能,即无法使用armv7指令集中的新特性)

Xcode4.5起不再支持armv6。

苹果的A7处理器支持两个不同的指令集:

  • 32位ARM指令集(armv6、armv7、armv7s)
  • 64位ARM指令集(arm64)

另外:

  • i386:通常被用来作为Intel 32位微处理器的统称。
  • x86_64:可在同一时间内处理64位的整数运算,并兼容x86_32架构,是针对x86架构的64位处理器。

注意:

​ iOS模拟器没有运行arm指令集,用到的是 i386 或 x86_64,所以只有在iOS设备上才会执行设备对应的arm指令集。


Architectures

​ 表示项目编译的时候支持的指令集的集合,如果设置多个architecture,则编译出的二进制数据包及ipa包 会包含多个指令集代码,体积会变大。

设置:Xcode -> Build Settings -> Architectures

默认是:$(ARCHS_STANDARD)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-huVqBf8u-1613575098536)(blob:file:///e6cddb72-6605-4ffb-943a-69f19f9ec675)]

参考值:Xcode构建设置参考


Build Active Architecture Only

​ 是否只编译当前连接设备所支持的指令集。这个设置主要用在Debug的时候,默认DebugYESReleaseNO

Debug模式为YES:编译时只编译连接设备的处理器版本,会大大缩短编译时间。

Release模式为NO:需要适配市面上大部分手机,这也是为什么Release编译时需要花费更多时间的原因。(如果为YES,那么生成的安装包只能安装在你当前连接设备的编译类型的手机上)


Valid Architectures

​ 表示项目所支持的处理器架构列表,ArchitecturesValid Architectures的交集 确定最终的数据包包含的指令集代码。

​ Xcode 12 已弃用,不再包含此设置,不鼓励使用它。而是有一个新的Excluded ArchitecturesEXCLUDED_ARCHS)代替。如果项目包含Valid ArchitecturesVALID_ARCHS),那么这个设置将显示在Build Settings -> User-Defined中。


参考:

CPU Architectures

iOS 指令集架构 armv6、armv7、armv7s、arm64、arm64e、x86_64、i386

Xcode 12 Release Notes

iOS 指令集架构Architectures armv6、armv7、armv7s、arm64、arm64e、x86_64、i386

iOS和iPadOS设备列表

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫小言mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值