抖音开放平台Logo
开发者文档
控制台

使用预下载功能

收藏
我的收藏

简介

通过提升普通小游戏启动速度我们知道,在小游戏加载过程中“加载性能”的阶段,存在网络空闲的情况,我们可以在此阶段提前下载游戏内资源。
预下载功能的原理是提前通过网络下载资源并缓存到本地,下次使用时从本地缓存中读取文件,以此提高资源加载速度。
抖音33.3.0及以上版本,普通小游戏支持预下载, Unity 小游戏近期会支持。

配置方式

静态配置

game.json 增加 preloadDataList 字段。
参数名
数据类型
必填
默认值
preloadDataList
array
null
preloadDataList 内存放下载资源的 CDN 地址。
// game.json { "preloadDataList": [ "https://developer3.bytedance.com/abc.png", ... ... ] }

动态配置

针对资源热更的情形,可以通过 game.json 增加 preloadDataListUrl 字段,通过接口返回预下载的资源列表。
参数名
数据类型
必填
默认值
preloadDataListUrl
string
null
假设有后台接口 https://api.example.com/preloadlist 返回以下数据:
"preloadDataList": [ "https://developer3.bytedance.com/abc.png", ... ... ]
可以在 game.json 中配置该后台接口 url:
// game.json { "preloadDataListUrl": "https://api.example.com/preloadlist" // 如果配置了preloadDataListUrl则preloadDataList不生效 }
后台接口需要返回以下 JSON 格式,才能正确解析:
{ "preloadDataList": ArrayObject }

预下载时机

    抖音一次生命周期内普通小游戏冷启时
    普通小游戏触发新版本的异步更新时

如何验证

正常调用 tt.request/tt.downloadFile/tt.createImage,都可以命中在 game.json 里配置的预下载资源。
使用非正式版本游戏,配置好 game.json,调用 tt.request/tt.downloadFile/tt.createImage,如果命中配置的 url,可以在 vConsole 观察到“命中预取”。

注意事项

    预下载列表应该尽量配置游戏 TTI 前依赖的资源,让用户尽快达到游戏可交互的状态,不宜填写 TTI 后的资源,更多带宽占用可能会增加 TTI 的加载耗时。
    请填写预下载资源的完整路径。
    预下载的所有文件总体积应该控制在 10MB 以内,目前文件最多缓存1天。
    预下载文件数量应在10个以内,超过10个会排队。
    预下载会按照列表顺序请求,请将优先需要的资源放在前面。
    配置预下载后,可能会对配置的 CDN 资源服务器造成一定压力。
    抖音开发者工具4.3.6版本在 game.json 新增了预下载的代码提示,可以升级获得更好支持。