發布、調試環境准備
- 華為品牌的手機。
- PC電腦的與手機數據連接線,並保障發布時處於連接狀態。
注意:因為華為快游戲不會生成發布二維碼,需要在發布的時候,就保障數據線是連通的,否則LayaAirIDE發布的時候,只會生成一個rpk的包,最終還是要聯數據線,手工復制rpk包到相關路徑下。
- 安裝nodejs 環境,必須要安裝 10.x 穩定版本 ,如果不是的需要重新安裝[node官網:https://nodejs.org/download/release/latest-v10.x/]
- LayaAirIDE集中開發環境,LayaAir 2.8.1 或以上版本 [ 官網下載: https://ldc2.layabox.com/layadownload/?type=layaairide ]
發布前准備工作
為了讓發布華為快游戲順利一些,有一些檢查工作我們要做。
-
PC里,node環境、LayaAirIDE這些,都必須要安裝好(ADB以及OpenSSL無需單獨安裝,LayaAir引擎IDE已內置)。
-
手機里,要打開”開發者模式“,允許USB調試。如下圖所示。
打開”開發者模式“的操作如有疑問,也可以參考華為官方指引文檔:
https://developer.huawei.com/consumer/cn/doc/quickapp-open-developer-option
LayaAirIDE發布華為快游戲
LayaAirIDE的發布功能,內置了華為快游戲的發布功能,需要先將LayaAir引擎的項目,通過發布功能打成.rpk后綴的包。發布功能的發布平台,選擇華為快游戲,最小平台版本當前選擇1075(如有改變可以關注官方文檔)。
在下圖中,刷新那里,如果沒連手機,顯示未發現手機,請檢查設備連接,如果連上了會識別出手機型號(華為識別出的手機型號可能與手機銷售型號不符,只要能顯示出來,就說明連上了)
關於發布功能的使用。由於有專門的發布功能介紹文檔,這里不重復介紹了。不會的可以前往官網文檔查看。
鏈接:https://ldc2.layabox.com/doc/?nav=zh-ts-3-0-6
關於指紋證書
當項目中release簽名存在時,可在發布頁面上打印簽名證書指紋(提交華為快游戲時會用到該指紋字符串),
這里要注意的是,要生成release簽名后,點擊打印簽名證書指紋才有效,否則會如下圖所示,提示證書不存在。
真機運行與測試
當LayaAirIDE發布成功后,會自動在華為手機上調起該游戲的全屏運行界面,大家可以在真機上運行測試。如果退出游戲界面,也可以從快應用加載器APP進入后,直接點擊游戲名稱二次進入。如下圖所示:
如何調試
華為快游戲,並沒有提供快游戲環境調試工具,所以開發者需要先保障游戲的H5版本在瀏覽器端是沒有問題的。再來調試華為快游戲。
調試華為快游戲一切靠日志,在LayaAirIDE的發布功能里,有一項是日志等級,默認的時候該選項為log等級。如下圖所示。這樣會包括console的log日志,以及報錯日志。如果改為只是設置為error,則只顯示報錯日志,不會顯示console日志。無論是error還是log都會在發布后,輸出對應日志等級的相關輸出信息,如果為off,則會不輸出任何信息。
關於如何查看日志,我們如果不關掉發布項目的界面,是可以直接查看輸出的日志的,如下圖所示:
其實,還可以在PC命令行下,另起一個界面查看,這樣,就可以不用一直開着IDE調試了。操作方式是在PC的命令行下輸入
adb logcat -s jsLog
發布運行后的所有日志,都會在命令行中顯示出來。如下圖所示。
通常情況下,日志在命令行中查看即可,如果開發者想把日志導出來,可以使用華為的快應用加載器PC助手。
FAQ
1. 快游戲是否需要支持分包?
A:華為快游戲的分包加載,目的是為了縮短下載時間和減少下載流量。通過使用分包策略,開發者可以指定下載和加載特定分包,而不必將所有整包內容一次性下載和加載。
我們在打算分包之前,一定要分析一下自己的項目是真的有分包需求嗎?其實對於當前大多數的產品而言,可以不用分包就可以上線快游戲產品。
(1)刪除不必要的JS代碼
在沒有分包的情況下,在 index.js 與 html 頁里引用的JS都會被打包到最后的rpk中,除非是在項目中對js另有引用。沒有使用的 js 文件可以直接刪除掉,比如一些沒有用到的引擎庫js和第三方類庫,這樣也能有效減少包體大小。
(2)壓縮與混淆
通過壓縮混淆后的js代碼,包體會明顯減少很多。如果JS沒超4M,可以不用分。資源等內容,完全可以走URL動態加載使用,在首次加載后,會存在物理緩存內,不超過50M的常用緩存內容,下次打開無需加載。
2. 引入第三方庫例如protobuf時,在require庫時報gameThirdScriptError錯誤,如何處理?
出現此錯誤,可能包含Function("return this")();這類代碼,游戲引擎為了安全性默認禁用此類代碼,建議修改js代碼。除了protobuf,如下三方庫也存在類似代碼,如果引入需要一起修改。
如果不修改代碼,則需要開啟runGame參數,但是推薦是不開啟。
欲了解更多詳情,請參見:
華為快應用PC助手使用指南參考官方地址:
更多華為快游戲說明請參照指導文檔:
原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0201404976739810233?fid=18
原作者:Mayism