博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发小集:指令集的配置
阅读量:7153 次
发布时间:2019-06-29

本文共 914 字,大约阅读时间需要 3 分钟。

指令集

对iOS平台,每一代设备都有其对应的指令集。

指令集 设备
armv6 iPhone,iPhone2,iPhone3G
armv7 iPhone 3GS, iPhone 4, iPhone 4S,
armv7s iPhone5,iPhone5C
arm64/armv8 iPhone 5s, iPhone 6(Plus), iPhone6s(Plus),iPhone7(Plus),iPhone8(Plus),iPhoneX

机器的指令集都是向下兼容的,因此armv7的指令集可以运行在iPhone5s上,只是效率没有那么高而已。

iOS项目中的配置

也就是配置Build Setting里的Architectures选项

  • Architectures指定是该APP支持的指令集,新建一个项目,其默认的选项值为Standard architectures(armv7、arm64),表示该APP仅支持armv7arm64的指令集。
  • Valid architectures选项指即将编译的指令集,默认设置为armv6、armv7、arm64,表示会编译这三个指令集
  • Build Active Architecture Only选项表示是否指编译当前使用的指令集,默认情况下在Debug时候设置为YES,以便可以更加高效、快速的调试程序;在Release情况下设置为NO,以便APP能够在各个机器上都能够一最高的效率运行。因为在Valid architectures中设置的指令集为armv6、armv7、arm64,在Release下会为各个指令集编译对应的代码,因此最后的ipa文件体积基本上翻了3倍。

总结

在大多数情况下,在实际的交叉编译过程中只需要编译 armv7和arm64两个指令集下的库,因为armv7到armv7s指令集的变化比较少,而且armv7s的设备并不是特别多,完全可以使用armv7来运行。arm64的变动比较多且设备比较多,需要单独编译出来,以保证这批设备的优质运行。

注:

iOS模拟器没有运行arm指令集,编译运行的是x86指令集,所以,只有在iOS设备上,才会执行设备对应的arm指令集。

转载地址:http://xulgl.baihongyu.com/

你可能感兴趣的文章
软考高级(二)
查看>>
linux tar.gz zip 解压缩 压缩命令
查看>>
java第三次作业
查看>>
C++ unordered_map map
查看>>
念奴娇·登多景楼
查看>>
Ubuntu Linux环境变量
查看>>
通用数据库访问类(泛型实现)
查看>>
测试用例的代码复用
查看>>
国内一些大公司的开源项目
查看>>
Redis学习笔记(5)-Set
查看>>
两种查找bapi的方法
查看>>
事件监听
查看>>
【总结整理】AXURE原件
查看>>
Django Ajax
查看>>
Lua不显示小数点0的部分
查看>>
【前台 乱码】 前台单独乱码+后台往前台传输的数据乱码
查看>>
性能分析
查看>>
使用gdaldem生成山体阴影——thematicmapping.org译文(二)
查看>>
Hello CnBlog
查看>>
第十周学习进度条
查看>>