天极软件频道消息】存储空间不够是很多iOS用户遇到的问题,苹果在2015全球开发者大会(WWDC 2015)上简要介绍了一个关于节省iOS存储空间的解决方案——App Thinning,这项功能可以让iOS设备在很多安装应用、更新应用以及运行应用等多种场景中仅下载需要的代码而不是所有的资源,这样iOS应用占用的空间就会减少很多,从而节省出更多的剩余存储空间。


图示:iOS 9的App Thinning功能如何节省存储空间


图示:iOS 9的App Thinning功能如何节省存储空间

  App Thinning功能中其实有三个独立的机制,分别是App Slicing、on-demand resources以及Bitcode,它们在节省iOS应用资源方面发挥着各自的作用。


图示:iOS 9的App Thinning功能如何节省存储空间

  App Slicing

  App Slicing在节省应用所需资源中发挥着最重要的作用。很多应用需要在不同尺寸的设备上运行,针对这些不同的设备,它们内含不同的独立资源,而大部分是你的设备不需要的。

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


图示:iOS 9的App Thinning功能如何节省存储空间

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

  ODR

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


图示:iOS 9的App Thinning功能如何节省存储空间

  当用户点击应用内容的时候,就会动态从App Store上进行下载,也就是说用户只会在需要的时候占用存储空间。这项功能有趣之处还在于当将这些内容在后台进行下载之后,当存储空间紧张的时候会自动进行删除。


图示:iOS 9的App Thinning功能如何节省存储空间

  Bitcode

  Bitcode使得开发者上传应用程序时不必非提交预编译的二进制文件,只需要上传“intermediate representation(直译为中间代表)”即可。而用户下载时,App Slicing可以根据用户需求,来判断你是需要32位还是64位。

  也就是说,在用户下载应用之前,App Store在自动编译应用程序。这样,即使开发者没有给他们的代码添加标签,应用也能够执行App Slicing的部分功能,仅下载设备需要的32或64位代码。不过Bitcode也意味着如果苹果完善编译器提高代码效率,用户下载应用时苹果进行的完善会自动整合进去。

  虽然有评论表示,App Thinning这个新特性有时候也会带来不方便。比如用户坐十几个小时飞机,期间一直在玩游戏,持续过关斩将,但是因为没有下载所以不能继续玩下去,会感觉比较无奈。不过,对于大多数用户的应用场景来说,App Thinning将为iOS设备用户节省很多应用所需要的存储空间,对于16GB容量的iOS设备用户来说效果则更加明显。

  iOS 9的更新包体积从原来的4.6GB降至现在的1.3GB,让不少8GB、16GB的iPhone和iPad老用户非常开心。而App Thinning方案进一步减小了系统在运行应用等多种实用情景时的存储资源占用,令人期待。

iOS 9的App Thinning方案如何节省存储空间相关推荐

  1. iOS之深入解析App Thinning的应用瘦身优化

    当前 iOS App 的编译打包方式是把适配兼容多个设备的执行文件及资源文件合并一个文件,上传和下载的文件则包含了所有的这些文件,导致占用较多的存储空间. App Thinning 是一个关于节省 i ...

  2. iOS App Thinning

    iOS App Thinning iOS App瘦身功能,不错的文章: 初探 iOS 9 的 App 瘦身功能 App thinning overview (iOS, tvOS, watchOS) 安 ...

  3. iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图

    文章目录 前言 I .App thinning的实现方法: 1.0 背景知识 1.0.1 下载大小限制(ipa) 1.0.2 可执行文件大小限制 1.0.3 Mach-O 1.0.4 Link Map ...

  4. iOS上传IPA时提示导入此构建版本时出错-errors occurred in the app thinning process

    今天上传IPA时报错,提示导入此构建版本时出错-errors occurred in the app thinning process,本以为是误操作开启了bitcode,检查后发现并不是,修改了bu ...

  5. iOS打包 App Thinning 选项

    打包的时候,为了使我们打出的包可以安装在所有的设备山,我们需要选择 App Thinning None 如图

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

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

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

    App Thinning (iOS9)会自动检测用户的设备类型(即型号名称)并且只下载当前设备所适用的内容.换句话说,如果你使用的是 iPad Mini 1(1x分辨率且非 retina 显示屏)那么 ...

  8. App Thinning研究

    App Thinning研究 App Thinning可以译成"应用瘦身".指的是App store 和操作系统在安装iOS或者watchOS的 app 的时候通过一些列的优化,尽 ...

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

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

最新文章

  1. JMeter 聚合报告之 90% Line 参数说明
  2. 任务一,转换学习思路
  3. 改变世界的十位算法大师
  4. Git如何进行分支合并
  5. 一个代码托管平台居然公开拒招中国人,谁给了你歧视中国程序员的勇气?
  6. border-box
  7. ROM PROM EPROM EEPROM FLASH(NAND、NOR)
  8. 传智播客视频python视频爬虫
  9. 英特尔hd630驱动_intel UHD graphics 620/630 -win7 驱动
  10. 神经网络的分类及其不同的应用场景
  11. python出入库_python出入库_基于Python对Excel数据入库的处理
  12. 11月8日 课程设计幸运抽奖系统
  13. php怎么给图片添加文字,使用php怎么给图片添加文字水印
  14. (附源码)ssm南工二手书交易平台 毕业设计172334
  15. 针对L型区域的椭圆方程的差分法
  16. (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结
  17. 常见电脑显示器分辨率及其比例
  18. Unity NavMesh导航报错“SetDestination“ can only be called on an active agent that has been placed on a Na
  19. MongoDB配置副本集(含Arbiter)
  20. Swoft View 视图

热门文章

  1. 关于计算机英语演讲ppt模板,英语演讲ppt模板(英语演讲8分钟ppt模板) 最新免费版...
  2. MacBook 谷歌插件打包
  3. SLAM传感器篇:Velodyne激光雷达
  4. 目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU
  5. Gabor变换过程详细推导
  6. [算法题]返回数组A的元素组成的小于n的最大数
  7. 如何零基础创建自己的微信小程序
  8. 求解带不确定事件的FJSP的多目标强化学习框架
  9. KUP-11010: unable to open at least one dump file for fetch
  10. element-ui tabs标签嵌套使用时 基础下划线不显示的问题