14

在编译 iPhone 应用程序时,有一个“优化”架构(仅限 armv7)与标准 armv6/armv7 架构的设置。

编译仅 armv7 架构的好处/后果是什么?

4

2 回答 2

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" 将获得二进制文件的实际文件大小。

于 2010-05-31T21:11:31.947 回答
13

较小的可执行文件可以更快地从应用商店下载。但是,您确实删除了非 armv7 设备

于 2010-05-30T21:11:13.750 回答