设为首页收藏本站

微软Hololens全息现实网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

一键登录:

查看: 1130|回复: 1

减少主程序Bundle大小 精通Apple平台的按需加载资源功能

[复制链接]
发表于 2015-12-9 11:27:06 | 显示全部楼层 |阅读模式

按需加载资源是从iOS、tvOS 9.0开始引入的一个新特性。开发者可通过将主程序Bundle中的特定资源分离并存放于App Store infrastructure上进行按需下载,从而减少主程序Bundle的大小。 新的AppleTV平台规定主程序Bundle不得超过200MB。因此,开发者们必须采取各种方式动态加载资源。为了使开发...

按需加载资源是从iOS、tvOS 9.0开始引入的一个新特性。开发者可通过将主程序Bundle中的特定资源分离并存放于App Store infrastructure上进行按需下载,从而减少主程序Bundle的大小。

457cad5bdb706c3f8692e74653ec7548.jpg


新的AppleTV平台规定主程序Bundle不得超过200MB。因此,开发者们必须采取各种方式动态加载资源。为了使开发者们的日子轻松些,Unity从5.2.0 patch 1版本开始,提供了一个按需加载资源的API包装类。


按需加载资源不仅可以帮助你减少应用的初始下载大小,还可以通过删除无用资产来减少设备空间占用。一般来说, App启动时非必须加载的任何资源都可以作为按需加载或卸载的对象。拿关卡制游戏举个例子:当用户在进行第3关时,程序无需加载第10关,反之,用户在玩第16关时,程序可以安全的卸载掉第1关的内容。

Asset Bundle是获取按需加载资源的最简便方式。它能解决动态资产加载过程中的诸多问题,例如内存与CPU效率、依赖跟踪以及目标平台优化。如下列代码所示,Asset Bundle配置完成后,无需过多额外操作就可以使用按需加载资源了。本文并不打算介绍Asset Bundle相关内容,如果你是第一次听到它,可访问这个资源来加深了解。


若要使用按需加载资源,开发者需要在生成时为每个资源指定tag标识,随后在运行时再通过tag请求相应资源。在iOS应用开发中,可先在Xcode里为资源指定tag,而后使用NSBundleResourceRequest API进行访问。

在Unity中,tag指定与资源获取工作都由代码完成:早前的UnityEditor.iOS.BuildPipeline.collectResources事件API以及随后的UnityEngine.iOS.OnDemandResources.PreloadAsync API

虽然当前的按需加载资源API没有对tag的命名规则进行限定,但仍有几条指导建议可帮助简化开发过程:最灵活也是最简单的方法是为每个Asset Bundle指定一个由该Asset Bundle名衍生出来的唯一性tag。如此一来,开发者可以为单个下载设定优先级,并获取它们各自的进度。同时还要记得,Apple建议所有具备相同tag的资源,其累计大小不超过64MB,以取得下载速度与存储空间有效性之间的最佳平衡。


以下是两段展示“按需加载资源”的代码示例:

1,对资源进行标识赋值的编辑器脚本

91b2c90ac3e45f29263dfe25456a9164.jpg



2,运行时获取资源的代码

12382cd33999a28e19b3ff2fd07210c7.jpg


BitBucket 上的Asset Bundle Manager 示例项目是你开始了解及使用Asset Bun-dle与按需加载资源的最简单方式。该项目页面上有关于如何使用与调整这个示例项目的详尽描述。


若干个使用了按需加载资源的Unity游戏已登陆Apple TV,如:《Breakneck》和 《Bruce Lee: Enter the Game – Unchained Edition》。


                    




上一篇:Unity 5.3 中WebGL的更新 使用与桌面应用相同的反射函数
下一篇:HTC VIVE发布日期宣布确定 伙伴们快来围观
发表于 2015-12-9 11:31:17 | 显示全部楼层
真棒真棒
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

注册验证邮件查收提醒:

由于各大邮箱政策原因,

如果没收到邮件提醒,

您的注册验证邮件可能

被投送到您邮箱的垃圾箱,

请注意查收验证哦


QQ|小黑屋|Hololens全息现实网 ( 京ICP备15026232号   点击这里给我发消息

GMT+8, 2018-11-21 19:56 , Processed in 0.568214 second(s), 36 queries .

Powered by Hololens全息现实网 X3.2

© 2001-2017 Hololens全息现实网

快速回复 返回顶部 返回列表