使用 CTS Verifier

Android Compatibility Test Suite Verifier (CTS Verifier) 可補足 Compatibility Test Suite (CTS) 的功能。雖然 CTS 會檢查可自動化的 API 和函式,但 CTS Verifier 會針對無法在靜止裝置上進行測試的 API 和函式 (例如音訊品質、觸控螢幕、加速計和相機) 提供測試。

需求條件

執行 CTS Verifier 前,請確認您具備下列設備:

  • 已成功通過 CTS 驗證 Android API 相容性的 Android 裝置。這是測試中的裝置 (DUT)。
  • 採用 USB 2.0 相容連接埠的 Linux 電腦。所有與 DUT 的連線都會經過這個通訊埠。
  • 第二部搭載已知相容藍牙、Wi-Fi Direct、Wi-Fi 感知、UWB (如果 DUT 支援 UWB) 和 NFC 主機卡片模擬 (HCE) 的 Android 裝置。
  • 已設定存取點名稱和密碼的 Wi-Fi 路由器。路由器應可斷開網際網路連線,但不能關閉。

進行 UWB、Wi-Fi NAN 和 Bluetooth RSSI 測試時,請務必準備三腳架、裝置架,以及測量距離 (鄰近) 所需的預先測量距離。詳情請參閱「所在地校正」。

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 事件存取應用程式 ID (AID):0xA000000476416E64726F696443545341

在模擬器端,我們預期交易事件會將對應的活動推送至前景。

設定

將測試裝置的系統操作模式變更為三按鈕模式,步驟如下:

  1. 開啟「設定」。
  2. 依序前往「系統」 >「手勢」 >「系統操作機制」
  3. 選取任何按鈕式導覽模式,建議使用三按鈕模式 (如有)。

如要設定 CTS Verifier 測試環境:

  1. 在 Linux 電腦上:

    • 請在安裝 CTS Verifier 前執行下列指令,以允許存取非 SDK 介面。

      adb shell settings put global hidden_api_policy 1
      
    • 安裝 Android Studio

    • 下載 CTS Verifier APK 以進行測試的 Android 版本。

  2. 將 DUT 連接到 Linux 電腦。

  3. 從 Linux 電腦上的終端機中,在 DUT 上安裝 CtsVerifier.apk

    adb install -r -g CtsVerifier.apk
    
  4. 若為 Android 10 以上版本,請執行下列指令,授予應用程式建立報告的權限。

    adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
    
  5. 若為 Android 11 以上版本,請執行下列指令,允許報表將報表儲存在裝置外部頂層目錄下的自行定義的目錄中。

    adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
    
  6. 如果是 Android 13 以上版本,請執行下列指令,允許 CTS Verifier 測試 API 存取權。

    adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
    
  7. 如果是 Android 14 以上版本,請執行下列指令,授予應用程式開啟螢幕的權限。

    adb shell appops set com.android.cts.verifier TURN_SCREEN_ON 0
    
  8. 請確認 DUT 的系統日期和時間設定正確無誤。

執行 CTS 驗證工具

輕觸 DUT 上的 CTS Verifier 圖示,啟動 CTS Verifier 應用程式。

啟動器中的 CTS Verifier 圖示

圖 1. CTS 驗證器圖示

應用程式會顯示可供手動驗證的多個測試組合。

CTS 驗證器的測試選單

圖 2. CTS 驗證器的測試選單

每項測試都包含一組螢幕底部的常見元素。

串流影片品質驗證工具

圖 3. 測試畫面,醒目顯示常見的測試元素

  • 通過 (✓):如果 DUT 符合「資訊」操作說明中的測試規定,請輕觸這項選項。
  • 資訊 (?)。輕觸即可顯示測試操作說明。系統也會在第一次開啟測試時自動顯示這項資訊。
  • 失敗 (!):如果 DUT 不符合「資訊」操作說明中的測試規定,請輕觸此選項。

部分測試 (例如 USB 配件模式和相機校正測試) 需要額外的測試設定和指示,詳情請參閱下文。

測試 USB 配件模式 (8.0 以上版本)

CTS 驗證器 USB 配件測試

圖 4. 適用於 8.0 以上版本的 USB 配件測試程序

CTS 驗證器 USB 配件測試

圖 5. 測試 8.0 以上版本的 USB 配件模式

測試 7.x 以下版本的 USB 配件模式

進行 USB 配件測試時,需要使用 Linux 電腦執行 USB 桌上型電腦 (主機) 程式。

  1. 將 DUT 連接至 Linux 電腦。
  2. 在電腦上從 CTS Verifier 套件執行 cts-usb-accessory 程式:

    ./cts-usb-accessory
  3. 等待 DUT 顯示彈出式訊息,然後選取「OK」
    CTS 驗證器 USB 配件測試

    圖 6. USB 配件測試

  4. 在 DUT 的 CTS 驗證工具應用程式中,前往 USB 配件測試。

  5. 在電腦上查看主控台的輸出內容。輸出內容範例:

    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
    

校正相機視野

使用視野校正程序,快速判斷裝置視野,並取得適當的準確度。

  1. 設定測試環境:

    1. calibration-pattern.pdf 目標檔案列印在 11 x 17 吋或 A3 大小的紙張上。
    2. 將印製的圖案貼在堅硬的背襯上。
    3. 請按照下圖所示,調整攝影機裝置和印刷目標的方向。
      攝影機列印目標

      圖 7. 攝影機列印的目標

  2. 設定目標寬度:

    1. 測量目標圖案上實線之間的距離 (以公分為單位),以便考量列印不準確的問題 (~38 公分)。
    2. 啟動校正應用程式。
    3. 按下設定按鈕,然後選取「標記距離」
    4. 測量並輸入目標圖案的距離 (~100 公分)。
    5. 按下返回按鈕,即可返回校正預覽畫面。
  3. 請確認裝置和目標的擺放位置如圖所示,且設定對話方塊中已輸入正確的距離。預覽畫面會顯示疊加在圖片上的垂直線,這條線應與目標圖案的中心線對齊。透明格線可與其他垂直線一起使用,確保光學軸與目標成直角。

  4. 執行校正測試:

    1. 選取圖片解析度 (使用左下方的選取器),然後輕觸螢幕拍照。測試會進入校正模式,並顯示兩條垂直線重疊在圖片上的相片。
    2. 判斷準確度:
      • 如果線條與目標圖案的垂直線相距不超過幾公分,則所選解析度回報的視野範圍就會正確。
      • 如果線條不一致,回報的視野就會不正確。如要修正這個問題,請調整畫面底部的滑桿,直到疊加圖層盡可能與目標圖案對齊。當疊加層和目標模式圖片對齊時,顯示的檢視畫面欄位會接近正確值的近似值。回報的視野範圍應在校正值的 +/-2 度內。
    3. 按下返回按鈕,針對 DUT 支援的所有圖片解析度重複校正測試。

為替代模式執行 CTS 驗證工具

自 CTS 10 R6 和 CTS 11 R2 版本起,CTS Verifier 支援針對具備其他模式或多個螢幕模式的裝置所需的測試。

CTS Verifier 的主要清單檢視畫面頂端會顯示一個按鈕,讓使用者在展開和折疊顯示模式之間切換。CTS Verifier 會針對所選顯示模式顯示必要測試。如要在 CTS Verifier 中執行其他模式,請將按鈕切換至適當的顯示模式,然後執行顯示的測試清單。

CTS-V 切換按鈕

摺疊式測試的結果會記錄在包含未摺疊測試的同一份報表中。為了識別每個測試集的測試結果,系統會在折疊模式下為每個測試名稱加上後置字串。

<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 系統時間自動加上時間戳記。

  1. 如要儲存測試結果,請輕觸測試類別清單頂端的儲存 (磁碟) 圖示。

  2. 等待彈出式訊息顯示已儲存報表的檔案路徑 (例如 /sdcard/verifierReports/ctsVerifierReport-date-time.zip),然後記錄路徑。

  3. 將 DUT 連接到 Linux 電腦。

  4. 從 Linux 電腦上的 Android SDK 安裝,使用 adb shell content readadb 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
      
  5. 如要清除通過/失敗結果,請在 CTS 驗證器應用程式中選取結果,然後選取「選單」>「清除」