使用预下载功能
简介
预下载功能的原理是提前通过网络下载资源并缓存到本地,下次使用时从本地缓存中读取文件,以此提高资源加载速度。
抖音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 |
"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 新增了预下载的代码提示,可以升级获得更好支持。