本文檔介紹了測試實驗室的 AVD,包括優點和已知限制。我們還提供有關如何在整個開發生命週期中測試您的應用程序的建議。
雖然測試實驗室 AVD 類似於Android Studio 的 AVD ,但兩者之間存在一些差異。例如,測試實驗室中的 AVD 具有模擬數據連接而不是 Wi-Fi 連接。
帶有.arm
或 (Arm) 後綴的 Test Lab AVD 是高級仿真器,具有以下優點:
更快的測試執行時間
屏幕尺寸和密度與 Android Studio 的 AVD 保持一致以保持一致性
與其他類型的物理設備相比,使用帶有.arm
或 (Arm) 後綴的 AVD 具有以下優勢:
益處 | 描述 | 用例) |
高可用性 | 使用虛擬設備進行測試時,您可以更快地運行測試並獲得測試結果。由於虛擬設備是按需創建的,因此您的測試幾乎可以立即開始,從而可以快速驗證您的應用程序。 | 測試應用程序的小更新,或進行回歸測試。 |
更長的測試持續時間 | 物理設備上的測試限制為每台設備的測試持續時間為 45 分鐘。虛擬設備支持長達 60 分鐘的測試持續時間。 | 運行更長的測試。 |
降低成本 | 對於用於測試您的應用程序的每個虛擬設備,虛擬設備的價格為每小時 1 美元。 | 使用持續集成系統進行日常測試,或在簽入代碼之前進行測試。要了解更多信息,請參閱測試實驗室的使用水平、配額和定價。 |
使用虛擬設備測試您的應用
您可以像使用物理設備測試應用程序一樣使用虛擬設備測試您的應用程序。選擇測試維度時只需選擇虛擬設備即可配置測試矩陣。要了解有關使用測試實驗室運行測試的更多信息,請參閱開始使用 Firebase 測試實驗室測試 Android 。
查看支持的模型和 API
要查看 Test Lab 支持的 AVD 模型和 API,請運行以下命令:
gcloud firebase test android models list --filter=virtual
測試應用的最佳做法
當您使用測試實驗室測試您的應用程序時,虛擬設備增加了您的選擇範圍。我們建議使用本節中的最佳做法在整個應用開發生命週期中測試您的應用。
使用 Android Studio 模擬器或連接的物理設備
在開發您的應用程序時,請使用 Android Studio 模擬器或連接的物理設備來檢查每個構建以進行初始驗證。如果您有儀器測試,您還可以在測試實驗室提供的物理或虛擬設備上從 Android Studio 運行這些測試。
在處理共享項目時對每個代碼更改使用 CI 系統
如果您從事大型項目,或者如果您為使用 GitHub 或類似服務共享的項目做出貢獻,我們建議您使用持續集成 (CI) 系統。
每次 CI 系統運行時或每次拉取請求之前,在虛擬設備上測試您的應用程序。要了解有關將測試實驗室與 CI 系統結合使用的更多信息,請參閱將 Android 測試實驗室與持續集成系統結合使用。
在發布重要的應用更新之前,使用測試實驗室在物理設備上測試您的應用
在發布具有重大 UI 和功能更改的應用程序更新之前,我們建議您使用測試實驗室在物理設備上測試您的應用程序。這將有助於確保您的應用程序在各種流行的物理設備上穩定且高效。在物理設備上進行測試還可以確保對任何依賴於虛擬設備未模擬的物理設備功能的應用程序功能進行測試覆蓋。要了解有關這些功能的更多信息,請參閱已知限制。
虛擬設備更新
Android 團隊會定期添加新的虛擬設備映像、棄用舊的並更新現有的。我們將這些更新應用於我們的虛擬設備映像,以幫助確保您正在針對反映用戶體驗的最新 Android 版本進行測試。
在極少數情況下,這些更新可能會導致測試意外失敗。當存在已知的潛在破壞性更新時,測試實驗室將在發行說明中包含信息。作為最佳實踐,我們建議您盡可能使用對這些更改具有魯棒性的測試框架,例如Espresso 。如果無法做到這一點,我們建議您以 Arm 虛擬設備為目標,這些設備的更新頻率可能較低。
已知限制
某些物理設備特性目前無法通過虛擬設備模擬,或者模擬時存在一些限制。下表總結了當前在虛擬設備上不可用或在某些限制下可用的功能。
特徵 | 細節 |
應用程序二進制接口 (ABI) | 並非所有設備都支持所有 ABI。如果您使用 Android NDK 進行開發,請確保為您的目標設備支持的 ABI 生成代碼。有關詳細信息,請參閱測試實驗室中的可用設備。要了解有關 ABI 管理的更多信息,請參閱Android ABI 。要了解設備支持哪些 ABI,請參閱檢查可用的測試設備。 注意:如果您的測試矩陣中的測試標記為無效,這可能是因為您的應用依賴於設備 ABI 不支持的本機代碼。 |
圖形性能 | Nexus 和 Pixel 虛擬設備使用軟件圖形渲染。圖形密集型應用程序的性能會降低。如果您的應用是圖形密集型應用,請改用SmallPhone.arm 和MediumPhone.arm 模型或物理設備。 |
屏幕錄製 | Nexus 和 Pixel 設備上的屏幕錄製是每秒 1 幀。 |
圖形 API | API 級別 29 以下的設備不支持 OpenGL ES 3.x。較新的設備並非 100% 兼容 OpenGL/Vulkan API。您可能會注意到圖形中的細微差別。 |