Android 開放原始碼計畫 (AOSP) 提供多種工具和測試套件,可用於測試實作內容的各個部分。使用本節的頁面前,請先熟悉下列術語:
- Android 相容裝置
- 可執行任何由第三方開發人員使用 Android SDK 和 NDK 編寫的第三方應用程式的裝置。與 Android 相容的裝置必須遵守相容性定義說明文件 (CDD) 的規定,並通過相容性測試套件 (CTS) 測試。支援 Android 的裝置可參與 Android 生態系統,包括 Google Play 的潛在授權、Google 行動服務 (GMS) 應用程式和 API 套件的潛在授權,以及 Android 商標的使用權。任何人都可以使用 Android 原始碼,但裝置必須與 Android 相容,才能算是 Android 生態系統的一部分。
- 成果
- 可在本機排解問題的建構相關記錄。
- 相容性定義文件 (CDD)
- 這份文件列出 Android 相容裝置的軟硬體需求。
- Compatibility Test Suite (CTS)
免費的商業級測試套件,可下載為 AOSP 中的二進位檔或來源。CTS 是一組單元測試,旨在整合至您的日常工作流程。CTS 的目的在於找出不相容性問題,並確保軟體在整個開發過程中保持相容性。
CTS 和平台測試並非互斥。以下列出一些一般準則:
- 如果測試是驗證架構 API 函式或行為的正確性,且應在所有原始設備製造商 (OEM) 合作夥伴中強制執行,則應在 CTS 中進行測試。
- 如果測試目的是在平台開發期間找出回歸情形,且可能需要特殊權限才能執行,並且可能會依實作細節 (如 AOSP 中發布的內容) 而異,那麼應視為平台測試。
- Google 行動服務 (GMS)
可在裝置上預先安裝的 Google 應用程式和 API 集合。
- GoogleTest (GTest)
C++ 測試和模擬架構。GTest 二進位檔通常會存取較低層級的抽象層,或針對各種系統服務執行原始 IPC。GTest 的測試方法通常與測試中的服務緊密結合。CTS 包含 GTest 架構。
- 檢測設備測試
由
am instrument
指令啟動的特殊測試執行環境,其中會重新啟動目標應用程式程序,並使用基本應用程式內容進行初始化,並在應用程式程序虛擬機器中啟動檢測執行緒。CTS 包含檢測設備測試。- Logcat
這是一種指令列工具,可建立系統訊息記錄,包括裝置擲回錯誤時的堆疊追蹤,以及您使用
Log
類別在應用程式寫入的訊息。- 記錄
使用記錄追蹤電腦系統事件 (例如錯誤)。由於 Logcat 工具會結合多種標準,因此在 Android 中記錄資料相當複雜。
- postsubmit test
當新的修補程式提交至通用核心分支時,執行的 Android 測試。輸入
aosp_kernel
做為部分分支名稱,即可查看可用結果的核心分支清單。舉例來說,您可以前往 https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid 查看android-mainline
的結果。- presubmit test
這項測試可避免將失敗情形引入常見的核心。
- Trade Federation
又稱為 Tradefed,這種持續測試架構是專為在 Android 裝置上執行測試而設計。舉例來說,Tradefed 可用於執行 Compatibility Test Suite 和供應商 Test Suite 測試。
- 供應商測試套件 (VTS)
一系列豐富的 Android 測試功能,可推動測試導向的開發程序,以及自動執行硬體抽象層 (HAL) 和 OS 核心測試。
平台測試類型
平台測試通常會與一或多個 Android 系統服務或 HAL 層互動,測試測試對象的功能,並斷言測試結果是否正確。平台測試可能會:
- (類型 1) 使用 Android 架構的練習架構 API。執行的特定 API 可能包括:
- 專供第三方應用程式使用的公用 API
- 隱藏的 API,適用於特權應用程式,也就是系統 API 或私人 API (
@hide
或protected
、package private
)
- (類型 2) 直接使用原始 Binder 或 IPC 代理程式叫用 Android 系統服務。
- (類型 3) 使用低階 API 或處理序間通訊 (IPC) 介面直接與 HAL 互動。
類型 1 和 2 測試通常是檢測設備測試,類型 3 測試則通常是 GTest。
後續步驟
您可以參閱下列文件清單,瞭解詳細資訊:
如果您尚未深入瞭解 Android 架構,請參閱「架構總覽」。
如果您要建立與 Android 相容的裝置,請參閱 Android 相容性計畫總覽。
如要將檢測設備、功能、指標和 JAR 主機測試整合至平台持續測試服務,請參閱「測試開發工作流程」。
如要偵測並強化裝置以防範漏洞,請參閱「安全性測試」。
如要瞭解如何測試 HAL 和核心實作項目,請參閱「供應商測試套件 (VTS) 和基礎架構」。
如要進行應用程式測試,請參閱「測試 Android 應用程式的基礎知識」,並使用提供的範例進行「Android Kotlin 進階功能 05.1:測試基礎知識」。
瞭解可透過 repo 鉤子進行的基本提交前測試。這些掛鉤可用於執行 Linter、檢查格式及觸發單元測試,然後再繼續操作 (例如上傳修訂版本)。這些鉤子預設為停用。詳情請參閱「AOSP 預先上傳鉤子」。
如要進一步瞭解記錄功能,請參閱「瞭解記錄功能」一文。
如要瞭解如何對 Android 程式碼進行偵錯,請參閱「對 Android 平台原生程式碼進行偵錯」。