title: creator-assetbundle分包
categories: Cocos2dx
tags: [creator, 分包, assetbundle]
date: 2023-04-10 15:55:22
comments: false
mathjax: true
toc: true
creator-assetbundle分包
前篇
- Asset Bundle 介绍 - https://docs.cocos.com/creator/manual/zh/asset/bundle.html
- 资源分包升级指南 - https://docs.cocos.com/creator/manual/zh/asset/subpackage-upgrade-guide.html
- 热更新管理器 AssetsManager - https://docs.cocos.com/creator/manual/zh/advanced-topics/hot-update-manager.html
优先级
- https://docs.cocos.com/creator/manual/zh/asset/bundle.html#%E4%BC%98%E5%85%88%E7%BA%A7
预加载
- 加载与预加载 - https://docs.cocos.com/creator/manual/zh/asset/preload-load.html
bundle 资源实测
构建测试
-
构建面板 配置远程包
- 主包为远程包: 就是引擎内置的 bundle 和 自定义的 bundle 勾选了 配置为远程包 的都会防止在构建目录的 remote 目录下
-
测试两个 bundle
- ab001 目录配置为 bundle, 不勾选 配置为远程包
- ab002 目录配置为 bundle, 勾选 配置为远程包
-
构建 并打包 apk
- remote 目录是构建出来的包, 包含所有 bundle 勾选了配置远程选项,
apk 打进去 bundle 就是没有勾选配置远程选项
- remote 目录是构建出来的包, 包含所有 bundle 勾选了配置远程选项,
加载测试
-
首次进入, 会去远程地址下载 内置资源
-
首次加载动态资源
-
再次启动, 再次动态加载资源, 都不会发起 http 请求, 使用的本地缓存的资源
缓存文件都放在了这个目录下
-
修改了其中一个资源, 从新构建新的 remote
- f9974 就是这个 ab 的版本
-
加载 ab 的时候指定版本为 f9974
看到以下请求
发现只有 bundle 信息 (json + js) 和 被修改的资源及对应的 json 文件 (md5 发送变化) 才会发起 http 请求去下载新的内容, 未修改的资源还是使用缓存里的资源
-
新旧 remote 对比一下
- 版本记录文件 (cc.config.xxxx.json) 里, 只有被修改资源的 md5 变化了
踩坑
bundle 中不能内嵌 bundle
- https://forum.cocos.org/t/topic/146995/2