在编译iPhone应用程序时,有一个“优化”架构(仅限armv7)与标准armv6 / armv7架构的设置。
编译仅支持armv7的架构有什么好处/后果?
答案 0 :(得分:19)
除非你的程序需要OpenGLES 2.0(仅支持armv7的设备),否则你应该编译标准的fat(armv6 / armv7)二进制文件。胖二进制文件基本上是粘合在一起的两个(或更多)Mach-O二进制文件,在开头有一个标题页。性能成本可以忽略不计:动态加载器必须为头页面带来额外的页面错误,以确定要加载的架构。
仅为armv7构建基本上会使可执行文件的大小减半,尽管您的可执行文件不太可能开始时那么大。您可以在主机上使用“size”和“otool”命令来获取有关应用二进制文件中各个部分的更多信息,例如“size -arch armv6 build / Release / MyApp.app / MyApp”将获得armv6版本二进制文件中各个部分的大小,“size -arch armv7 build / Release / MyApp.app / MyApp”将获得大小armv7版本的二进制文件中的各个部分,显然“ls -l build / Release / MyApp.app / MyApp”将获得二进制文件的实际文件大小。
答案 1 :(得分:13)
较小的可执行文件可以更快地从应用商店下载。但是,你切断了non-armv7 devices。