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

本文說明 Test Lab 的 AVD,包括優點和已知限制。我們也會提供建議,協助您瞭解如何在開發生命週期中測試應用程式。Test Lab AVD 與 Android Studio 的 AVD 類似,但已針對執行雲端測試最佳化,因此兩者之間有些差異。

後置字串為 .arm 或 (Arm) 的 Test Lab 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 模擬器或連接的實體裝置檢查每個版本,以便進行初始驗證。如果您有檢測設備測試,也可以在 Test Lab 提供的實體或虛擬裝置上,從 Android Studio 執行這些測試。

在處理共用專案時,針對每個程式碼變更使用持續整合系統

如果您處理的是大型專案,或是為透過 GitHub 或類似網站共用的專案做出貢獻,建議您使用持續整合 (CI) 系統。每次持續整合系統執行時,或在每個提取要求之前,都請在虛擬裝置上測試應用程式。如要進一步瞭解如何搭配使用 Test Lab 與持續整合系統,請參閱「搭配使用 Test Lab for 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 OpenGL ES 3.x 不適用於 API 級別 29 以下的裝置。較新的裝置並未完全與 OpenGL/Vulkan API 相容,因此圖像可能會出現一些細微差異。
Google Play 商店應用程式 Arm 虛擬裝置不支援 Google Play 商店應用程式。
擴增實境 (AR) 功能 虛擬裝置不支援測試擴增實境 (AR) 功能。
舊版 API 級別 Test Lab Arm 虛擬裝置不支援低於 26 的 API 級別。

後續步驟