Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

開始使用 Android 虛擬設備進行測試

Firebase 測試實驗室的 Android 虛擬設備 (AVD) 是 Android 設備的高保真模擬。測試實驗室中的 AVD 具有最高的可用性,對於日常開發或持續集成測試最有用。它們類似於Android Studio 的 AVD,但針對雲測試的性能進行了優化,因此兩者之間存在一些差異(例如,測試實驗室中的 AVD 具有模擬數據連接而不是 WiFi 連接)。

為什麼要使用虛擬設備?

與物理設備相比,虛擬設備具有以下優勢:

  • 高可用性:使用虛擬設備進行測試時,您可以更快地運行測試並獲得測試結果。由於虛擬設備是按需創建的,您的測試幾乎立即開始,從而快速驗證您的應用程序。這使得虛擬設備非常適合測試應用的小更新或回歸測試。
  • 更長的測試持續時間:在物理設備上的測試被限制在每台設備上 45 分鐘的測試持續時間。虛擬設備支持長達 60 分鐘的測試持續時間,這使得它們適合運行更長的測試,尤其是測量應用程序的性能。
  • 成本更低:每個用於測試您的應用程序的虛擬設備的虛擬設備價格為每小時 1 美元。由於成本低,虛擬設備非常適合使用持續集成系統進行日常測試,或者在簽入代碼之前進行。要了解更多信息,請參閱測試實驗室計費

如何使用虛擬設備測試您的應用

您可以使用虛擬設備測試您的應用程序,就像使用物理設備測試它一樣。當您選擇測試維度來配置測試矩陣時,只需選擇虛擬設備。

測試應用的最佳實踐

使用測試實驗室測試您的應用程序時,虛擬設備增加了您的選擇範圍。我們建議使用以下方法在您的應用程序開發生命週期中測試您的應用程序:

  • 在 Android Studio 中:開發應用程序時,使用 Android Studio 模擬器或連接的物理設備檢查每個構建以進行初始驗證。如果您有儀器測試,您還可以在測試實驗室提供的物理或虛擬設備上從 Android Studio 運行這些測試。
  • 將測試實驗室與通用低分辨率中 DPI (MDPI) 虛擬設備一起使用:與其他虛擬設備相比,使用測試實驗室通用低分辨率 MDPI 電話虛擬設備可以更快地在您的應用上運行 Robo 測試和儀器測試。 MDPI 虛擬設備可用於 API 級別 23 及更高級別。要從 gcloud 命令行界面使用此設備,請使用NexusLowRes模型 ID。
  • 處理共享項目時,在每次代碼更改時使用持續集成 (CI) 系統:如果您處理大型項目,或者如果您為使用 GitHub 或類似站點共享的項目做出貢獻,我們建議您使用持續集成 (CI)系統並在每次 CI 系統運行時或每次拉取請求之前在虛擬設備上測試您的應用程序。要了解有關將測試實驗室與 CI 系統一起使用的更多信息,請參閱將測試實驗室用於 Android 與持續集成系統
  • 在發布重大應用更新之前:我們建議在發布 UI 和功能發生重大變化的應用更新之前,使用測試實驗室在物理設備上測試您的應用。這將有助於確保您的應用程序在各種流行的物理設備上運行良好,並確保對依賴於非虛擬設備模擬的物理設備功能的任何應用程序功能的測試覆蓋率。要了解有關這些功能的更多信息,請參閱已知限制

已知限制

某些物理設備功能當前無法通過虛擬設備進行模擬,或者在某些限制下進行模擬。下表總結了當前在虛擬設備上不可用或在某些限制下可用的功能:

特徵細節
非 x86 應用程序二進制接口 (ABI)虛擬設備僅支持 x86 ABI。如果您使用 Android NDK 進行開發,請確保為 x86 指令集生成代碼。要了解更多信息,請參閱ABI 管理

注意:如果您的測試矩陣中的某些測試被標記為Invalid ,這可能是因為您的應用程序依賴於本機 ARM 代碼。
視頻編解碼目前,虛擬設備僅支持 H264 視頻解碼。不支持視頻編碼。

注意:虛擬設備測試的視頻目前以每秒一幀的速度運行,這使得它們不如物理設備測試的視頻流暢。
OpenGL ES 3.x OpenGL ES 3.x 和更高版本的圖形庫在虛擬設備上不可用。
相機 HAL v3要了解有關 Android 相機 HAL v3.0 的更多信息,請參閱相機 HAL v3 概述
虛擬專用網絡 (VPN)目前,虛擬設備不支持 VPN 使用。