iOS9给应用瘦身的秘诀在这里

来源: 作者:
导读: 在WWDC大会上苹果公司为设备存储空间不够用的iPhone和iPad用户介绍了一个解决方案——App Thinning,它能让你的设备腾出更多空间。这个功能的作...

iOS9给应用瘦身的秘诀在这里

在WWDC大会上苹果公司为设备存储空间不够用的iPhone和iPad用户介绍了一个解决方案——App Thinning,它能让你的设备腾出更多空间。这个功能的作用就在它能够让iOS9设备仅下载需要的代码,这样应用占用的空间就会比目前的少很多。

  不过在这项功能中其实有三个独立的机制,在给应用瘦身方面,它们发挥着各自的作用。下面让我们来详细了解一下了。

iOS9给应用瘦身的秘诀在这里

  首先是App Slicing,它在这其中发挥着最重要的作用。因为应用需要在不同尺寸的设备上运行,从3.5英寸的iPhone4到5.5英寸的iPhone(通用应用还支持10英寸iPad),针对这些不同的设备,它们内含不同的独立资产,而大部分是你的设备不需要的。

  假设你使用的是iPhone5c,它运行的是32位CPU和GPU,不支持Metal API。如果你下载的是一款最新的通用游戏应用,它的二进制中含有64位代码,iPad和“3x”iPhone6 Plus资产以及Metal API代码,这些都是你的设备用不上的。它至需要32位代码,“2x”iPhone尺寸资产以及OpenGL图形代码。

  有了App Slices,开发者就可以根据设备添加资产标签,当用户从iTunes下载应用时,它将仅下载你的设备需要的资产。因为苹果已经将整个过程设计得非常简单,所以相信很多应用很快就会开始支持这项特性。

  ODR(随需应变资源)是应用瘦身的另外一种方法。比如多级游戏,用户需要的通常都是他们当前的级数以及下一级。ODR意味着用户可以下载他们需要的几级游戏。随着你的级数不断增加,应用再下载其他级数,并将用户成功过关的级数给删掉。

  最后还有一种就是Bitcode。开发者不再上传应用的预编译的二进制文件,而是上传应用的“中间代表”。在用户下载之前,App Store在自动编译应用程序。这样即使开发者没有给他们的代码添加标签,应用也能够执行App Slicing部分功能,仅下载设备需要的32或64位代码。

  不过Bitcode也意味着如果苹果完善编译器提高代码效率,用户下载应用时苹果进行的完善会自动整合进去。

  当然这个新特性有时候也会带来不方便。比如你坐十几个小时飞机,期间一直在玩游戏,不小心你就一路过关斩将,但是因为没有下载所以不能继续玩下去,这种时候会非常无奈。不过在大多数情况下,对多数用户来说,App Thinning带来的好处还是比较多的,对于16GB容量设备用户来说更是如此。