ChromeOS 裝置 (例如 Chromebook) 支援 Google Play 商店和 Android 應用程式。本文假設您有現有的 Android 應用程式,且希望針對 Chromebook 進行最佳化調整。如要瞭解建構 Android 應用程式的基礎知識,請參閱「建構第一個 Android 應用程式」。
更新應用程式的資訊清單檔案
如要開始使用,請更新資訊清單檔案,以因應 Chromebook 和其他 Android 裝置之間的主要硬體和軟體差異。
自 ChromeOS M53 版本起,所有未明確要求 android.hardware.touchscreen
功能的 Android 應用程式,也能在支援 android.hardware.faketouch
功能的 ChromeOS 裝置上運作。不過,為確保您的應用程式可在所有 Chromebook 上運作,請更新資訊清單檔案,以便不必使用 android.hardware.touchscreen
功能,如以下範例所示。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <!-- Some Chromebooks don't support touch. Although not essential, it's a good idea to explicitly include this declaration. --> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> </manifest>
不同硬體裝置配備的感應器組合不同,Chromebook 可能不具備 Android 手持裝置的所有感應器,例如 GPS 和加速計。不過,在某些情況下,感應器的功能會以其他方式提供。舉例來說,Chromebook 可能沒有 GPS 感應器,但會根據 Wi-Fi 連線提供位置資料。請參閱感應器總覽,進一步瞭解 Android 平台支援的感應器。
如果您希望應用程式無論感應器是否可用都能在 Chromebook 上執行,請更新資訊清單檔案,以便應用程式不必使用感應器。
Chromebook 不支援部分軟體功能。舉例來說,Chromebook 不支援提供自訂 IME、應用程式小工具、動態桌布和應用程式啟動器的應用程式,也無法安裝這類應用程式。如需 Chromebook 不支援的軟體功能完整清單,請參閱「不相容的軟體功能」。
更新目標 SDK
請將應用程式的 targetSdkVersion
屬性更新為最新的 API 級別,充分運用 Android 平台的所有改善項目。查看 Android 平台在不同版本中所做的改善。
檢查網路需求
Chromebook 會在容器中執行整個 Android 作業系統,類似於 Docker 或 LXC。這表示 Android 無法直接存取系統的區域網路介面。相反地,IPv4 流量會透過內部網路位址轉譯 (NAT) 層,而 IPv6 單播流量則會透過額外中繼傳送。
從 Android 應用程式傳出的單播連線,大多會維持原樣運作。一般來說,系統會封鎖傳入連線。來自 Android 的多播或廣播封包不會透過防火牆轉送至區域網路。
在多播限制中,ChromeOS 會執行一項服務,在 Android 和區域網路介面之間轉送 mDNS 流量,因此建議使用標準的 網路服務探索 API,探索區域網路區段中的其他裝置。在 LAN 上找到裝置後,Android 應用程式可以使用標準 TCP 或 UDP 單播通訊埠與裝置通訊。
來自 Android 的 IPv4 連線會使用 ChromeOS 主機的 IPv4 位址。在 Android 應用程式內部,系統會看到指派給網路介面的私人 IPv4 位址。來自 Android 的 IPv6 連線會使用與 ChromeOS 主機不同的位址,因為 Android 容器有專屬的公開 IPv6 位址。
有效使用雲端和本機儲存空間
Chromebook 可讓使用者輕鬆從一台裝置遷移到另一台裝置。如果使用者停止使用某部 Chromebook 並開始使用另一部 Chromebook,只要登入即可看到所有應用程式。
這項功能可讓您將應用程式資料備份到雲端,進而啟用跨裝置同步功能。不過,請勿依賴網際網路連線才能讓應用程式正常運作。相反地,請在裝置離線時將使用者的工作儲存在本機,並在裝置重新連上網路後同步至雲端。
Chromebook 也能讓大量使用者共用,例如學校。由於本機儲存空間有限,您隨時可以從裝置上移除整個帳戶及其儲存空間。在教育環境中,建議您留意這類情況。
為應用程式開發新的測試案例
如要為應用程式開發測試案例,請先確認您已指定適當的資訊清單旗標。特別建議將 screenOrientation
設為 unspecified
。如果您想指定橫向方向,建議使用 sensorLandscape
,確保平板電腦上的體驗最佳化。
如果您有特殊的桌面環境大小或方向需求,請考慮加入中繼標記做為大小或方向提示。如要在手機上加入大小和方向,請改為指定版面配置 defaultHeight
、defaultWidth
或 minHeight
屬性。
如果您想針對特定裝置類別處理特定輸入裝置,請指定 android.hardware.type.pc
來停用輸入相容性模式。
如果您使用任何類型的網路,請確認應用程式可在連線問題解決或裝置從休眠模式喚醒後,重新連線至網路。
建議您查看 ChromeOS 上的 Android 應用程式測試案例清單,並在測試計畫中使用這些測試案例。這些測試案例涵蓋一系列 Android 應用程式在 ChromeOS 裝置上運作時可能遇到的常見情況,能協助您為應用程式做好準備。
多視窗模式和螢幕方向變更
ChromeOS 的多視窗環境可讓狀態持續性和回憶問題更明顯。在適當情況下,請使用 ViewModel
儲存及還原狀態。
如要測試狀態持續性,請將應用程式最小化一段時間,啟動另一個資源密集的程序,然後還原應用程式,確認應用程式會返回您離開時的狀態。
按下全螢幕鍵 (F4) 並將視窗放大和還原,即可測試視窗大小調整功能。如要測試自由調整大小功能,請先在開發人員選項中啟用這項功能,然後確認應用程式能順利調整大小而不當機。
如果 ChromeOS 裝置支援,請改用筆電模式或平板電腦模式,確認所有功能是否正常運作。在平板電腦模式下旋轉裝置一次,以測試螢幕方向變更,然後切換回筆電模式。重複這個步驟幾次。
請確認頂端列不會因為偏移的 UI 元素或位置感應觸控輸入而導致應用程式發生錯誤。針對 ChromeOS 裝置,請確認應用程式不會將重要資訊放在狀態列區域。
如果您使用相機或其他硬體功能 (例如觸控筆),請確認在執行上述視窗和裝置變更時,這些功能能否正常運作。