開始使用 Android 虛擬裝置進行測試

本文說明 AVD 的優點和已知限制。Test Lab我們也會提供建議,說明如何在整個開發生命週期中測試應用程式。Test Lab AVD 類似於 Android Studio 的 AVD,但經過最佳化,可提升雲端測試的效能,因此兩者之間有些差異。

Test Lab 附有 .arm 或 (Arm) 字尾的 AVD 是進階模擬器,具備下列優點:

  • 縮短測試執行時間

  • 螢幕大小和密度與 Android Studio 的 AVD 一致,確保一致性

  • GPU 支援的加速圖形

下表說明使用虛擬裝置的好處:

好處 說明 用途
高可用性 使用虛擬裝置進行測試時,您可以更快執行測試並取得測試結果。虛擬裝置是依需求建立,因此測試幾乎會立即開始,可快速驗證應用程式。 測試應用程式的小幅更新,或進行迴歸測試。
延長測試時間 虛擬裝置支援的測試時間上限為 60 分鐘。在實體裝置上測試時,每部裝置的測試時間上限為 45 分鐘。 執行較長的測試
降低費用 虛擬裝置的價格為每小時 $1 美元,以測試應用程式所用的虛擬裝置數量計費。 使用持續整合系統進行每日測試,或在簽入程式碼前進行測試。詳情請參閱「Test Lab 的用量等級、配額和定價」。

使用虛擬裝置測試應用程式

您可以使用虛擬裝置測試應用程式,方式與使用實體裝置測試相同。設定測試矩陣時,您可以選取測試用的虛擬裝置。如要進一步瞭解如何使用 Test Lab 執行測試,請參閱「開始使用 Firebase Test Lab 測試 Android 應用程式」。

查看支援的模型和 API

如要查看 Test Lab 支援的 AVD 模型和 API,請執行下列指令:

gcloud firebase test android models list --filter=virtual

測試應用程式的最佳做法

使用 Test Lab 測試應用程式時,虛擬裝置可擴大選項範圍。建議您在整個應用程式開發生命週期中,採用下列最佳做法測試應用程式:

使用 Android Studio 模擬器或已連結的實體裝置

開發應用程式時,請使用 Android Studio 模擬器或連接的實體裝置檢查每個建構版本,進行初步驗證。如果您有檢測設備測試,也可以在 Android Studio 中,透過 Test Lab 提供的實體或虛擬裝置執行這些測試。

在共用專案中作業時,針對每項程式碼變更使用 CI 系統

如果您處理大型專案,或是透過 GitHub 或類似網站參與共用專案,建議使用持續整合 (CI) 系統。每次 CI 系統執行時,或每次提取要求前,請在虛擬裝置上測試應用程式。如要進一步瞭解如何在 CI 系統中使用 Test Lab,請參閱「使用 Test Lab 搭配 Android 持續整合系統」。

發布重大應用程式更新前,請先使用 Test Lab 在實體裝置上測試應用程式

發布使用者介面和功能有重大變更的應用程式更新前,建議您使用 Test Lab在實體裝置上測試應用程式。這有助於確保應用程式在各種熱門實體裝置上都能穩定運作,並提供優異效能。在實體裝置上進行測試,也能確保測試涵蓋所有依賴實體裝置功能 (虛擬裝置無法模擬) 的應用程式功能。如要進一步瞭解這些功能,請參閱「已知限制」。

虛擬裝置更新

Android 團隊會定期新增虛擬裝置映像檔、淘汰舊版映像檔,以及更新現有映像檔。我們會將這些更新套用至虛擬裝置映像檔,確保您測試的 Android 版本是最新版,可反映使用者的體驗。

在極少數情況下,這些更新可能會導致測試意外失敗。如果已知有潛在的重大更新,Test Lab 會在版本說明中提供相關資訊。根據最佳做法,我們建議您盡可能使用測試架構 (例如 Espresso),確保這些變更不會造成影響。如果無法使用實體裝置,建議您改為以 Arm 虛擬裝置為目標,這類裝置的更新頻率較低。

已知限制

虛擬裝置目前無法模擬部分實體裝置功能,或模擬時會受到限制。下表列出虛擬裝置目前無法使用的功能,或是有某些限制的功能:

功能 詳細資料
應用程式二進位檔介面 (ABI) 並非所有裝置都支援所有 ABI。如果您使用 Android NDK 進行開發,請務必為目標裝置支援的 ABI 產生程式碼 (請參閱 Test Lab 中的「可用裝置」)。如要進一步瞭解 ABI 管理,請參閱「Android ABI」。

注意:如果測試矩陣中的測試標示為「無效」,可能是因為應用程式依附於裝置 ABI 不支援的原生程式碼。

圖像效能 Nexus 和 Pixel 虛擬裝置使用軟體圖形算繪。如果應用程式需要大量繪圖資源,效能可能會降低。如果您的應用程式需要大量圖形處理,請考慮改用 SmallPhone.arm、MediumPhone.arm 或實體裝置。
圖形 API API 級別 29 以下的裝置不支援 OpenGL ES 3.x。新裝置與 OpenGL/Vulkan API 並非 100% 相容,因此您可能會發現圖形略有差異。
Google Play 商店應用程式 Arm 虛擬裝置不支援 Google Play 商店應用程式。
擴增實境 (AR) 功能 虛擬裝置不支援測試擴增實境 (AR) 功能。
舊版 API 級別 Test Lab Arm 虛擬裝置不支援低於 26 的 API 級別。

後續步驟