Cuttlefish 虛擬安卓設備

什麼是墨魚?

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

墨魚目標

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

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

將墨魚與其他設備進行比較

墨魚和安卓模擬器

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 實例的指南,請參閱入門指南