App Thinning(应用瘦身)功能介绍

App Thinning (iOS9)会自动检测用户的设备类型(即型号名称)并且只下载当前设备所适用的内容。换句话说,如果你使用的是 iPad Mini 1(1x分辨率且非 retina 显示屏)那么只会下载 1x分辨率(下文会有更多介绍)所使用的文件。更强大和更高分辨率的 ipad(如iPad Mini 3或 4)所使用的资源将不会被下载。因为用户仅需下载他/她自己当前使用的特定设备所需的内容,这不仅加快了下载速度,还节约了设备的存储空间。

App Thinning 主要有以下三个方面**:App Slicing(应用程序的划分),Bitcode以及按需加载资源。**
App Thinning(应用瘦身)功能介绍_第1张图片

App Slicing
App Slicing在节省应用所需资源中发挥着最重要的作用。
很多应用需要在不同尺寸的设备上运行,针对这些不同的设备,它们内含不同的独立资源,而大部分是你的设备不需要的。所以App store会针对不同的设备制作不同的“简化版App”,当你下载app时候只需要下载不同的“简化版app”就可以了
比如用户使用的是iPhone 5c,它运行的是32位CPU和GPU,并不支持Metal API。但如果用户下载的是一款最新的通用游戏应用,它的二进制中含有64位代码,iPad和“3x”iPhone 6 Plus 资源以及Metal API代码,这些都是你的设备用不上的。它只需要32位代码,“2x”iPhone尺寸资源以及OpenGL图形代码。
App Thinning(应用瘦身)功能介绍_第2张图片

Slicing 的主要的工作流程如下:
1、在 Xcode中,选择好目标设备并且使用 asset catalog 提供多分辨率的图片资源
只有使用 asset catalog 才能正确使Slicing作用于资源文件
2、在模拟器或者设备上编译并运行app
3、Xcode 会自动构建针对你运行设备的“简化版app”,同时也是为了减少编译时间和进行本地的测试
4、打包app(为了及时发现不同目标设备的配置错误,可以在本地为目标设备导出“简化版app“,测试无误后再打包)
5、上传打包好的app到 iTunes connect。App store 将会为上传的app归档创建不同的“简化版app”。
6、在 iTunes Connect 中, 发布一个预览版给合格的测试者进行测试
7、测试者通过 TestFlight 下载预览版。TestFlight 会自动根据测试者的设备下载合适的“简化版app”。

Bitcode (iOS, watchOS)
Bitcode是一个编译好的程序的中间表示形式。上传到 iTunes Connect 中的包含Bitcode的app 将会在 App store 中进行链接和编译。苹果会对包含Bitcode的二进制app进行二次优化,而不需要提交一个新的app版本到app store中
App Thinning(应用瘦身)功能介绍_第3张图片

按需加载资源
想要充分理解 App Thinning,你必须理解按需加载资源(On Demand Resources , ODR)。按需加载资源是在 app 第一次安装后可下载的文件。这个机能简单的说,就是在下载app的时候,app中包含的不重要资源不下载,等到需要时,在由系统向苹果的server发送请求,下载这些资源包。举例说明,当玩家解锁游戏的特定关卡后可以下载新关卡(和这个关卡相关的特定内容)。此外,玩家已经通过的关卡可以被移除以便节约设备上的存储空间,。。
开启按需加载资源功能涉及改变 Xcode 中的设置(在编译设置(Build Settings)下),将「启用按需加载资源”选中为 是」 。
App Thinning(应用瘦身)功能介绍_第4张图片

苹果原文链接
https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f

你可能感兴趣的:(扩展,iOS基础)