当前位置: 首页 > 网络学院 >

手游开发者"利器":苹果应用瘦身功能介绍(App Thinning)

新客网 XKER.COM 时间:2015-06-16 11:30:09来源:gamelook gamelook  评论:

手游开发者"利器":苹果应用瘦身功能介绍(App Thinning)_新客网

6月9日结束的苹果WWDC15大会上,苹果公司推出了多个新技术,不过对于手游开发者们来说,可能最具有革命意义的是库克在发布会现场都没有提到的应用瘦身功能(App Thinning),它是其Xcode 7测试版的功能之一。

按照苹果官方的解释,应用瘦身功能分为三个部分:首先是分割功能Slicing,它可以对应用/游戏内容进行分割,根据用户设备类型和屏幕分辨率的不同分发定制化下载包,开发者只需要把完整应用包的内容上传到iTunes Connect即可。

另外,该功能还包含了中间代码功能(Bitcode),可以让苹果在未来为你的应用进行再次优化,而避免了发布新版本的麻烦,同时可以大大减少调试工作量。
应用瘦身的第三个功能就是on-demand资源,开发者可以把应用初始化用不到的资源分类打包上传到App Store,在用户使用的时候系统会根据资源标签在必要的时候调用资源,当某些资源不再使用的时候会被系统自动清除,这样不仅减少了应用下载和加载时间,还大大缩小了安装包体。

对于开发者们来说,这个功能可以减少很多的bug调试时间,让游戏包体变得更小,提高各种设备用户的游戏体验。可以说,苹果的这个技术在很大程度上解决了不同设备的性能差异问题,实现了one-for-all的需求。不过Gamelook认为这个功能如果安卓渠道可以用的话,就会大大降低设备碎片化给开发者们带来的适配难题,拉近和iOS设备之间的差距。

以下请看Gamelook整理的应用瘦身功能以及On-demand资源内容的详细介绍(更多详细内容请参考官网英文地址):

第一部分:应用瘦身以及其功能

App Store和操作系统(iOS和watchOS)根据用户特定的设备能力量身优化应用安装,以达到最低的设备空间占用。这个优化的过程,就被成为应用瘦身,它可以让你创作的应用利用大多数的设备功能、占用最小的磁盘空间并且为苹果公司未来的更新进行调整。更快的下载速度和更少的空间占用可以带来更好的用户体验。

本章节描述的是应用瘦身的3大组件:应用分割(Slicing)、中间代码(Bitcode)和On-demand资源(Resources)。

应用分割功能(Slicing,仅针对iOS平台)

Slicing就是创造并传输为不同目标设备而设计的变体应用包(variant,以下简称定制化下载包)的处理过程。一个定制化下载包仅包含针对特定设备所需要的可执行架构以及资源。你可以继续开发并且把完整版本的应用上传到iTunes Connect,然后App Store会根据玩家设备类型和分辨率创造并传输对应的应用。这里,你可以认为资源根据玩家设备分辨率和类型的不同而分割成了多种类型,GPU资源也根据设备能力进行了切分,当用户安装应用的时候,他们可以下载并安装适合自己设备的定制化应用包。

Xcode会在研发过程中模拟分割,所以你可以在本地创作并测试定制应用包,当你在一个设备上研发并运行应用的时候,Xcode会对其进行分割,当你创造一个档案的时候,Xcode会包含完整版的应用,但允许你从档案中输出不同的定制应用包。

提醒:对于iOS应用来说,应用分割仅支持最新版本的iTunes,以及运行iOS 9.0或者更高系统的设备,否则的话,App Store将会为用户分发统一的安装包。

手游开发者"利器":苹果应用瘦身功能介绍(App Thinning)_新客网

分割功能流程图

应用分割是在研发过程和分销过程中进行的,基本处理程序如下:

1.在Xcode里,定位目标设备并在资源目录中提供多种分辨率图形,你必须使用资源目录这样才能进行分割。

2.在模拟器或者一个设备上研发并运行应用。

3.Xcode会为选定设备类型生成变体包,提高调试销量并允许你在本地设备进行变体包测试。

4.创建应用档案并为特定设备输出对应的变体应用包。

5.在目标设备测试所有的变体包以更早的发现硬件配置方面的问题。

6.把应用上传到iTunes Connect。

7.App Store从档案中创建单独的应用定制包,定制包的数量取决于Xcode项目中所存在的架构和资源的数量。

8.在iTunes Connect当中,向制定测试者们分发测试版的应用。

9.测试者们通过TestFlight在你的应用所支持的设备上安装测试版本,TestFlight会根据用户设备的不同而下载特定的变体应用包。

注意:为了测试App Store在应用发布之前为你创造的变体包,最好是只邀请内部测试者(你团队里的iTunes Connect用户)并且使用TestFlight下载变体包。如果邀请了外部测试者(比如只通过邮箱地址登录),那么他们就必须等待Beta App Review在他们下载变体包之前通过了你的应用。

10.然后在iTunes Connect里发布你的应用。

11.用户在应用支持的设备上进行安装,App Store应用下载会根据用户设备类型分发变体应用包。

中间代码功能(Bitcode ,适用于iOS和watchOS)

Bitcode是一个已编译程序(Compiled Program)的中间代码(intermediate representation)。如果你上传到iTunes Connect里的应用包含bitcode的话,就可以被编译和链接到App Store。加入Bitcode可以让苹果在未来对你的应用二进制(app binary)进行再次优化,而不需要你向App Store提交新版本。

注意:对于iOS应用来说,Bitcode是默认但可选择的。如果你提供Bitcode,那么应用包里的所有应用和框架都需要加入Bitcode,而watchOS应用则必须加入Bitcode。

On-Demand资源(适用于iOS系统)

On-Demand资源指的是你可以通过关键词和命令的方式进行分组归类的资源,比如图像和音频,App Store会把这些资源放在苹果服务器上并且为你管理下载。On-Demand资源可以加快下载速度并缩小应用包体,提高用户的首次登录体验。比如,一款游戏应用可以根据等级和任务的不同把资源分组,在玩家达到下一个等级或者完成一个任务之后才会用到后续的资源,同样,应用也可以只在用户进行IAP购买的时候提供对应的资源。

当一些on-demand资源不再需要而且磁盘空间较少的时候,操作系统会自动清除它们。如果你在App Store之外对自己的应用进行测试或者分发,那就需要你自己来管理这些On-Demand资源。需要注意的是,可执行的on-demand资源是不支持的,App Store也会对on-Demand资源进行分割(即上面说过的Slicing),进一步提高用户体验。

对于用户们来说,on-demand资源是以透明的形式在后台运作的,当用户需要对应功能的时候,这些资源就会被提供。

手游开发者"利器":苹果应用瘦身功能介绍(App Thinning)_新客网

如果您喜欢本文请分享给您的好友,谢谢!感谢本文来源方:gamelook gamelook

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)