導入雲端資產提供服務

如要根據大小規定縮減應用程式,請先嘗試標準 APK 大小最佳化技術。如果您需要進一步縮減大小,可能需要依賴雲端提供資產。本文件說明如何準備雲端交付的資產,以及各種遊戲引擎的支援選項。雖然本頁指南著重於遊戲,但這些原則適用於包含大型資產的任何應用程式。

準備

考慮將應用程式分拆到雲端來交付資產時,請考量要如何根據使用者需要的「時間」將應用程式檔案分割成不同區段。此時間行為可分為下列三種類別:一律需要在發布時隨時需要,稍後會用到。

一律需要

部分資產難以分屬較小的區塊,或必須封裝在基本 APK 中。例如遊戲程式碼及其程式庫或引擎依附元件。雖然 Google Play Core 支援應用程式套件的應用程式套件,但許多引擎並不支援在日後下載的程式碼。

推出時須使用

遊戲開始後,使用者應能立即玩遊戲。Google Play 免安裝功能規定使用者可透過 LTE 或 4G 連線,在 15 秒內開始玩遊戲 (請參閱「Google Play 免安裝檢查清單」)。因此,請在啟動後限制任何次要下載作業的大小,僅為支援初始體驗所需的大小。舉例來說,啟動後立即下載的項目可能包含第一個遊戲等級和地點資產,或是執行遊戲前幾分鐘所需的任何程式碼。

稍後需要

所有您稍後可視需要在背景中下載的項目都屬於這個類別。這個類別包含長時間遊戲的大部分資產。稍後下載這些素材資源有助於盡可能縮減應用程式大小。

引擎支援

如要讓遊戲不再超出免安裝即用遊戲的 15 MB 上限,主要使用雲端資產提交功能是你的主要做法。素材資源下載功能會因遊戲引擎而異。請參閱下文最常見的情況及代管資產的選項。

請注意,啟動前需要的資產越少,使用者玩遊戲的速度就越快,所以在遊戲首次啟動時,流失率會降低和玩家留存率。

Play Feature Delivery (透過應用程式套件)

如果您將應用程式發布為應用程式套件 (建議做法),可以使用功能模組擷取基礎 APK 以外的其他資源。對於免安裝應用程式,每個功能模組都必須在資訊清單中設定 dist:instant="true"dist:on-demand 屬性主要用於已安裝 APK 中的隨選模組,請勿使用這類屬性。此外,無論模組是否包含程式碼,每個功能模組都必須低於 15 MB 的即時 APK 限制。如果每個模組皆超過此限制,便無法發布至 Alpha 版或測試群組。正確設定後,您可以使用 PlayCore 程式庫在執行階段擷取功能模組

Cocos Creator

Cocos 自 2.0.4 版起即支援雲端傳送資產。Cocos 會隨需下載資產,如果尚未及時下載資產,算繪預留位置。Cocos 會產生必須由部分線上服務託管的資產檔案,因為 Cocos 並未提供自己的一種。

Unity

Unity 5.6、2017.4 或 2018.2 的 Unity Google Play 免安裝外掛程式支援 Cloud 提供功能。較新版本的 Unity 會提供更多使用引擎清除功能的好處,因此建議遷移至遷移版本以釋出更多空間。Unity 雲端資產是由 Unity 為您建立的 AssetBundle 檔案中代管。將這些資產上傳至雲端伺服器後,就能透過雲端提供資產,因為 Unity 支援下載資產套裝組合

其他引擎

無論您使用的是自訂搜尋引擎或一組原生資料庫,您的選擇都能支援立即透過雲端下載資產。如果資產充足,必須從雲端下載,那麼您需要編寫程式碼或整合方法來隨選下載遊戲資產。不妨從 Firebase 代管Firebase Cloud Storage API 著手。有些引擎提供簡單的 HTTPS 檔案擷取功能,可能也足以滿足您的需求。

託管資產

除非您使用 Google Play 應用程式套件透過 Play 下載資產,否則您必須在其他位置代管資產。您可以視需求使用任何服務託管服務,只要服務有合理的全球發布和可用性即可。Google Play 遊戲應用程式的使用者遍布世界各地,因此必須在任何位置快速提供雲端代管資產。