Cuttlefish 虛擬安卓設備

Cuttlefish是一種可配置的虛擬 Android 設備,可以遠程運行(使用第三方雲產品,例如 Google Cloud Engine)和本地運行(在 Linux x86 機器上)。

墨魚目標

  • 讓平台和應用程序開發人員不再依賴物理硬件來開發和驗證代碼更改。
  • 通過保持與核心框架的緊密對齊,複製真實設備基於框架的行為,注重高保真度
  • 支持 28 之後的所有 API 級別。
  • 提供跨 API 級別的一致功能級別,與物理硬件上的行為保持一致。
  • 啟用比例:

    • 提供並行運行多個設備的能力。
    • 以較低的入門成本實現高保真度的並發測試執行。
  • 為可配置設備提供調整外形尺寸、RAM、CPU 等的能力。

將 Cuttlefish 與其他設備進行比較

Cuttlefish 和 Android 模擬器

Android Emulator有很多相似之處,但 Cuttlefish 保證與 Android 框架完全一致(無論是純 AOSP 還是您自己的樹中的自定義實現)。在實際應用中,這意味著您應該期望 Cuttlefish 在操作系統級別響應您的交互,就像使用相同的定製或純 Android 操作系統源構建的物理手機目標一樣。

Android Emulator 圍繞簡化應用程序開發的用例而構建,它包含許多功能掛鉤以吸引 Android 應用程序開發人員的用例。如果您想使用自定義的 Android 框架構建模擬器,這可能會帶來挑戰。如果您需要一個虛擬設​​備來代表您的自定義平台/框架代碼或樹尖 Android,那麼 Cuttlefish 是一個理想的虛擬選項。它是代表 AOSP 開發當前狀態的規範設備。

墨魚和物理設備

Cuttlefish 虛擬設備和您的物理設備之間的主要區別在於硬件抽象層 (HAL) 級別,以及與任何自定義硬件交互的任何軟件。除了特定於硬件的實現之外,您應該期望 Cuttlefish 和物理設備之間的功能等效行為。

墨魚有什麼幫助?

您可以與 Cuttlefish 進行交互,就像與您可能用於調試的任何其他 Android 設備進行交互一樣。它會通過 adb 將自己註冊為普通設備,您可以通過遠程桌面像物理設備一樣與它交互。用例廣泛,可以涵蓋應用程序測試、自定義系統構建測試等。

因為 Cuttlefish 力求完全的框架保真度,所以它可以用於框架和/或應用程序的功能測試,其中沒有無法模擬的物理硬件依賴性。

如今 Cuttlefish 通常如何用於測試?

Cuttlefish 的一些常見測試應用包括:

  • 華僑城
  • 框架合規性
  • 持續集成測試
  • 自定義測試套件

我可以在雲中託管墨魚嗎?

是的,Cuttlefish 原生支持 Google Cloud,併計劃支持其他雲平台。

入門

有關基於 AOSP 創建 Cuttlefish 實例的指南,請參閱使用 Cuttlefish