本文件說明 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) 系統。每次執行 CI 系統或每次提取要求前,請在虛擬裝置上測試應用程式。如要進一步瞭解如何在 CI 系統中使用 Test Lab,請參閱「使用 Android 版 Test Lab 與持續整合系統」。
在發布重大應用程式更新前,請先使用 Test Lab 在實體裝置上測試應用程式
在發布 UI 和功能有重大變更的應用程式更新前,建議您使用 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 虛擬裝置不支援 API 級別 26 以下。 |