Android 相容性測試套件驗證程式 (CTS Verifier) 是相容性測試套件 (CTS) 的補充。 CTS 檢查可以自動化的 API 和功能,而 CTS Verifier 則提供針對無需手動輸入或定位就無法在固定設備上測試的 API 和功能的測試,例如音訊品質、觸控螢幕、加速度計和攝影機。
要求
在運行 CTS Verifier 之前,請確保您擁有以下設備:
- 透過成功透過 CTS 驗證 Android API 相容性的 Android 裝置。這是被測設備 (DUT)。
- 具有 USB 2.0 相容連接埠的 Linux 電腦。所有與 DUT 的連接都通過此連接埠。
- 第二個 Android 設備,具有已知相容的藍牙、Wi-Fi direct、Wi-Fi Aware、UWB(如果 DUT 支援 UWB)和 NFC 主機卡模擬 (HCE) 實現。
- 設定有存取點名稱和密碼的 Wi-Fi 路由器。路由器應該能夠斷開與互聯網的連接,但不能關閉電源。
確保也準備好 UWB、Wi-Fi NAN 和藍牙 RSSI 距離(接近)測量測試所需的三腳架、設備支架和預先測量的距離。有關詳細信息,請參閱存在校準。
UICC 對 NFC 測試的要求
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 Verifier 測試環境:
在 Linux 電腦上:
在安裝 CTS Verifier 之前執行以下命令以允許存取非 SDK 介面。
adb shell settings put global hidden_api_policy 1
安裝Android Studio 。
下載適用於 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
對於 Android 13 及更高版本,請執行以下命令以允許 CTS Verifier 的測試 API 存取。
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
對於 Android 14 及更高版本,執行以下命令授予應用程式開啟畫面的權限。
adb shell appops set com.android.cts.verifier TURN_SCREEN_ON 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 Accessory測試需要一台Linux電腦來執行USB桌上型電腦(主機)程式。
- 將 DUT 連接到 Linux 電腦。
在電腦上,執行 CTS Verifier 套件中的
cts-usb-accessory
程式:./cts-usb-accessory
等待 DUT 上出現彈出訊息,然後選擇「確定」 。
圖 6. USB 附件測試
前往 DUT 上 CTS Verifier 應用程式中的 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 Verifier 以獲得備用模式
從 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 應用程式中選擇結果,然後選擇選單 > 清除。