苹果是如何做到32位主芯片上支持64位的iOS7和上面的64位APP的?

mykeyboard 发布于 2013年09月11日
无人欣赏。

针对iPhone4 iPhone4S iPhone5马上将要升级到64位iOS7和随之而来的APP更新。 以我一向的wintel思维,向下兼容好像挺容易理解的,向上兼容?

共6条回复
灵感之源 回复于 2013年09月11日

用的还是32位 iOS7吧。。。我不懂,只是路过

mykeyboard 回复于 2013年09月11日

我刚才也想到了这几种可能,

1) iPhone5S 64位主芯片,使用的是64位iOS7。 iPhone5C iPhone5 iPhone4 iPhone4S 是32位主芯片,可以升级到32位的iOS7 那么开发者发布的APP如果是32位的话,两个版本iOS7上都可以运行,但是在64位iOS7 是否无法发挥最大的软硬件性能?开发者的选择是发布两个APP,一个32位,一个64位。 如果只发布64位APP,显然无法在32位iOS7上 运行。

2)只有一个版本的iOS7: 64位。开发者发布32位APP. 在32位,64位主芯片上都能运行。问题是:64位iOS7如果在32位主芯片上能运行,64位APP有什么理由不能在32位主芯片上运行? 这第二种可以无视之。

3) 只有一个版本iOS7:64位;APP也发布成64位的。就是标题提的问题了。

tinyfool 回复于 2013年09月11日

Mac早就有32位到64位的切换,很简单,OS有32和64两个版本的全部库。64位机器当然支持32位app和OS。32位机器只支持32位App和OS。

每个App都可以打包成32+64合一的文件,这个叫做FAT格式,这些对苹果来说都是驾轻就熟的,用户不会有任何感觉,开发者也没有什么难度,无非是做一个选择而已。

昨天发布会上,Infinity Blade的人说了,从32位迁移到64位只花了他们2个小时而已。

mykeyboard 回复于 2013年09月11日

谢谢楼上的解答。 MS看懂了,也就是说,开发者在发布的时候做选择:同时支持32位和64位,还是只支持64位。如果要让自己的APP支持更多设备,肯定是选同时支持两种。这样看来,前者生成的ipa的体积应该比后者要大不少。

tonynothing 回复于 2013年09月11日

我记得看到过文章说Windows 64位和32位之间搞的这么复杂只是因为当时设计的问题。Unix和Linux等系统从32位切换到64位异常容易,对苹果来说Mac OS早就无缝切换到64位了,针对开发者的部分肯定也熟了,那放到iOS上肯定也不会太麻烦。

tinyfool 回复于 2013年09月11日

5楼 @tonynothing 没错,Windows就是自己闹的,Mac切换的时候,作为开发者真没感觉啊

登录 或者 注册