執行自動 CTS 測試前,請先準備實體環境、設定工作站,並設定要測試的裝置。
設定實體環境
部分 CTS 測試需要使用 DUT 附近的外部裝置。如要設定實體環境,請按照下列步驟操作:
- (選用) 如果 DUT 支援藍牙 LE,請在 DUT 5 公尺內放置至少三個藍牙 LE 信標,以進行藍牙 LE 掃描測試。其他規範事項如下: - 信標不需要設定,也不會發出任何特定內容。
- 信標可以是任何類型,包括 iBeacon、Eddystone,甚至是模擬 BLE 信標的裝置。
 
- 將手機放在場景前方,例如牆壁或天花板,距離相當於 DUT 的最短對焦距離。其他規範事項如下: - 場景必須有充足的光線,才能讓受測感應器達到並維持CONTROL_AE_TARGET_FPS_RANGE中指定每秒影格數 (FPS) 的設定上限。
- 這項設定適用於
getCameraIdList回報的所有攝影機感應器,因為測試會逐一疊代列出的裝置,並個別測量效能。
- 如果 DUT 支援外接攝影機 (例如 USB 網路攝影機),請在執行 CTS 時插入外接攝影機。否則 CTS 測試會失敗。
 
- 場景必須有充足的光線,才能讓受測感應器達到並維持
- (選用) 如果 DUT 支援全球定位系統 (GPS) 或其他全球導航衛星系統 (GNSS),請以適當的訊號強度提供 GNSS 訊號給 DUT,以利接收和計算位置。其他規範事項如下: - GPS 必須符合 ICD-GPS-200C 規範。
- GNSS 信號可以是任何類型,包括衛星模擬器或室外信號中繼器。
- 你可以將 DUT 放在窗戶附近,直接接收衛星的 GNSS 訊號。
 
- 請確認 Wi-Fi 網路支援 IPv4 和 IPv6,且已連上網際網路,並具備 IPv4 和 IPv6 的 DNS,支援 IP 多點傳播,且可將 DUT 視為獨立用戶端。 - 如果無法存取原生 IPv6 網路、IPv6 電信網路或 VPN 來通過 IPv6 測試,請使用 Wi-Fi AP 和 IPv6 通道。 
- 確認 DUT 的 Wi-Fi 介面上已設定 - UP、- BROADCAST和- MULTICAST旗標。
- 確認 Wi-Fi 介面已指派 IPv4 和 IPv6 位址。 如要檢查 Wi-Fi 介面屬性,請執行 - adb shell ifconfig。
- (選用) 如果 DUT 支援 Wi-Fi STA 或 STA 並行,請設定至少兩個 Wi-Fi 網路。這些 Wi-Fi 網路必須在不同頻段上執行,且 SSID 不同,或 SSID 相同但 BSSID 不同。 
- (選用) 如果 DUT 支援 Wi-Fi 封包往返時間 (RTT),請設定支援 Wi-Fi RTT 的裝置: - 將 Wi-Fi RTT 裝置放在 DUT 40 英尺內。
- 將 Wi-Fi RTT 裝置開機。
 - 以下是兩款建議使用的 Wi-Fi RTT 支援裝置: - Google Wifi - Compulab 的 fitlet2 存取點 (在 5 GHz 頻帶設為 40 MHz 頻寬)。 
設定桌上型電腦
執行 CTS 自動測試前,請先確認電腦符合硬體和作業系統需求,並已安裝適當的軟體,詳情請參閱下列各節。
Meet 設備需求
CTS 電腦必須符合或超過下列硬體需求:
- 64 位元 x86 系統 
- 至少 256 GB 的可用磁碟空間,以因應 CTS 測試案例數量增加,以及 Tradefed 中 Java 堆積空間預留量增加的情況 
- 至少 32 GB 的 RAM 
符合作業系統需求
- 開發電腦必須執行 64 位元 Linux 發行版,並搭載 GNU C 程式庫 (glibc) 2.17 以上版本。 
- 作業系統語言應設為「英文」,CTS 才能正確解析路徑。 
安裝電腦版軟體
如要安裝 CTS 適用的電腦版軟體,請按照下列步驟操作:
- 安裝最新版本的 Android Debug Bridge (adb) 和 Android Asset Packaging Tool (AAPT2),並將這些工具的位置新增至電腦的系統路徑: - 按照 SDK 管理工具說明文件開頭的操作說明,安裝 sdkmanager指令列工具。如要下載指令列工具,請前往 Android Studio 下載頁面,然後點選底部的「Command line tools only」(僅限指令列工具) 連結。
- 更新系統路徑,加入新安裝的 sdkmanager位置。
- 使用 sdkmanager安裝最新版platform-tools和build-tools套件。這些套件包含 adb 和 AAPT2。如要瞭解如何安裝套件,請參閱「安裝套件」。
- 更新路徑,加入新安裝的 adb 和 AAPT2 工具位置。
- 確認 adb 和 AAPT2 位於路徑中。
 
- 按照 SDK 管理工具說明文件開頭的操作說明,安裝 
- 安裝正確版本的 Java Development Kit (JDK): - 如果是 Android 11 以上版本,請安裝 JDK 11。
- 如為 Android 10 以下版本,請參閱「設定 CTS (Android 開放原始碼計畫 10 以下版本)」。
 
- (選用) 如果是 Android 13 和 14,請安裝 virtualenv。多裝置測試需要使用 virtualenv 工具。 
- 如要確認是否已安裝 Python,請輸入 - python3。畫面會顯示 Python 版本和日期,表示 Python 已正確安裝。
- 從「相容性測試套件下載」頁面下載並開啟 CTS 套件,這些套件必須與裝置的 Android 版本和所有裝置支援的應用程式二進位介面 (ABI) 相符。 
- 下載並開啟最新版的 CTS 媒體檔案。媒體檔案包含《大雄兔》的短片,這些短片受 Blender 基金會著作權保護,並依據創用 CC 姓名標示 3.0 授權使用。 
- (選用) 首次執行 CTS 時,系統會動態下載部分與 Mainline 相關的 CTS 檔案。視網路速度而定,這項下載作業會使 CTS 執行時間增加 10 分鐘以上。 - 如要避免增加 CTS 執行時間,請先下載與 Mainline 相關的 CTS 檔案,再執行 CTS。如要瞭解如何下載與 Mainline 相關的 CTS 檔案,請參閱「下載與 Mainline 相關的 CTS 檔案」。 
準備 DUT
設定好桌上型電腦後,請務必設定及配置 DUT。
設定 DUT
如要設定 DUT,請按照下列步驟操作:
- 請確認 DUT 執行的系統映像檔是以已知相容的使用者版本 (Android 4.0 以上版本) 為基礎,且來自「代號、標記和建構版本號碼」,並使用 - user建構變體。如要進一步瞭解建構變數,請參閱「選擇目標」。
- 如果 DUT 搭載 Android 13 以上版本,請確保建構版本已將 - ro.product.first_api_level設為裝置上市時的 API 級別。如要設定這個值,請對- device.mk檔案進行下列變更:- PRODUCT_SHIPPING_API_LEVEL := 21- 部分 CTS 規定取決於裝置出貨時搭載的建構版本。舉例來說,如果裝置原先搭載較舊的版本,可能就不會受到適用於搭載較新版本的系統需求限制。如需有效的 API 級別值,請參閱「產品代號、標記和版本號碼」一文。 如要進一步瞭解 - ro.product.first_api_level,請參閱「供應商 API 級別」。- 如要瞭解 Android 10 以下版本的設定方式,請參閱「設定 CTS (Android 開放原始碼計畫 10 以下版本)」。 
- 如果裝置支援 APEX 套件管理: - 請為特定 Android 版本和硬體架構下載 APEX 墊片套件。墊片套件表格左側的兩欄提供套件下載連結。
- 將下載的套件複製到 /system/apex。
- 將檔案重新命名為 com.android.apex.cts.shim.apex。
 
- 如果裝置不支援 APEX 套件管理: - 請為特定 Android 版本和硬體架構下載 APEX 墊片套件。墊片套件表格右側的兩欄提供套件的下載連結。
- 將 CtsShim.apk複製到/system/app/
- 將 CtsShim.apk重新命名為CtsShimPrebuilt.apk
- 將 CtsShimPriv.apk複製到/system/priv-app/
- 將 CtsShimPriv.apk重新命名為CtsShimPrivPrebuilt.apk
 
- 如果裝置回報多個安全元件: - 下載 google-cardlet.cap。
- 將下載的檔案複製到 /data/uicc/cardlets/。
 
- 下載 
- 如果裝置回報多個安全元件,請將範例小程式安裝到 DUT 的內嵌安全元件 (eSE) 或 DUT 使用的 SIM 卡。詳情請參閱「安全元件的 CTS 測試」。 
- 如果裝置沒有內建螢幕,請將螢幕連接至裝置。 
- 如果裝置有記憶卡插槽,請插入空白的 SD 卡。 請使用支援超高速 (UHS) 匯流排的 SD 卡,且容量為 SDHC 或 SDXC,或是速度等級 10 以上的卡片,確保卡片能通過 CTS。 
- 如果裝置有 SIM 卡插槽,請將已啟用的 SIM 卡插入每個插槽。如果裝置支援簡訊,每張 SIM 卡都必須填入自己的號碼欄位。如果裝置搭載 Android 12 以上版本,所有 SIM 卡都必須支援儲存縮寫撥號號碼 (ADN)。只要 GSM 和 USIM 卡片含有電信專用檔案 (DFTelecom),即符合這項規定。 
- 確認裝置的 SIM 卡具備 CTS 業者權限,且符合「準備 UICC」一文中的規定。 
設定 DUT
請按照下列步驟設定 DUT,以便搭配 CTS 使用。
在 DUT 上:
- 將裝置恢復原廠設定。 
- 將裝置語言設為英文 (美國)。 
- 如果裝置支援自訂預設字型,請確認預設的 sans-serif 字型系列已設為 Roboto。 
- 如果裝置有 GPS、Wi-Fi 或行動網路功能,請啟用位置資訊設定。 
- 連線至支援 IPv6 的 Wi-Fi 網路,該網路可將 DUT 視為獨立用戶端,且具備網際網路連線。如要瞭解隔離用戶端,請參閱「設定實體環境」。 
- 確認未設定解鎖圖案或密碼。 
- 啟用 USB 偵錯功能: - 依序前往「設定」>「關於手機」,然後輕觸「版本號碼」七次。「開發人員選項」會顯示在「系統」設定類別中。 
- 輕觸「USB 偵錯」。 
 - 如要在 Android 10 以下版本中啟用 USB 偵錯功能,請參閱「設定 CTS (AOSP 10 以下版本)」。 
- 將時間設為 12 小時制。 
- 啟用「開發人員選項」>「保持螢幕開啟」。 
- 停用 USB 應用程式驗證: - 前往「開發人員選項」。 
- 輕觸「透過 USB 驗證應用程式」。 
 
- 在 Android 13 以上版本中,啟用模擬數據機: - 前往「開發人員選項」。 
- 輕觸「允許模擬數據機」。 
 - 這項設定是特定電話測試的必要條件。 
在電腦上:
- 啟動瀏覽器,並關閉任何啟動或設定畫面。 
- 使用 USB 傳輸線將 DUT 連接至桌上型電腦。 
- 如果系統提示您接受 RSA 金鑰,允許透過這部電腦進行偵錯,請按一下「允許 USB 偵錯」。 
- 使用使用者可存取的輔助功能 (而非隱藏) 設定,將 Roboto2 設為無襯線字型。 
- 將 CTS 媒體檔案複製到 DUT: - 前往 (cd) 媒體檔案下載及解壓縮的路徑。
- 變更檔案權限: - chmod u+x copy_media.sh
- 複製檔案: - 如要複製解析度最高為 720x480 的片段,請執行下列指令: - ./copy_media.sh 720x480
- 如果不確定最大解析度,請複製所有檔案: - ./copy_media.sh all
- 如果有多個 DUT,請在結尾新增特定裝置的序號選項 ( - -s)。舉例來說,如要將 720x480 的內容複製到序號為 1234567 的裝置,請執行下列指令:- ./copy_media.sh 720x480 -s 1234567
 
 
- 前往 (
下載與 Mainline 相關的 CTS 檔案
如要下載與 Mainline 相關的 CTS 檔案,請按照下列步驟操作:
- 在裝置上執行下列指令,取得 Android API 級別: - adb shell getprop ro.build.version.sdk
- 按照 - download_mcts.sh指令碼中的操作說明,下載 Mainline CTS 檔案。- 視網路速度而定,下載作業至少需要 10 分鐘。 
Shim 套件
下表列出各個裝置版本和架構適用的套件:
| 裝置版本 | 套件 (如支援 APEX) | 套件 (如果系統不支援 APEX) | ||
|---|---|---|---|---|
| ARM | x86 | ARM | x86 | |
| Android 16 | 16-arm-release | 
   android16-x86-release | 
   android16-arm-CtsShim.apk | 
   android16-x86-CtsShim.apk | 
| Android 15 | 15-arm-release | 
   android15-x86-release | 
   android15-arm-CtsShim.apk | 
   android15-x86-CtsShim.apk | 
| Android 14 | 
   android14-arm-release | 
   android14-x86-release | 
   android14-arm-CtsShim.apk | 
   android14-x86-CtsShim.apk | 
| Android 13 | 
   android13-arm-release | 
   android13-x86-release | 
   android13-arm-CtsShim.apk | 
   android13-x86-CtsShim.apk | 
| Android 12 | 
   android12-arm-release | 
   android12-x86-release | 
   android12-arm-CtsShim.apk | 
   android12-x86-CtsShim.apk | 
| Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | 
   android11-x86-CtsShim.apk | 
| Android 10 | 
   android10-release | 
   android10-arm-CtsShim.apk | 
   android10-x86-CtsShim.apk | |
| Android 9、O 和 O-MR1 | 無 | 無 | 
   arm-CtsShim.apk | 
   x86-CtsShim.apk | 
後續步驟
閱讀本文後,請繼續參閱「執行自動化 CTS 測試」。