Cuttlefish 虛擬 Android 裝置

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

Cuttlefish 目標

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

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

比較 Cuttlefish 與其他裝置

本節會比較 Cuttlefish 與其他裝置。

Cuttlefish 和 Android Emulator

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

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

Cuttlefish 和實體裝置

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

Cuttlefish 的用途

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

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

目前如何使用 Cuttlefish 進行測試

Cuttlefish 的常見測試應用包括:

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

在雲端託管 Cuttlefish

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

開始使用

如需根據 AOSP 建立 Cuttlefish 執行個體的指引,請參閱「使用 Cuttlefish」。