Android 兼容性測試套件驗證程序 (CTS Verifier) 是對兼容性測試套件 (CTS) 的補充。雖然 CTS 檢查可以自動化的 API 和功能,但 CTS 驗證程序為無法在沒有手動輸入的固定設備上測試的 API 和功能提供測試,例如音頻質量、觸摸屏、加速度計和攝像頭。
要求
在運行 CTS Verifier 之前,請確保您擁有以下設備:
- 通過成功通過 CTS 驗證 Android API 兼容性的 Android 設備。這是被測設備 (DUT)。
- 具有 USB 2.0 兼容端口的 Linux 計算機。所有到 DUT 的連接都通過這個端口。
- 第二個具有已知兼容藍牙、Wi-Fi 直連和 NFC 主機卡仿真 (HCE) 實現的 Android 設備。
- 配置了接入點名稱和密碼的 Wi-Fi 路由器。路由器應該能夠斷開與互聯網的連接,但不能關閉電源。
NFC 測試的 UICC 要求
CTS Verifier 有以下 NFC 測試用例:
- 場外(使用來自 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
確保 DUT 的系統數據和時間設置正確。
運行 CTS 驗證程序
通過點擊 DUT 上的 CTS Verifier 圖標啟動 CTS Verifier 應用程序。
圖 1. CTS 驗證程序圖標
該應用程序顯示了幾個可用於手動驗證的測試集。
圖 2. CTS Verifier 測試菜單
每個測試都包含一組位於屏幕底部的通用元素。
圖 3.突出顯示常見測試元素的測試屏幕
- 通過(✓)。如果 DUT 滿足信息說明中的測試要求,請點擊。
- 信息(?)。點擊以顯示測試說明。首次打開測試時也會自動出現。
- 失敗(!)。如果 DUT 不符合信息說明中的測試要求,請點擊。
某些測試(例如 USB 附件模式和相機校準測試)需要額外的測試設置和說明,詳見以下部分。
測試 8.0 及更高版本的 USB 附件模式
圖 4. 8.0 及以上版本的 USB 附件測試程序
圖 5.測試 8.0 及更高版本的 USB 附件模式
測試 7.x 及更低版本的 USB 附件模式
USB 附件測試需要一台 Linux 計算機來運行 USB 台式機(主機)程序。
- 將 DUT 連接到 Linux 計算機。
在計算機上,執行 CTS 驗證程序包中的
cts-usb-accessory
程序:./cts-usb-accessory
等待 DUT 上出現彈出消息,然後選擇OK 。
圖 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 驗證程序將顯示所選顯示模式的必要測試。要在 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 應用程序中選擇結果,然後選擇菜單 > 清除。