Cuttlefish 虛擬 Android 設備

Cuttlefish是一款可設定的虛擬 Android 設備,可遠端運行(使用 Google Cloud Engine 等第三方雲端產品)和本地運行(在 Linux x86 電腦上)。

墨魚目標

  • 讓平台和應用程式開發人員不再依賴實體硬體來開發和驗證程式碼變更。
  • 透過與核心框架保持緊密一致,複製真實設備的基於框架的行為,重點關注高保真度
  • 支援28之後的所有API等級。
  • 跨 API 級別提供一致的功能級別,與實體硬體上的行為保持一致。
  • 啟用規模:

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

將 Cuttlefish 與其他設備進行比較

Cuttlefish 和 Android 模擬器

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

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

烏賊和物理裝置

Cuttlefish 虛擬設備和實體設備之間的主要區別在於硬體抽象層 (HAL) 級別,以及與任何自訂硬體互動的任何軟體。除了特定於硬體的實現之外,您應該期望 Cuttlefish 和實體設備之間具有相同的功能行為。

墨魚有什麼幫助?

您可以與 Cuttlefish 進行交互,就像與任何其他用於調試的 Android 設備進行交互一樣。它將透過 adb 將自身註冊為普通設備,您可以透過遠端桌面像實體設備一樣與它進行互動。用例很廣泛,可以涵蓋應用程式測試、自訂系統建置測試等。

由於 Cuttlefish 致力於實現完整的框架保真度,因此它可用於框架和/或應用程式的功能測試,其中不存在無法模擬的物理硬體依賴性。

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

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

  • CTS
  • 框架合規性
  • 持續集成測試
  • 客製化測試套件

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

是的,Cuttlefish 本身支援 Google Cloud,並計劃支援其他雲端平台。

入門

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

,

Cuttlefish是一款可設定的虛擬 Android 設備,可遠端運行(使用 Google Cloud Engine 等第三方雲端產品)和本地運行(在 Linux x86 電腦上)。

墨魚目標

  • 讓平台和應用程式開發人員不再依賴實體硬體來開發和驗證程式碼變更。
  • 透過與核心框架保持緊密一致,複製真實設備的基於框架的行為,重點關注高保真度
  • 支援28之後的所有API等級。
  • 跨 API 級別提供一致的功能級別,與實體硬體上的行為保持一致。
  • 啟用規模:

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

將 Cuttlefish 與其他設備進行比較

Cuttlefish 和 Android 模擬器

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

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

烏賊和物理裝置

Cuttlefish 虛擬設備和實體設備之間的主要區別在於硬體抽象層 (HAL) 級別,以及與任何自訂硬體互動的任何軟體。除了特定於硬體的實現之外,您應該期望 Cuttlefish 和實體設備之間具有相同的功能行為。

墨魚有什麼幫助?

您可以與 Cuttlefish 進行交互,就像與任何其他用於調試的 Android 設備進行交互一樣。它將透過 adb 將自身註冊為普通設備,您可以透過遠端桌面像實體設備一樣與它進行互動。用例很廣泛,可以涵蓋應用程式測試、自訂系統建置測試等。

由於 Cuttlefish 致力於實現完整的框架保真度,因此它可用於框架和/或應用程式的功能測試,其中不存在無法模擬的物理硬體依賴性。

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

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

  • CTS
  • 框架合規性
  • 持續集成測試
  • 客製化測試套件

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

是的,Cuttlefish 本身支援 Google Cloud,並計劃支援其他雲端平台。

入門

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