苹果公司宣布从2015 年2 月1 日起,所有提交到应用商店的应用需要支持64 位,并基于iOS 8 SDK 构建。该要求只针对新提交应用,包括首次提交应用和对已有应用的更新。
去年苹果公司在iPhone 5s 的A7 芯片中引入了64 位架构。今年年初,苹果公司又在iPhone 6 和6 Plus 中引入了基于64 位 ARMv8 架构的A8 芯片,在iPad Air 2 中引入了功能更强的A8X。
根据 ArsTechnica 报道,“在苹果 A7 芯片上运行 64 位代码的速度比 32 位代码快 30%,在 A8 芯片上更是达到 40%。”当设备上的所有应用运行在64 位模式下时还有另一个优势:不用同时载入SDK 框架的32 位和64 位版本,进而降低总体的内存开销。
另据 ArsTechnica 的数据,截止到 2014 年 10 月,很多流行应用如 Twitter、Facebook 和 Instagram 还不支持 64 位。
通常情况下,开启 64 位支持的步骤也很简单,“使用 Xcode 的默认构建配置‘Standard architecture’,即可构建出包含 32 位和 64 位代码的单一二进制文件”,苹果公司如是说。
虽然苹果公司的说法比较简单,但是只有符合特定规则的代码才能无缝编译为 64 位。苹果公司提供了一份 64 位转换指南,里面列出了一些危险的编程行为,如将指针强制转换为整型、将 NSInteger 和 CGFloat 转换为 C 语言的内置类型、在数据结构中假定 32 位对齐等等 。
此外,在转换为 64 位的过程中,那些使用老版本第三方框架的开发人员可能遇到令人头痛的问题,现有的框架版本不支持 64 位,但新版本又通常是可望不可即的事情。
查看英文原文: 64 Bit Support for iOS Mandatory From February 2015: Benefits and Hindrances
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论