> 文章列表 > creator-assetbundle分包

creator-assetbundle分包

creator-assetbundle分包


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 资源实测

构建测试

  1. 构建面板 配置远程包

    creator-assetbundle分包

    • 主包为远程包: 就是引擎内置的 bundle 和 自定义的 bundle 勾选配置为远程包 的都会防止在构建目录的 remote 目录下
  2. 测试两个 bundle

    creator-assetbundle分包

    • ab001 目录配置为 bundle, 不勾选 配置为远程包
    • ab002 目录配置为 bundle, 勾选 配置为远程包
  3. 构建 并打包 apk

    creator-assetbundle分包

    • remote 目录是构建出来的包, 包含所有 bundle 勾选了配置远程选项,
      apk 打进去 bundle 就是没有勾选配置远程选项

加载测试

  1. 首次进入, 会去远程地址下载 内置资源

    creator-assetbundle分包

  2. 首次加载动态资源

    creator-assetbundle分包

  3. 再次启动, 再次动态加载资源, 都不会发起 http 请求, 使用的本地缓存的资源

    缓存文件都放在了这个目录下

    creator-assetbundle分包

  4. 修改了其中一个资源, 从新构建新的 remote

    creator-assetbundle分包

    • f9974 就是这个 ab 的版本
  5. 加载 ab 的时候指定版本为 f9974

    creator-assetbundle分包

    看到以下请求

    creator-assetbundle分包

    发现只有 bundle 信息 (json + js) 和 被修改的资源及对应的 json 文件 (md5 发送变化) 才会发起 http 请求去下载新的内容, 未修改的资源还是使用缓存里的资源

  6. 新旧 remote 对比一下

    creator-assetbundle分包

    • 版本记录文件 (cc.config.xxxx.json) 里, 只有被修改资源的 md5 变化了

踩坑

bundle 中不能内嵌 bundle

  • https://forum.cocos.org/t/topic/146995/2