執行 CTS-V 測試

Android Compatibility Test Suite 驗證器 (CTS 驗證器) 是 Compatibility Test Suite (CTS) 的補充工具。CTS 會檢查可自動化的 API 和函式,而 CTS 驗證器則會針對無法在固定裝置上測試的 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 的距離 (鄰近程度) 測量測試。詳情請參閱「在場校正」。

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

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

設定

Android 17 需要額外的 CTS-V 設定步驟,才能授予預設瀏覽器角色。

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

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

如要設定 CTS Verifier 測試環境,請按照下列步驟操作:

  1. 在 Linux 電腦上:

    1. 安裝 CTS Verifier 之前,請先執行下列指令,允許存取非 SDK 介面:
    adb shell settings put global hidden_api_policy 1
    
    1. 安裝 Android Studio

    2. 下載要測試的 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 驗證器存取測試 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. 如果是 Android 17 以上版本,請執行下列指令,將預設瀏覽器角色授予 CTS Verifier:

    adb shell 'cmd role add-role-holder --user $(am get-current-user) android.app.role.BROWSER com.android.cts.verifier'
    
  9. 確認 DUT 已正確設定系統日期和時間。

執行 CTS 驗證器

在 DUT 上輕觸 CTS 驗證器圖示,啟動 CTS 驗證器應用程式。

啟動器中的 CTS 驗證器圖示

圖 1. CTS 驗證器圖示。

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

CTS 驗證器測試選單

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

每個測試的畫面底部都有一組常見元素。

串流影片畫質驗證器

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

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

部分測試 (例如 USB 配件模式) 需要額外設定和操作說明,詳情請參閱下列各節。

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

CTS 驗證器 USB 配件測試

圖 4. 適用於 Android 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 顯示對話方塊,然後輕觸「確定」

    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
    

針對替代模式執行 CTS 驗證器

從 CTS 10 R6 和 CTS 11 R2 版本開始,CTS 驗證器支援替代模式裝置或多螢幕模式裝置所需的測試。

在 CTS 驗證器的主清單檢視畫面頂端,會顯示一個按鈕,使用者可透過這個按鈕切換展開和摺疊顯示模式。CTS Verifier 會顯示所選顯示模式的必要測試。如要在 CTS 驗證器中執行替代模式,請將按鈕切換至適當的顯示模式,然後執行顯示的測試清單。

CTS-V 切換開關

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

  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 <var>CURRENT_USER</var> --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
        ```
      
      To download a report from the list, you can specify the Row ID or
      filename. For example:
      
      ```shell
        adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip
        ```
      
      ```shell
        adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports ctsVerifierReport-date-time.zip > report.zip
        ```
      
  5. 如要清除通過或失敗結果,請在 CTS 驗證器應用程式中選取結果,然後依序選取「選單」 >「清除」