Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

設置CTS

要運行CTS,請先準備您的物理環境,台式機和用於測試的Android設備。

物理環境

藍牙LE信標

如果被測設備(DUT)支持Bluetooth LE,請在DUT的5米內放置至少三個Bluetooth LE信標,以進行Bluetooth LE掃描測試。這些信標不需要配置或發出任何特定內容,並且可以是任何種類,包括iBeacon,Eddystone甚至是模擬BLE信標的設備。

攝影機

運行攝像機CTS時,請在正常照明條件下使用測試圖案圖(例如棋盤圖案)。根據DUT的最小聚焦距離放置測試圖案圖,以確保它離鏡頭不太近。

將相機傳感器指向光線充足的場景,以使被測傳感器能夠達到並保持在CONTROL_AE_TARGET_FPS_RANGE指定的最大每秒配置目標幀數(FPS)上。這適用於getCameraIdList報告的所有相機傳感器,因為該測試在列出的設備上進行迭代並分別衡量性能。

如果DUT支持外部攝像頭(例如USB網絡攝像頭),請在運行CTS時插入外部攝像頭。否則,CTS測試將失敗。

GPS /全球導航衛星系統

如果DUT支持全球定位系統/全球導航衛星系統(GPS / GNSS)功能,請以適當的信號電平向DUT提供GPS / GNSS信號,以進行接收和GPS位置計算。 GPS部分必須符合ICD-GPS-200C。否則,GPS / GNSS信號可以是任何類型,包括衛星模擬器或室外信號的GPS / GNSS中繼器,或者您可以將DUT放在足夠靠近窗戶的地方,以便可以直接接收足夠的GPS / GNSS信號。

Wi-Fi和IPv6

CTS測試需要支持IPv6,具有Internet連接並且可以將DUT視為獨立客戶端的Wi-Fi網絡。隔離的客戶端是指DUT無法查看該子網上的廣播/多網絡消息的配置。這是通過Wi-Fi AP配置或在沒有連接其他設備的情況下在隔離的子網上運行DUT發生的。

如果您無權訪問本機IPv6網絡,IPv6運營商網絡或VPN來通過某些取決於IPv6的測試,則可以使用Wi-Fi接入點和IPv6隧道。請參閱Wikipedia的IPv6隧道代理列表

Wi-Fi RTT

Android包含用於Wi-Fi往返時間(RTT)功能的Wi-Fi RTT API 。這使設備能夠以1-2米的精度測量其到接入點的距離,從而大大提高了室內定位的精度。

有關支持Wi-Fi RTT的推薦設備的列表,請參閱Wi-Fi RTT(IEEE 802.11mc)Wi-Fi位置:範圍為RTT。

接入點應已通電,但不需要網絡連接。接入點不必在測試設備旁邊,但建議在DUT的40英尺範圍內。一個接入點通常就足夠了。

台式機設置

亞行和AAPT

在運行CTS之前,請確保您已安裝了最新版本的Android Debug Bridge(adb)Android Asset Packaging Tool(AAPT) ,並將這些工具的位置添加到了計算機的系統路徑中。

要安裝ADB,請下載適用於您操作系統的Android SDK工具包,將其打開,然後按照隨附的自述文件中的說明進行操作。有關故障排除的信息,請參閱安裝獨立SDK工具

確保adbaapt在您的系統路徑中。以下命令假定您已經在主目錄中打開了軟件包歸檔文件:

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

適用於Ubuntu的Java開發套件

安裝正確版本的Java Development Kit(JDK)

  • 對於Android 11,請安裝OpenJDK11。
  • 對於Android 9和Android 10,請安裝OpenJDK9。
  • 對於Android 7.0、7.1、8.0和8.1,請安裝OpenJDK8。

有關詳細信息,請參見JDK要求

CTS文件

兼容性測試套件下載中下載並打開CTS軟件包,這些下載與您設備的Android版本以及您設備支持的所有應用程序二進制接口(ABI)相匹配。

下載並打開最新版本的CTS媒體文件

設備檢測

請按照以下步驟設置系統以檢測設備

內存限制

您可能想在cts-tradfed腳本中增加測試運行期間可用的最大內存。有關更多信息,請參見示例CL

Android設備設置

用戶構建

兼容設備定義為具有用戶/釋放鍵簽名的內部版本的設備。您的設備應基於“代號”,“標記”和“內部版本號”已知為兼容的用戶內部版本(Android 4.0或更高版本)運行系統映像。

API一級構建屬性

某些CTS要求取決於設備最初附帶的版本。例如,最初適用於較早版本的設備可能會從適用於較早版本的設備的系統要求中排除。

為了使此信息可供CTS使用,設備製造商可以定義構建時屬性ro.product.first_api_level 。此屬性的值是該設備用於商業發布的第一個API級別。

設備製造商可以重用通用的基礎實現,以發布新產品作為同一設備組中現有產品的升級。設備製造商可以選擇將現有產品的API級別設置為ro.product.first_api_level ,以便將升級要求應用於CTS和Treble / VTS。

設備製造商可以將PRODUCT_PROPERTY_OVERRIDES添加到他們的device.mk文件中以設置此屬性,如以下示例所示:

#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21

Android 9或更高版本的第一個API級別

對於使用Android 9或更高版本啟動的設備,請從Codenames,Tags和Build Numbers中將ro.product.first_api_level屬性設置為有效值。

Android 8.x或更低版本的第一個API級別

對於在Android 8.x或更低版本上啟動的設備,請取消設置(刪除)產品的第一個內部版本的ro.product.first_api_level屬性。對於所有後續構建,請將ro.product.first_api_level設置為正確的API級別值。這使屬性可以正確識別新產品,並保留有關該產品的第一個API級別的信息。如果未設置該標誌,則Android將Build.VERSION.SDK_INT分配給ro.product.first_api_level

CTS墊片包

Android 10或更高版本包含稱為APEX的軟件包格式。要為APEX管理API運行CTS測試(例如更新到新版本或報告活動的APEX),必須在/system分區上預安裝CtsShimApex軟件包。

APEX墊片驗證測試可驗證CtsShimApex的實現。

ro.apex.updaable需求

  • 如果ro.apex.updatable屬性設置為true ,則所有支持APEX軟件包管理的設備都需要CtsShimApex

  • 如果ro.apex.updatable屬性丟失或未設置,則不需要在設備上預安裝CtsShimApex

CtsShim預安裝和預加載

從Android 11開始, CtsShimApex包含兩個預構建的應用程序(從build source生成),除了清單之外不包含任何代碼。 CTS使用這些應用程序來測試特權和權限。

如果設備不支持APEX軟件包管理(即ro.apex.updatable屬性丟失或未設置),或者設備運行的是版本10或更低版本,則必須將兩個預構建的應用程序預先安裝在系統分開。

設備版本預安裝(如果支持APEX)預載
x86x86
Android 11 android11-arm-release
/system/apex/com.android.apex.cts.shim.apex
android11-x86-release
/system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

Android 10 android10-發布
/system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

Android 9,O和O-MR1不適用不適用Arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

要通過測試,請在不重新簽名應用程序的情況下將應用程序預加載到系統映像上的相應目錄中。

示例小程序

Android 9引入了Open Mobile API。對於報告多個安全元素的設備,CTS添加了測試用例以驗證Open Mobile API的行為。這些測試用例需要一次性將示例小程序安裝到DUT的嵌入式安全元件(eSE)或DUT使用的SIM卡中。可以在AOSP中找到eSE示例小程序SIM示例小程序

有關Open Mobile API測試用例和訪問控制測試用例的更多詳細信息,請參閱CTS測試安全元素

儲存要求

CTS媒體壓力測試要求視頻剪輯位於外部存儲( /sdcard )上。大部分剪輯來自Big Buck Bunny ,Blender基金會根據Creative Commons Attribution 3.0許可擁有版權。

所需空間取決於設備支持的最大視頻播放分辨率。有關所需分辨率的平台版本,請參見Android兼容性定義文檔中的第5節)。

請注意,DUT的視頻播放功能是通過Android早期版本的android.media.MediaCodecInfo.CodecCapabilities API和Android 5.0中的android.media.CamcorderProfile API進行檢查的。

以下是最大視頻播放分辨率下的存儲要求:

  • 480x360:98 MB
  • 720x480:193 MB
  • 1280x720:606 MB
  • 1920x1080:1863 MB

屏幕和存儲

  • 沒有嵌入式屏幕的任何設備都需要連接到屏幕。
  • 如果設備具有存儲卡插槽,請插入空的SD卡。請使用支持SDHC或SDXC容量的超高速(UHS)總線或至少具有10級或更高速度的SD卡,以確保它可以通過CTS。
  • 如果設備具有SIM卡插槽,請將激活的SIM卡插入每個插槽。如果設備支持SMS,則每個SIM卡都應填充自己的號碼字段。

開發人員UICC

為了運行CTS運營商API測試,設備需要具有上面帶有運營商特權規則的SIM卡。請參閱準備UICC

Android設備配置

  1. 恢復出廠設置可重置設備:設置>備份和重置>恢復出廠設置
  2. 將設備的語言設置為英語(美國):設置>語言和輸入法>語言
  3. 如果設備上具有GPS或Wi-Fi /蜂窩網絡功能,請打開位置設置:設置>位置>開
  4. 連接到支持IPv6的Wi-Fi網絡,可以將DUT視為隔離的客戶端(請參見上面的物理環境),並且可以連接互聯網:設置> Wi-Fi
  5. 確保未在設備上設置任何鎖定模式或密碼:設置>安全性>屏幕鎖定>無
  6. 在設備上啟用USB調試設置>開發人員選項> USB調試
  7. 將時間設置為12小時格式:設置>日期和時間>使用24小時格式>關閉
  8. 將設備設置為保持喚醒狀態:設置>開發人員選項>保持喚醒>打開
  9. 僅在Android 5.x和4.4.x中,將設備設置為允許模擬位置:設置>開發人員選項>允許模擬位置>開
  10. Android 4.2或更高版本中,關閉USB應用驗證:設置>開發人員選項>通過USB驗證應用>關
  11. 啟動瀏覽器並關閉所有啟動/設置屏幕。
  12. 使用USB電纜連接將用於測試設備的台式機。

文件安裝

在設備上安裝和配置幫助程序應用程序。

  1. 根據您的CTS版本設置設備:
    • CTS版本2.1 R2到4.2 R4:設置設備(或仿真器)以通過以下命令運行可訪問性測試:
      adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      在設備上,啟用委託:設置>輔助功能>輔助功能>委託輔助功能服務
    • CTS版本6.x或更低版本:在聲明android.software.device_admin設備上,將您的設備設置為使用以下命令運行設備管理測試:
      adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk

      設置>安全性>選擇設備管理員中,啟用兩個android.deviceadmin.cts.CtsDeviceAdminReceiver*設備管理員。確保android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver和任何其他預加載的設備管理員保持禁用狀態。
  2. 如下將CTS媒體文件複製到設備:
    1. 導航( cd )到下載和解壓縮媒體文件的路徑。
    2. 更改文件權限:
      chmod u+x copy_media.sh
    3. 複製必要的文件:
      • 要復制分辨率為720x480的剪輯,請運行:
        ./copy_media.sh 720x480
      • 如果不確定最大分辨率,請複制所有文件:
        ./copy_media.sh all
      • 如果adb下有多個設備,請在最後添加特定設備的串行選項( -s )。例如,要將最多720x480的內容複製到序列號為1234567的設備,請運行:
        ./copy_media.sh 720x480 -s 1234567