Cuttlefish 虛擬 Android 裝置

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

Cuttlefish 目標

  • 平台和應用程式開發人員不必依賴實體硬體,即可開發及驗證程式碼變更。
  • 複製實體裝置的架構式行為,並著重於高擬真度,與核心架構保持緊密一致。
  • 支援 28 以上的所有 API 級別。
  • 在各個 API 級別提供一致的功能,並與實體硬體的行為保持一致。
  • 啟用比例尺:

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

比較 Cuttlefish 與其他裝置

Cuttlefish 和 Android 模擬器

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

Android Emulator 的設計宗旨是簡化應用程式開發作業,並提供許多功能掛鉤,以滿足 Android 應用程式開發人員的使用需求。如果您想使用自訂的 Android 架構建構模擬器,這可能會造成困難。如果您需要代表自訂平台/架構程式碼或樹狀結構頂端 Android 的虛擬裝置,Cuttlefish 是理想的虛擬選項。這是代表 AOSP 開發目前狀態的標準裝置。

Cuttlefish 和實體裝置

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

Cuttlefish 如何提供協助?

您可以像使用其他 Android 裝置進行偵錯一樣,與 Cuttlefish 互動。它會透過 adb 註冊為一般裝置,您可以透過遠端桌面與其互動,就像使用實體裝置一樣。用途廣泛,包括應用程式測試、自訂系統建構測試等。

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

目前 Cuttlefish 通常用於哪些測試?

Cuttlefish 的常見測試應用包括:

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

我可以在雲端代管 Cuttlefish 嗎?

可以,Cuttlefish 原生支援 Google Cloud,並預計支援其他雲端平台。

開始使用

如要瞭解如何根據 AOSP 建立 Cuttlefish 執行個體,請參閱「使用 Cuttlefish」。