iOS 9注重更多细节,其中对更新包体积的减小,让不少8GB、16GB的iPhone/iPad老用户非常感动,毕竟体积从原来的4.6GB降至现在的1.3GB,相当感人,但这是怎么实现的。
对于这个事情,苹果在WWDC进行了一番详细的说明,我们去掉废话直接来看重点内容。苹果表示,完成对新系统更新包的廋身,他们用了三个机制:
1、应用程序切片(App Slicing)
这是最重要的,因为之前每个iOS应用程序下载包都包含了一大堆devices—assuming二进制代码,换句话说包含了很多你用不着的东西,比如iPhone 6的iOS应用包含了32位和64位两种。
苹果所做的就是根据机型的实际情况,来对应用进行缩小,比如iPhone 5C只是运行32位的系统(CPU和GPU都是32位的),那么就应用中的64位二进制代码就全部去掉,就至留下32位的代码(2x iPhone以及OpenGL图形代码)。
2、资源会是随需应变的(ODRs)
这个过程是复杂的,简单点来说就是,用户下载的应用可以根据你的实际进展情况,来同步进行下载后续关卡,而之前关卡会相应的删除,比如你从App Store买了应用,需要腾出一定的空间,开发者可以根据相应代码来提示用户哪些需要删除或者哪些是可以腾出空间的等等。
3、Bitcode
开发者上传应用程序不用提交预编译的二进制文件,只需要上传“intermediate representation(中间代表)”展现,而用户下载时,App Slicing可以根据用户需求,来判断你是否需要32位还是64位的。
上述过程你不必要都知道,但苹果为了缩减体积整的这个代号为App thinning的效果是明显的,体积从4.6GB降至现在的1.3GB,这是让老用户痛哭流泪的事情。