最近在將微信小游戲的包打成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,操作更方便哦