您可以在多款 Google Chromebook 上使用 Google Play 商店安裝 Android 應用程式。本文說明可安裝 Android 應用程式的 Chromebook、Chromebox 和 Chromebase。
總覽
大多數 Android 手機都搭載 ARM 晶片組。不過,許多 ChromeOS 裝置都使用 x86 晶片。 對於以 Kotlin 或 Java 編寫的基本應用程式,這項差異並不重要。不過,對於以 C/C++ 程式碼編寫的應用程式 (包括使用遊戲引擎建立的應用程式),裝置中的晶片組可能是一項重要考量。
理想情況下,所有含有 C/C++ 程式碼的應用程式和遊戲,都應隨附四個主要的 Android ABI (應用程式二進位介面):armeabi-v7a (arm32)、arm64-v8a (arm64)、x86 (x86_32) 和 x86_64。為每部裝置提供最佳效能和最低耗電量。舉例來說,以 CMake 為基礎的 build.gradle 檔案可能包含:
Groovy
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Kotlin
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Android 套件 (APK) 大小
單一 APK 中的每個 ABI 都會增加其大小。這可能會影響使用者的磁碟用量、應用程式下載大小,以及應用程式是否受到 Play 商店大小限制影響。如要避免發生這種情況,最好的方法是使用 Android App Bundle。
您可以在 Android Studio 中將所有四個 ABI 綁定為 App Bundle,使用者下載的應用程式大小不會因此增加。此外,您也可以利用這些功能採用 Dynamic Delivery,讓使用者只在需要時下載大型遊戲內容。如果無法使用應用程式套件,可以改用舊版多重 APK,達到類似效果。
32 位元和 64 位元建構版本
所有 Android 應用程式都必須提供 64 位元建構版本。ARM 和 x86 裝置都可以選擇提供 32 位元版本。詳情請參閱「Android 64 位元」。
只提供 64 位元建構版本可減少所需的建構目標數量和測試範圍,但也會限制可執行遊戲的裝置類型。舉例來說,許多舊款 Chromebook 雖然搭載 64 位元 CPU,但受限於其他硬體限制,只能執行 32 位元 Android 應用程式。為確保應用程式能在這類裝置上執行,請同時支援 32 位元和 64 位元。
ARM 轉譯
x86 Chromebook 會盡可能翻譯 ARM 程式碼,但翻譯會降低效能並增加電池用量。為提供最佳使用者體驗,請提供 x86 版本。如果無法,請在建構作業中同時納入 arm32 和 arm64 ABI,因為部分 x86 Chromebook 可能無法轉譯 arm64 程式碼。舉例來說,許多舊款 Chromebook 雖然搭載 64 位元 CPU,但由於其他硬體限制,只能執行 32 位元 Android 應用程式。如要讓應用程式在這些裝置上運作,請同時支援 32 位元和 64 位元。
雖然所有支援 Android 的 Chromebook 都能翻譯 arm32,但並非所有 Chromebook 都能翻譯 arm64 程式碼。也就是說,如果遊戲只有 arm64 建構目標,就無法在大量 ChromeOS 裝置上使用。如果無法運送 x86 二進位檔,請在建構作業中同時納入 arm32 和 arm64 ABI。
| 內含的 ABI | 支援 ChromeOS |
|---|---|
| arm64 | 差 |
| arm32 和 arm64 | 確定 (含翻譯) |
| arm32、arm64、x86_32 和 x86_64 | 最佳 |