使用 CTS 驗證器

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

在模擬器方面,我們期望事務事件將對應的活動推送到前台。

設定

將測試設備的系統導航模式變更為三鍵模式,如下所示:

  1. 打開設定。
  2. 導航至系統>手勢>系統導航
  3. 選擇任何基於按鈕的導航模式,首選三按鈕模式(如果可用)。

設定 CTS Verifier 測試環境:

  1. 在 Linux 電腦上:

    • 在安裝 CTS Verifier 之前執行以下命令以允許存取非 SDK 介面。

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

    • 下載適用於 Android 版本的CTS Verifier APK進行測試。

  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 驗證器圖示

圖 1. CTS 驗證器圖標

該應用程式顯示多個可用於手動驗證的測試集。

CTS Verifier 測試菜單

圖 2. CTS Verifier 測試選單

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

串流視訊品質驗證器

圖 3.突出顯示常見測試元素的測試畫面

  • 通過(✓)。點擊 DUT 是否符合資訊說明的測試要​​求。
  • 資訊(?).點選可顯示測試說明。第一次開啟測試時也會自動出現。
  • 失敗(!)。如果 DUT 不符合資訊說明的測試要​​求,請點選。

某些測試(例如 USB 配件模式和相機校準測試)需要額外的測試設定和說明,如下所述。

測試 8.0 及更高版本的 USB 配件模式

CTS Verifier USB 配件測試

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

CTS Verifier USB 配件測試

圖 5.測試 8.0 及更高版本的 USB 附件模式

測試 7.x 及更低版本的 USB 配件模式

USB Accessory測試需要一台Linux電腦來執行USB桌上型電腦(主機)程式。

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

    ./cts-usb-accessory
  3. 等待 DUT 上出現彈出訊息,然後選擇「確定」
    CTS Verifier USB 配件測試

    圖 6. USB 配件測試

  4. 前往 DUT 上 CTS Verifier 應用程式中的 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. 在 11” x 17” 或 A3 尺寸的紙張上列印calibration-pattern.pdf目標檔。
    2. 將印刷圖案安裝在剛性背襯上。
    3. 如下圖所示調整相機設備和列印目標的方向。
      相機列印目標

      圖 7.相機列印目標

  2. 設定目標寬度:

    1. 測量目標圖案上實線之間的距離(以公分為單位),以考慮列印誤差(~38 公分)。
    2. 啟動校準應用程式。
    3. 按下設定按鈕並選擇標記距離
    4. 測量並輸入到目標圖案的距離(~100 公分)。
    5. 按下後退按鈕返回校準預覽。
  3. 驗證裝置和目標是否如圖所示放置,並且是否已在設定對話方塊中輸入正確的距離。預覽顯示影像,上面覆蓋有一條垂直線;這條線應與目標圖案的中心線對齊。透明網格可以與其他垂直線一起使用,以確保光軸與目標正交。

  4. 執行校準測試:

    1. 選擇影像解析度(使用左下角的選擇器),然後點擊螢幕拍照。測試進入校準模式並顯示照片,影像上疊加有兩條垂直線。
    2. 確定準確度:
      • 如果這些線與目標圖案上的垂直線對齊在幾公分範圍內,則所選解析度的報告視野是準確的。
      • 如果線條不對齊,則報告的視野不準確。若要修正此問題,請調整螢幕底部的滑桿,直到疊加層盡可能與目標圖案對齊。當疊加層和目標圖案影像對齊時,顯示的視野非常接近正確值。報告的視野應在校準值的 +/-2 度範圍內。
    3. 按下返回按鈕並對 DUT 支援的所有影像解析度重複校準測試。

運行 CTS Verifier 以獲得備用模式

從 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 Verifier 應用程式中選擇結果,然後選擇選單 > 清除