開始使用 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,請參閱「搭配持續整合系統使用 Android 版 Test Lab」。

發布重大應用程式更新前,請先在實體裝置上測試應用程式 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 級別。

後續步驟