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 就是理想的虛擬選項。這是代表 AOSP 開發目前狀態的標準裝置。

Cuttlefish 和實體裝置

Cuttlefish 虛擬裝置與實體裝置的主要差異在於硬體抽象層 (HAL) 層級,以及與任何自訂硬體互動的任何軟體。除了硬體專屬的實作項目外,Cuttlefish 和實體裝置之間的行為應是功能等同的。

Cuttlefish 如何提供協助?

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

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

目前 Cuttlefish 在測試時的常見用途為何?

以下是 Cuttlefish 在測試中常見的應用方式:

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

我可以在雲端託管 Cuttlefish 嗎?

是的,Cuttlefish 原生支援 Google Cloud,我們也預計支援其他雲端平台。

開始使用

如需建立以 AOSP 為基礎的 Cuttlefish 執行個體的操作說明,請參閱「使用 Cuttlefish」。