最近在将微信小游戏的包打成android的过程中,踩了一些坑。在此记录一下。
layabox的android打包过程可以分为如下3部分。
1,打包
2,打layadcc
3,将资源部署到服务器并且测试。
1,打包
此处为使用脚本构建工程。参照的文档为:https://ldc2.layabox.com/doc/?language=zh&nav=zh-ts-6-3-0
这里需要注意的一点,就是这个--url参数应该是什么。
这个--url参数,作为线上包的话,应该指向一个由游戏工程打出来的一个web release。
--url就是指向这个web工程项目路径下的index.js文件的url。
比如你部署到了www.mygame.com/game下。
那这个url就是https://www.mygame.com/game/index.js
这个js,作为安卓的启动页,是必须的。
2,打layadcc。
这个layadcc,可以说是一种加密了的资源。可以分为两部分
具体流程参照:https://ldc2.layabox.com/doc/?language=zh&nav=zh-ts-6-2-0
1,被加密的资源。
2,对这些资源的描述文件。有filetable.bin,allfiles.txt,assetsid.txt,filetable.txt
其中,被加密的资源,是用于打到包里去的。而描述文件,在打包的时候,和以后的更新都会用到。
layabox运行时候的逻辑是这样的。
首先,去加载本地的描述文件。然后再根据打包时提供的地址,去下载该文件夹里的update中的最新描述文件。
并且将最新的描述文件缓存。
当用到某个资源的时候,会对比描述文件,如果发现本地的文件不是最新,则会去打包时设置的web部署路径下去下载最新的文件。
这里发现了没?打包的时候,用的是dcc文件,但是在更新的时候,用的是源文件!!!!!!!
而且layadcc有这样一个特性,就是只有打包时,本地的那个描述文件里的文件才会缓存,除此之外,其他的新文件,都是不缓存的!!!
所以要怎么打包呢?请看3.
3,那这种机制的情况下,要如何打包才比较好呢?
官方的建议如下:
1,首先把所有的资源打成web 的release。然后将这个release打成dcc。这一步,要的是完整项目的dcc描述文件。
2,使用编辑器的排除功能,打一个精简版的web release。其实就是希望玩家一进去有的资源。
3,将这个精简版的资源,打到android的包里去。
4,将第一步完整版的描述文件,覆盖精简版的描述文件。
这样,就默认了打包时候的这些项目文件,都会缓存。而且这些文件,当线上有新版本的时候,就会去下载最新的并且缓存。
这些过程比较繁琐,我写了一些bat。供参考。
链接: https://pan.baidu.com/s/1crrYQ_sStPiZ7iLwFqSEdg 提取码: h4ki 复制这段内容后打开百度网盘手机App,操作更方便哦