執行自動 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 測試」。