Cuttlefish 虛擬 Android 裝置

Cuttlefish 是可設定的虛擬 Android 裝置,可從遠端 (使用 Google Cloud Engine 等第三方雲端服務) 和本機 (Linux x86 和 ARM64 機器) 執行。

Cuttlefish 目標

  • 讓平台和應用程式開發人員不必依賴實體硬體,也能開發及驗證程式碼變更。
  • 與核心架構保持密切對齊,藉此複製真實裝置的架構行為,同時著重在高保真度
  • 支援 28 後的所有 API 級別。
  • 為各 API 級別提供一致的功能等級,並與實體硬體上的行為保持一致。
  • 啟用體重計:

    • 允許並行執行多部裝置。
    • 以較低的項目成本啟用高保真度並行測試執行作業。
  • 提供可設定的裝置,能夠調整板型規格、RAM、CPU 等。

比較 Cuttlefish 與其他裝置

Cuttlefish 和 Android Emulator

Android Emulator 有許多相似之處,但 Cuttlefish 能與 Android 架構 (無論是單純的 AOSP 或自己的樹狀結構自訂實作項目) 保證完全不保真。在實際應用程式中,這表示您應該預期 Cuttlefish 在 OS 層級回應您的互動,就像使用相同自訂或純 Android OS 來源建構的實體手機目標一樣。

Android Emulator 的設計是為了簡化應用程式開發作業,並包含許多功能掛鉤,以吸引 Android 應用程式開發人員的用途。如要使用自訂 Android 架構建構模擬器,可能會遇到一些挑戰。如果您需要能夠代表自訂平台/架構代碼或 Android 小費的虛擬裝置,那麼 Cuttlefish 是理想的虛擬選項。這是代表 Android 開放原始碼計畫開發作業目前狀態的標準裝置。

Cuttlefish 和實體裝置

Cuttlefish 虛擬裝置和實體裝置的主要差異位於硬體抽象層 (HAL) 層級,以及與任何自訂硬體互動的任何軟體。除了硬體專屬的實作項目以外,您應該預期 Cuttlefish 和實體裝置之間功能的運作方式相等。

Cuttlefish 如何提供協助?

您可以與 Cuttlefish 互動,做法和與用於偵錯的其他 Android 裝置相同。它會透過 ADB 將本身註冊為一般裝置,而您可以在遠端桌面機制下與實體裝置互動。用途廣泛,適用於應用程式測試、自訂系統建構測試等。

由於 Cuttlefish 致力於維持完整的架構保真度,因此可用於在沒有無法模擬的實體硬體依附元件的情況下,用於測試架構或應用程式的功能測試。

Cuttlefish 目前如何用於測試?

Cuttlefish 的常見測試用途包括:

  • CTS
  • 架構法規遵循
  • 持續整合測試
  • 自訂測試套件

我可以在雲端上主持 Cuttlefish 嗎?

是,Cuttlefish 原生支援 Google Cloud,並計畫支援其他雲端平台。

開始使用

如要瞭解如何根據 Android 開放原始碼計畫建立 Cuttlefish 執行個體,請參閱「使用 Cuttlefish」。