Android Compatibility Test Suite Verifier (CTS Verifier) 是 Compatibility Test Suite (CTS) 的補充工具,CTS 會檢查可自動化的 API 和函式,而 CTS 驗證器則會針對無法在固定裝置上測試的 API 和函式提供測試,例如音訊品質、觸控螢幕、加速度計和相機,這些測試需要手動輸入或定位。
需求條件
執行 CTS 驗證器前,請確認您具備下列設備:
- 通過 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 的距離 (鄰近) 測量測試。詳情請參閱「在場偵測校正」。
NFC 測試的 UICC 規定
CTS 驗證器包含下列 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 事件存取權的授權應用程式 ID (AID):0xA000000476416E64726F696443545341
在模擬器端,我們預期交易事件會將對應的活動推送到前景。
設定
將測試裝置的系統操作模式變更為三按鈕模式,步驟如下:
- 開啟「設定」。
- 依序前往「系統」>「手勢」>「系統操作機制」。
- 選取任何按鈕導覽模式 (建議使用三按鈕模式)。
如要設定 CTS Verifier 測試環境,請按照下列步驟操作:
在 Linux 電腦上:
安裝 CTS 驗證器之前,請先執行下列指令,允許存取非 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 驗證器存取測試 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 驗證器圖示,啟動 CTS 驗證器應用程式。
圖 1. CTS 驗證器圖示
應用程式會顯示多個可供手動驗證的測試集。
圖 2. CTS 驗證器測試選單
每個測試的畫面底部都有一組常見元素。
圖 3. 測試畫面,醒目顯示常見的測試元素
- 通過 (✓):如果 DUT 符合「資訊」說明中的測試規定,請輕觸這個選項。
- 資訊 (?):輕觸即可顯示測驗說明。第一次開啟測試時,系統也會自動顯示這項資訊。
- 失敗 (!)。如果 DUT 不符合「資訊」指示的測試規定,請輕觸這個選項。
部分測試 (例如 USB 配件模式和攝影機校正測試) 需要額外設定和說明,詳情請參閱以下各節。
測試 8.0 以上版本的 USB 配件模式
圖 4. 適用於 Android 8.0 以上版本的 USB 配件測試程序
圖 5. 測試 8.0 以上版本的 USB 配件模式
測試 7.x 以下版本的 USB 配件模式
USB 配件測試需要使用 Linux 電腦執行 USB 桌上型電腦 (主機) 程式。
- 將 DUT 連接至 Linux 電腦。
在電腦上,從 CTS Verifier 套件執行
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 尺寸的紙張上,列印校正模式.pdf 目標檔案。
- 將列印的圖案貼在硬挺的底紙上。
如以下圖示所示,調整攝影機裝置和列印目標的方向。
圖 7. 攝影機列印目標
設定目標寬度:
- 測量目標圖案上實線之間的距離 (以公分為單位),以因應列印不準確的情況 (約 38 公分)。
- 啟動校正應用程式。
- 按下設定按鈕,然後選取「標記距離」。
- 測量並輸入目標圖案的距離 (約 100 公分)。
- 按下返回鍵,返回校正預覽畫面。
確認裝置和目標的擺放位置如圖所示,且已在設定對話方塊中輸入正確距離。預覽畫面會顯示疊加垂直線的圖片,這條線應與目標圖案的中心線對齊。透明格線可與其他垂直線搭配使用,確保光軸與目標正交。
執行校正測試:
- 選取圖片解析度 (使用左下方的選取器),然後輕觸螢幕即可拍照。測試會進入校正模式,並顯示疊加兩條垂直線的相片。
- 判斷準確度:
- 如果線條與目標圖案上的垂直線對齊,且誤差在幾公分內,表示所選解析度的視野回報值準確無誤。
- 如果線條未對齊,回報的視野就會不準確。 如要修正這個問題,請調整畫面底部的滑桿,盡可能讓疊加影像與目標圖案對齊。當重疊區塊和目標模式圖片對齊時,顯示的視野會接近正確值。回報的視野應在校正值的 +/-2 度內。
- 按下返回鍵,然後針對 DUT 支援的所有圖片解析度重複執行校正測試。
針對替代模式執行 CTS 驗證器
從 CTS 10 R6 和 CTS 11 R2 版本開始,CTS 驗證器支援替代模式裝置或多螢幕模式裝置所需的測試。
在 CTS Verifier 的主要清單檢視畫面頂端,會顯示一個按鈕,使用者可切換展開和摺疊顯示模式。CTS 驗證器會顯示所選顯示模式的必要測試。如要在 CTS 驗證器中執行替代模式,請將按鈕切換至適當的顯示模式,然後執行顯示的測試清單。
圖 8. CTS 驗證器切換按鈕
摺疊測試的結果會與展開測試的結果記錄在同一份報告中。如要識別測試集中的每項測試結果,系統會在摺疊模式下為每項測試名稱加上後置字元。
<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 以上版本,以及以次要使用者身分執行的車輛和裝置,請使用下列指令下載最新報表:
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 應用程式中選取結果,然後依序選取「選單」>「清除」。