開始建構支援 ChromeOS 的應用程式

Chromebook 等 ChromeOS 裝置支援 Google Play 商店 Android 應用程式。本文假設您現有的 Android 應用程式是專為 您想在 Chromebook 最佳化的應用程式或平板電腦上。如要瞭解基本概念 請參閱建構第一個 Android 應用程式 app

更新應用程式的資訊清單檔案

首先,請更新資訊清單檔案,說明一些重要硬體和 Chromebook 和其他搭載 Android 的裝置間的軟體差異。

自 ChromeOS M53 版起,所有未明確需要 android.hardware.touchscreen敬上 這項功能也適用於支援 android.hardware.faketouch 功能。不過,請確保應用程式 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 和加速計不過在某些情況下 則是以另一種方式提供感應器舉例來說 有 GPS 感測器,但它們會根據 Wi-Fi 連線提供位置資料。 詳情請參閱「感應器總覽」 Android 平台支援的感應器

如果您希望應用程式在 Chromebook 上執行 (無論能否使用感應器), 請更新您的資訊清單檔案,以停用任何感應器。

Chromebook 不支援部分軟體功能。舉例來說,如果應用程式 提供自訂 IME、應用程式小工具、動態桌布和應用程式啟動器 無法在 Chromebook 上安裝如需 Chromebook 不支援的軟體功能,請參閱不相容的軟體功能 軟體功能

更新目標 SDK

更新應用程式的 targetSdkVersion 屬性設為最新的 API 級別,以便使用所有 改善 Android 平台的運作方式查看 Android 的改善項目 推出不同版本的平台。

檢查網路需求

Chromebook 會在容器中執行整個 Android 作業系統,類似於 Docker 或 LXC。 這表示 Android 無法直接存取系統的 LAN 存取 APIIPv4 流量會經由內部網路層傳遞 位址轉譯 (NAT) 和 IPv6 單點傳播流量會透過額外的 躍點。

主要從 Android 應用程式傳出單點傳播連線至網際網路 保持原樣一般而言,系統會封鎖傳入連線。多點傳播或廣播 來自 Android 的封包不會透過防火牆轉送至 LAN。

除了多點傳播限制以外,ChromeOS 會執行 會在 Android 和 LAN 介面之間轉送 mDNS 流量,因此標準 網路服務探索 API 可用來發掘 LAN 區段中的其他裝置。更新後 在 LAN 上尋找裝置,Android 應用程式可以使用標準 TCP 或 UDP 單點傳播 進行通訊

源自 Android 的 IPv4 連線會使用 ChromeOS 主機的 IPv4 位址。 Android 應用程式會在內部偵測到指派給網路的私人 IPv4 位址 存取 APIAndroid 來源的 IPv6 連線使用不同的位址 新增一個應用程式,因為 Android 容器具有專屬的公開版本 IPv6 位址。

有效率地使用雲端和本機儲存空間

Chromebook 可讓使用者輕鬆在不同裝置間遷移。使用者停止操作 開始使用另一部 Chromebook 只需登入帳戶 所有應用程式都會顯示

因此,請將應用程式的資料備份到雲端,以便啟用同步處理功能 跨裝置使用 YouTube不過,應用程式即使未連上網際網路 正常運作。請改為將使用者的工作儲存在裝置 並在裝置恢復連線後同步到雲端。

也可以與許多人共用 Chromebook 學校。由於本機儲存空間並非無限量,因此整個帳戶都會 與儲存空間共用,您可以隨時從裝置中移除。適用對象 教育性質的影片,建議您記住這個情境。

更新 NDK 程式庫

如果應用程式使用 Android NDK 程式庫,且目標 SDK 版本為 23, 高一點,確保從 ARM 和 x86 中移除文字再定位 NDK 程式庫版本,因為與 Android 6.0 (API) 不相容 23) 及以上版本。將文字重新定位在 NDK 程式庫中, 也可能導致 Chromebook 發生相容性錯誤,尤其是在 也就是在採用 x86 架構的裝置上執行

為應用程式開發新的測試案例

如要開發應用程式的測試案例,請務必先指定適當的 資訊清單。尤其是,請考慮設定 screenOrientationunspecified。如要指定橫向,建議您使用 sensorLandscape,確保平板電腦提供最佳體驗。

如果電腦環境有特殊的尺寸或方向需求,請考慮 新增中繼標記做為大小或方向提示加入大小和方向 請在手機螢幕上指定版面配置 defaultHeight, defaultWidth, 或 minHeight 屬性。

如何對特定裝置處理特定輸入裝置 類別,指定 android.hardware.type.pc 即可停用輸入功能 相容模式。

如果您使用任何種類的網路,請確認應用程式可以重新連線 待連線問題解決後,裝置才會連線至網路 睡眠模式。

建議您查看 Chrome 的 Android 應用程式測試案例清單 OS,可用於測試計畫。 測試案例涵蓋 Android 應用程式應做好準備的常見情境 是否預期在 ChromeOS 裝置上執行

多視窗模式和方向變更

ChromeOS 的多視窗環境可以保持狀態持續性及喚回度 更顯而易見的問題使用 ViewModel 儲存及還原狀態。

如要測試狀態持續性,請將應用程式最小化一段時間,然後啟動另一個 並還原應用程式,確認應用程式會 維持物件原本的狀態

測試視窗大小:按下全螢幕鍵 (F4)、最大化和 還原中。如要測試任意大小調整功能,請先在開發人員選項中啟用此功能,以及 然後檢查應用程式能否順利調整大小,避免異常終止。

如果 ChromeOS 裝置支援這項功能,請從筆電模式切換至平板電腦模式 確認一切運作正常在平板電腦模式中將裝置旋轉一次即可 測試螢幕方向變更,然後切換回筆電模式。重複執行這個步驟 數次

請確保頂端列不會破壞 UI 元素,以免造成應用程式毀損 或位置資訊式觸控輸入如果使用 ChromeOS 裝置,請確認您的應用程式 未在狀態列區域放置重要資訊

如果你使用相機或其他硬體功能 (例如筆),請 確定可在執行視窗和裝置變更時正常運作 刪除映像檔