跳到主要内容

使用 vivo 引擎插件

什么是引擎插件

我们发布 vivo 小游戏的时候,里面会带有 egret.min.js eui.min.js 之类的库文件。玩家每次打开一个小游戏,都要重复的下载这些文件。

从引擎 5.3.6 版本开始,新创建的项目会默认开启引擎插件功能。

这样的好处是什么呢?如果一个玩家玩了 A 游戏,里面使用了 5.3.6 版本的引擎插件。然后他又玩了 B 游戏,如果 B 游戏的引擎插件版本和 A 游戏一致,那么这个插件就不需要重新下载。这样就可以提高游戏的打开速度,获得更好的用户体验。

白鹭引擎插件使用和调试环境

  • 白鹭引擎 5.3.6 版本之上
  • Egret Launcher 1.1.9 版本之上
  • vivo 小游戏调试器 1063 之上
  • vivo 小游戏运行时 1.6.3.330 之上

白鹭引擎插件使用方法

  1. 在 Egret Launcher 里下载引擎 5.3.6 版本,使用该版本创建一个游戏项目。
  2. 发布 vivo 小游戏时,勾选 使用引擎插件 功能

  1. 在发布成 vivo 小游戏后,会编译成支持插件的 rpk 包。

注意:代码类型在调试的时候可以选择 debug 模式,在正式发布的时候最好选择 Release 模式

老项目升级:

在老项目中执行 egret upgrade --egretversion 5.3.6 后会把项目升级成支持插件的版本。

注意: 升级完项目后,必须使用 Egret Launcher 重新创建一次 vivo 小游戏项目,因为需要重新下载小游戏的编译脚本

使用其他版本的引擎:

如果您的项目不想使用最新的 5.3.6 版本 ,要使用其他版本,例如 5.2.16 之类的引擎,那么可以做如下操作:

  1. 使用最新版引擎 5.3.6 创建一个新项目,把 config.vivogame.ts 文件拷贝到老项目里替换原有文件。
  2. 在老项目根目录的 egretProperties.json 里,把 compilerVersion 编译器版本改成 5.3.6。比如在本示例中,引擎代码还是 5.2.16 的,但是编译脚本使用 5.3.6,这样就能支持把游戏发布成开启 vivo 插件的形式了。

vivo 插件与微信插件的区别

微信插件有一个后台,白鹭官方会将所有的库上传到该后台,开发者使用的时候,直接从微信的服务器下载引擎插件。

而 vivo 小游戏的实现方式是,将所有的引擎库发布到小游戏中,然后会根据这些库文件计算出一个唯一的 provider 值。

当小游戏首次启动时,如果本地已经存在相同 provider 值的引擎插件,可直接复用本地缓存的插件包,从而提升启动速度。

FAQ

  • 问:引擎插件里都包含哪些库?
  • 答:包含白鹭引擎官方提供的 7 个库。
egret
eui
assetsmanager
dragonBones
game
socket
tween

  • 问:我对引擎做了修改,还可以使用插件功能吗
  • 答:可以的,在编译小游戏项目时,会将引擎代码的文件计算出一个 provider 值。只有 provider 值一致,才会使用本地下载好的插件代码。

  • 问:使用了插件功能,包体变大了,是正常的吗
  • 答:是正常的,为了兼容性,脚手架打包出来的包体大概是实际包体的2倍。vivo官方的说明