AOSP 提供了多種工具和測試套件來測試實作的各個部分。在繼續本部分之前,您應該熟悉以下術語:
- Android 相容裝置
- 可以運行第三方開發人員使用 Android SDK 和 NDK 編寫的任何第三方應用程式的裝置。 Android 相容裝置必須遵守相容性定義文件 (CDD)的要求並通過相容性測試套件 (CTS) 。 Android 相容設備有資格參與 Android 生態系統,其中包括 Google Play 商店的潛在許可、 Google 行動服務 (GMS)應用程式和 API 套件的潛在許可以及 Android 商標的使用。歡迎任何人使用 Android 原始碼,但要被視為 Android 生態系統的一部分,裝置必須與 Android 相容。
- 人工製品
- 工件是與建置相關的日誌,可實現本機故障排除。
- 相容性定義文檔 (CDD)
- 枚舉 Android 相容裝置的軟體和硬體要求的文件。
- 相容性測試套件 (CTS)
免費的商業級測試套件,可作為二進位或 AOSP 原始碼下載。 CTS 是一組單元測試,旨在整合到您的日常工作流程中。 CTS 的目的是揭示不相容性,並確保軟體在整個開發過程中保持相容。
CTS 和平台測試並不互相排斥。以下是一些一般準則:
- 如果測試斷言框架 API 功能或行為的正確性,並且應在 OEM 合作夥伴之間強制執行,則應在 CTS 中進行。
- 如果測試旨在捕獲平台開發期間的回歸,並且可能需要特權權限才能執行,並且可能依賴實作細節(如 AOSP 中發布的),那麼它應該是平台測試。
- Google行動服務(GMS)
可預先安裝在裝置上的 Google 應用程式和 API 的集合。
- 谷歌測試(GTest)
GTest 是一個 C++ 測試和模擬框架。 GTest 二進位檔案通常會存取較低層級的抽象層或針對各種系統服務執行原始 IPC。 GTest 的測試方法通常與正在測試的服務緊密耦合。 CTS 包含 GTest 框架。
- 儀器儀表測試
插樁測試提供了一個由
am instrument
命令啟動的特殊測試執行環境,其中目標應用程式進程使用基本應用程式上下文重新啟動並初始化,並且插樁執行緒在應用程式進程虛擬機內啟動。 CTS 包含儀器測試。- 日誌貓
Logcat 是一個命令列工具,可建立系統訊息日誌,包括裝置拋出錯誤時的堆疊追蹤以及您使用
Log
類別從應用程式寫入的訊息。- 記錄
日誌記錄是指使用日誌來追蹤電腦系統事件,例如錯誤。由於 Logcat 工具中組合使用了多種標準,因此 Android 中的日誌記錄非常複雜。
- 提交後測試
當新補丁提交到公共核心分支時,會執行 Android 提交後測試。輸入
aosp_kernel
作為部分分支名稱,您可以看到具有可用結果的核心分支清單。例如,android-mainline
的結果可以在https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid找到。- 預提交測試
提交前測試用於防止將故障引入通用核心。
- 貿易聯盟
Trade Federation,也稱為 Tradefed,是一個持續測試框架,設計用於在 Android 裝置上執行測試。例如,Tradefed 用於執行相容性測試套件和供應商測試套件測試。
- 供應商測試套件 (VTS)
Android 供應商測試套件 (VTS) 提供了廣泛的 Android 測試功能,促進測試驅動的開發流程,並自動化 HAL 和作業系統核心測試。
平台測試類型
平台測試通常與一個或多個 Android 系統服務或硬體抽象層 (HAL) 層交互,執行測試對象的功能,並斷言測試結果的正確性。平台測試可能:
- (類型 1)使用 Android 框架練習框架 API。正在執行的具體 API 可包括:
- 用於第三方應用程式的公共 API
- 用於特權應用程式的隱藏 API,即係統 API 或私有 API(
@hide
, or
protected,
package private`)
- (類型2)直接使用原始綁定器或IPC代理程式呼叫Android系統服務。
- (類型 3)使用低階 API 或 IPC 介面直接與 HAL 互動。
類型 1 和類型 2 測試通常是儀器測試,而類型 3 測試通常是 GTest。
下一步是什麼?
以下是您可能會閱讀的後續文件的清單:
如果您還沒有研究過 Android 架構,請參閱架構概述。
如果您要建立 Android 相容設備,請參閱Android 相容性計劃概述。
若要將儀器測試、功能測試、指標測試和 JAR 主機測試整合到平台連續測試服務中,請參閱測試開發工作流程。
若要偵測並強化您的設備以防止漏洞,請參閱安全測試。
若要了解如何測試 HAL 和核心實現,請參閱供應商測試套件 (VTS) 和基礎架構。
對於應用程式測試,請閱讀測試 Android 應用程式的基礎知識,並使用提供的範例在 Kotlin 05.1 中執行高級 Android:測試基礎知識。
了解透過儲存庫掛鉤可用的基本提交前測試。這些鉤子可用於在繼續操作(例如上傳提交)之前執行 linter、檢查格式和觸發單元測試。預設情況下,這些鉤子是禁用的。有關更多信息,請參閱AOSP Preuplaod Hooks 。
要了解有關日誌記錄的更多信息,請參閱了解日誌記錄。
若要了解如何偵錯 Android 程式碼,請參閱調試本機平台程式碼。