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

App Thinning 主要有以下三个方面**:App Slicing(应用程序的划分),Bitcode以及按需加载资源。**

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图形代码。

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

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

App Thinning(应用瘦身)功能介绍相关推荐

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

    iOS9 发布后,产生了一个使 App Thinning 无法正常运行的 bug.在iOS9.0.2 版本中,这个 bug 已经被修复,App Thinning 已经可以正常使用.当你从应用商店(Ap ...

  2. iOS9 App Thinning(应用瘦身)功能介绍 1

    iOS9 发布后,产生了一个使 App Thinning 无法正常运行的 bug.在iOS9.0.2 版本中,这个 bug 已经被修复,App Thinning 已经可以正常使用.当你从应用商店(Ap ...

  3. Android App安装包瘦身计划

    Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主 ...

  4. windows7 系统盘 瘦身软件介绍: 冗余文件清理工具

    注: 本人所写的文章只是经验分享,不代表本人所在的公司,也不是为了找工作,本人热爱和尊敬公司的每一位领导,谢谢. windows7 瘦身软件介绍: 冗余文件清理工具,可以清除c:\windows\in ...

  5. 再介绍一款 windows7 瘦身软件介绍: windows 冗余文件清理工具

    注: 本人所写的文章只是经验分享,不代表本人所在的公司,也不是为了找工作,本人热爱和尊敬公司的每一位领导,谢谢. 再介绍一款 windows7 瘦身软件介绍: windows 冗余文件清理工具 此软件 ...

  6. iOS App 安装包瘦身指南

    以下列出了安装包瘦身的无脑执行流程,其中"奇技淫巧"部分为选做题 资源优化 删除无用图片 使用LSUnusedResources查找无用图片 删除重复资源 压缩图片资源 使用Ima ...

  7. 贝壳找房APP安装包瘦身

    一.背景 在满足产品.UI要求的前提下,尽量减少安装包体积. 以customer插件为例: 插件大小为5MB, 其中1MB是dex,而bkbase占了dex的580KB: 3.1MB是图片. 减少re ...

  8. 视频直播的发展,一对一视频直播APP的优势和系统软件功能介绍

    国内直播市场日渐成熟完善,小编最早是在零几年开始知道直播的,那个时候做得比较好的有六间房这种,都是以颜值,唱歌为主的,一对多直播,2016年被认为是"中国网络直播元年",感觉真是万 ...

  9. P图软件瘦脸眼睛放大和手动瘦身功能

    一直以为是OpenCV写的没想到OpenGL能够做的东西比我想象的多. https://blog.csdn.net/zfgrinm/article/details/79291693 https://b ...

最新文章

  1. pandas 排序_懂Excel就能轻松入门Python数据分析包pandas(六):排序
  2. assertThat的使用方法
  3. [linux] ubuntu gnome 控制面板恢复
  4. [css] 如何给段落的首行缩进?
  5. 美国科学家研制出由病毒构成的微型电池
  6. (80)ADC采集方法(基于LVDS采集方法)
  7. javascript document cookie
  8. python try else多余的设计_在python中利用try..except来代替if..else的用法
  9. node.js 事件循环
  10. 恩布企业 IM 安卓端 1.1 增强版本
  11. NPOI导出EXCEL 合并单元格、统计列、单元格样式设置
  12. 利用LSTM对脑电波信号进行分类
  13. 服务器操作系统windows2016,微软正式发布服务器操作系统系统Windows Server 2016
  14. 【索引分类】位图索引
  15. Telerik Silverlight 之Charting控件的使用
  16. 云数据库 Redis 版
  17. mixer_path.xml 研究
  18. 剖析Docker镜像原理
  19. 整日碎片化学习“凡不凡”,android编程基础班
  20. .png格式才支持透明

热门文章

  1. 策略模式-面向接口编程
  2. 细思恐极的星座分析(上) ——用大数据和机器学习揭开十二星座的真实面目!
  3. 京东云擎 php,为什么我登陆京东云擎控制台会错误?
  4. 依赖注入那些事儿【1】 之 IGame游戏公司的故事
  5. lol怎么显示连接服务器失败怎么回事,lol为什么有网无法连接服务器失败
  6. 新冠病毒研究进展:维生素D或许能挽救新冠患者
  7. java 微信给好友发信息吗,不在线,好友发给我的微信消息,会不会丢?
  8. PL2303驱动移植到ARM
  9. mysql数据库重做日志文件_数据库:mysql:重做日志文件(redo log file)
  10. python人脸特征提取_Python实现识别人脸特征并打印出来