Android 兼容性測試套件驗證器 (CTS Verifier) 是對兼容性測試套件 (CTS) 的補充。雖然 CTS 檢查可以自動化的 API 和功能,但 CTS Verifier 為沒有手動輸入的情況下無法在固定設備上測試的 API 和功能提供測試,例如音頻質量、觸摸屏、加速度計和攝像頭。
要求
在運行 CTS Verifier 之前,請確保您擁有以下設備:
- 已通過 CTS 驗證 Android API 兼容性的 Android 設備。這是被測設備 (DUT)。
- 具有 USB 2.0 兼容端口的 Linux 計算機。所有與 DUT 的連接都通過此端口。
- 具有已知兼容藍牙、Wi-Fi direct 和 NFC 主機卡仿真 (HCE) 實現的第二個 Android 設備。
- 配置了接入點名稱和密碼的 Wi-Fi 路由器。路由器應該能夠斷開與互聯網的連接,但不能關閉電源。
UICC 對 NFC 測試的要求
CTS Verifier 具有以下 NFC 測試用例:
- Field-off(使用從 0x54 開始的交易數據)
- 取消選擇(使用 0x52 的交易數據)
- HCI 命令 (0025000000)(使用來自 0x02 的事務數據)
事務事件測試需要兩台設備,其中一台必須具有具有以下訪問規則的 SecureElement UICC:
- CtsVerifier APK 哈希:61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- 用於 NFC 事件訪問的授權應用程序標識符 (AID):0xA000000476416E64726F696443545341
在模擬器端,我們期望事務事件將相應的活動推送到前台。
設置
將測試設備的系統導航模式改為三鍵模式,如下:
- 打開設置。
- 導航至系統>手勢>系統導航。
- 選擇任何基於按鈕的導航模式,如果可用,首選三按鈕模式。
要設置 CTS 驗證程序測試環境:
在 Linux 計算機上:
在安裝 CTS 驗證程序之前運行以下命令以允許訪問非 SDK 接口。
adb shell settings put global hidden_api_policy 1
安裝安卓工作室。
下載適用於要測試的 Android 版本的CTS Verifier APK 。
將 DUT 連接到 Linux 計算機。
從 Linux 計算機上的終端,在 DUT 上安裝
CtsVerifier.apk
。adb install -r -g CtsVerifier.apk
對於 Android 10 及更高版本,運行以下命令以授予應用創建報告的權限。
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
對於Android 11及更高版本,運行以下命令以允許報告保存在設備外部頂級目錄下的自定義目錄中。
adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
要向生成的工作配置文件授予正確的權限,請包括
--user profileID
標誌,如下所示:adb shell appops set --user profileID com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
對於 Android 13 及更高版本,運行以下命令以允許 CTS 驗證程序的測試 API 訪問。
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
確保 DUT 的系統數據和時間設置正確。
運行 CTS 驗證程序
通過點擊 DUT 上的 CTS 驗證程序圖標啟動 CTS 驗證程序應用程序。
圖 1. CTS 驗證程序圖標
該應用程序顯示多個可用於手動驗證的測試集。
圖 2. CTS Verifier 測試菜單
每個測試都在屏幕底部包含一組常用元素。
圖 3.突出顯示常見測試元素的測試屏幕
- 通過(✓)。如果 DUT 符合信息說明的測試要求,請點擊。
- 信息(?)。點擊以顯示測試說明。第一次打開測試時也會自動出現。
- 失敗(!)。如果 DUT 不符合信息說明中的測試要求,請點擊。
一些測試,例如 USB 配件模式和相機校準測試,需要額外的測試設置和說明,如以下部分所述。
測試 8.0 及更高版本的 USB 配件模式
圖 4. 8.0 及更高版本的 USB 配件測試程序
圖 5.測試 8.0 及更高版本的 USB 附件模式
測試 7.x 及更低版本的 USB 附件模式
USB Accessory測試需要一台Linux電腦運行USB桌面機(主機)程序。
- 將 DUT 連接到 Linux 計算機。
在計算機上,執行 CTS 驗證程序包中的
cts-usb-accessory
程序:./cts-usb-accessory
等待 DUT 上出現彈出消息,然後選擇“確定” 。
圖 6. USB 配件測試
轉到 DUT 上 CTS 驗證程序應用程序中的 USB 附件測試。
在計算機上,查看控制台的輸出。示例輸出:
CTS USB Accessory Tester Found possible Android device (413c:2106) - attempting to switch to accessory mode... Failed to read protocol versionfigure3 Found Android device in accessory mode (18d1:2d01)... [RECV] Message from Android device #0 [SENT] Message from Android accessory #0 [RECV] Message from Android device #1 [SENT] Message from Android accessory #1 [RECV] Message from Android device #2 [SENT] Message from Android accessory #2 [RECV] Message from Android device #3 [SENT] Message from Android accessory #3 [RECV] Message from Android device #4 [SENT] Message from Android accessory #4 [RECV] Message from Android device #5 [SENT] Message from Android accessory #5 [RECV] Message from Android device #6 [SENT] Message from Android accessory #6 [RECV] Message from Android device #7 [SENT] Message from Android accessory #7 [RECV] Message from Android device #8 [SENT] Message from Android accessory #8 [RECV] Message from Android device #9 [SENT] Message from Android accessory #9 [RECV] Message from Android device #10 [SENT] Message from Android accessory #10
校準相機視野
使用視野校準程序以中等精度快速確定設備視野。
搭建測試環境:
- 在 11” x 17” 或 A3 尺寸的紙張上打印calibration-pattern.pdf目標文件。
- 將印刷圖案安裝在堅硬的背襯上。
如下圖所示定位相機設備和打印目標。
圖 7.相機打印目標
設置目標寬度:
- 測量目標圖案上實線之間的距離(以厘米為單位)以解決印刷誤差(~38 厘米)。
- 啟動校準應用程序。
- 按設置按鈕並選擇標記距離。
- 測量並輸入到目標圖案的距離(~100 厘米)。
- 按後退按鈕返回校準預覽。
驗證設備和目標是否如圖所示放置,並且已在設置對話框中輸入正確的距離。預覽顯示的圖像上疊加了一條垂直線;這條線應該與目標圖案的中心線對齊。透明網格可以與其他垂直線一起使用,以確保光軸與目標正交。
運行校準測試:
- 選擇圖像分辨率(使用左下角的選擇器),然後點擊屏幕拍攝照片。測試進入校準模式並顯示帶有兩條垂直線覆蓋在圖像上的照片。
- 確定精度:
- 如果這些線與目標圖案上的垂直線在幾厘米內對齊,則所選分辨率的報告視野是準確的。
- 如果線條不對齊,則報告的視野不准確。要糾正此問題,請調整屏幕底部的滑塊,直到疊加層盡可能與目標圖案對齊。當疊加層和目標圖案圖像對齊時,顯示的視野非常接近正確值。報告的視野應在校準值的 +/-2 度範圍內。
- 按下後退按鈕並針對 DUT 支持的所有圖像分辨率重複校準測試。
為替代模式運行 CTS 驗證程序
從 CTS 10 R6 和 CTS 11 R2 版本開始,CTS Verifier 支持具有替代模式的設備或具有多種屏幕模式的設備所需的測試。
在 CTS Verifier 主列表視圖的頂部顯示了一個按鈕,使用戶能夠在展開和折疊顯示模式之間切換。 CTS Verifier 將顯示所選顯示模式的必要測試。要在 CTS Verifier 中執行備用模式,應將按鈕切換到適當的顯示模式並運行顯示的測試列表。
折疊測試的結果將與展開測試記錄在同一份報告中。為了標識測試集來自的每個測試結果,在折疊模式下為每個測試名稱添加一個後綴。
<Test result="fail" name="com.android.cts.verifier.deskclock.DeskClockTestsActivity[folded]">
<RunHistory subtest="CREATE_ALARM[folded]">
<Run start="1594176663973" end="1594176665841" isAutomated="false" />
</RunHistory>
</Test>
導出結果
所有測試完成後,您可以將結果保存為報告並將其下載到計算機。報告名稱會根據 DUT 系統時間自動加蓋時間戳。
要保存測試結果,請點擊測試類別列表頂部的保存(磁盤)圖標。
等待顯示已保存報告文件路徑的彈出消息(例如
/sdcard/verifierReports/ctsVerifierReport-date-time.zip
),然後記錄該路徑。將 DUT 連接到 Linux 計算機。
在 Linux 計算機上安裝 Android SDK,使用
adb shell content read
或adb pull CTSVerifierReportPath
從連接的設備下載報告。對於 Android 7.x 及更高版本,使用以下命令下載所有報告:
adb pull /sdcard/verifierReports
對於 Android 6.0 及更低版本,使用以下命令下載所有報告:
adb pull /mnt/sdcard/ctsVerifierReports/
對於 Android 10 及更高版本,實現 Automotive 和以次要用戶身份運行的設備,使用以下命令下載最新報告:
adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/latest > report.zip
要列出已連接設備中可用的所有報告:
adb shell content query --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports
要從列表中下載報告,您可以指定行 ID 或文件名。例如:
adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/ctsVerifierReport-date-time.zip > report.zip
要清除通過/未通過結果,請在 CTS Verifier 應用程序中選擇結果,然後選擇菜單 > 清除。