NativeDevice

public class NativeDevice
extends Object implements IManagedTestDevice, IConfigurationReceiver, ITestLoggerReceiver

java.lang.Object
   ↳ com.android.tradefed.device.NativeDevice


ITestDevice 非完整堆疊 Android 裝置的預設實作方式。

摘要

巢狀類別

class NativeDevice.AdbAction

用於執行 OS「ADB ....」指令的 ERROR(DeviceAction/com.android.tradefed.device.NativeDevice.DeviceAction DeviceAction)。 

class NativeDevice.AdbShellAction

 

class NativeDevice.RebootDeviceAction

ERROR(DeviceAction/com.android.tradefed.device.NativeDevice.DeviceAction DeviceAction):用於重新啟動裝置。 

常數

int INVALID_USER_ID

因任何無效/找不到使用者 ID 而傳回的值:UserHandle 定義了 -10000 值

long MAX_HOST_DEVICE_TIME_OFFSET

int MAX_RETRY_ATTEMPTS

執行指令重試的預設次數

欄位

public static final String DEBUGFS_PATH

protected static final String SD_CARD

protected static final String STORAGE_EMULATED

protected TestDeviceOptions mOptions

protected final IDeviceStateMonitor mStateMonitor

公用建構函式

NativeDevice(IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)

可建立 TestDevice

公用方法

void batchPrefetchStartupBuildProps()

進行微最佳化 (約 400 毫秒),預先擷取所需項目,而不要呼叫每個項目的「ADB getprop」。

boolean canSwitchToHeadlessSystemUser()

傳回是否可切換至無頭 SYSTEM 使用者。

boolean checkApiLevelAgainstNextRelease(int strictMinLevel)

在盡可能最低支援的級別下,檢查目前是否支援特定功能。

boolean checkConnectivity()

檢查裝置是否具備網路連線。

boolean clearErrorDialogs()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

void clearLastConnectedWifiNetwork()

清除上次連線的 Wi-Fi 網路。

void clearLogcat()

刪除所有累計的 logcat 資料。

boolean connectToWifiNetwork( wifiSsidToPsk, boolean scanSsid)

連線至 Wi-Fi 網路。

boolean connectToWifiNetwork(String wifiSsid, String wifiPsk)

連線至 Wi-Fi 網路。

boolean connectToWifiNetwork( wifiSsidToPsk)

連線至 Wi-Fi 網路.f

boolean connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)

連線至 Wi-Fi 網路。

boolean connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)

connectToWifiNetwork(String, String) 的變化版本,只會在裝置目前沒有網路連線時連線。

boolean connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)

connectToWifiNetwork(String, String) 的變化版本,只會在裝置目前沒有網路連線時連線。

int createUser(String name, boolean guest, boolean ephemeral)

使用名字和提供的旗標建立使用者

int createUser(String name, boolean guest, boolean ephemeral, boolean forTesting)

使用名字和提供的旗標建立使用者

int createUser(String name)

以指定名稱和預設旗標 0 建立使用者。

int createUserNoThrow(String name)

以指定名稱和預設旗標 0 建立使用者。

void deleteFile(String deviceFilePath, int userId)

透過輔助方法刪除裝置上的檔案或目錄。

void deleteFile(String deviceFilePath)

透過輔助方法刪除裝置上的檔案或目錄。

void deregisterDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)

移除已註冊的 IDeviceActionReceiver

boolean deviceSoftRestarted(ProcessInfo prevSystemServerProcess)

透過比較目前的 system_server 與先前的 system_server ProcessInfo,確認裝置是否出現軟重新啟動的輔助方法。

boolean deviceSoftRestartedSince(long utcEpochTime, TimeUnit timeUnit)

這個輔助方法可檢查裝置自世界標準時間 (UTC) 自 Epoch 紀元時間起算,是否在 ERROR(/TimeUnit) 後自動重新啟動。

boolean disableAdbRoot()

關閉 ADB 根目錄。

void disableKeyguard()

嘗試停用鍵盤鎖。

boolean disableNetworkMonitor()

停用裝置上的網路監控功能。

boolean disconnectFromWifi()

Wi-Fi 網路連線中斷。

boolean doesFileExist(String deviceFilePath, int userId)

協助判斷特定使用者裝置上的檔案是否存在。

boolean doesFileExist(String deviceFilePath)

判斷檔案是否存在裝置上的輔助方法。

File dumpHeap(String process, String devicePath)

嘗試從 system_server 轉儲記憶體快照。

boolean enableAdbRoot()

開啟 ADB 根目錄。

boolean enableNetworkMonitor()

在裝置上啟用網路監控功能。

String executeAdbCommand(long timeout, String... cmdArgs)

此輔助方法會以指定逾時時間做為系統指令執行 ADB 指令。

String executeAdbCommand(long timeout, envMap, String... cmdArgs)

此輔助方法會以指定逾時時間做為系統指令執行 ADB 指令。

String executeAdbCommand(String... cmdArgs)

以系統指令執行 ADB 指令的輔助方法。

CommandResult executeFastbootCommand(String... cmdArgs)

這個輔助方法會以系統指令執行 Fastboot 指令,並預設為逾時 2 分鐘。

CommandResult executeFastbootCommand(long timeout, String... cmdArgs)

輔助方法,以系統指令執行 Quickboot 指令。

CommandResult executeLongFastbootCommand(String... cmdArgs)

輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令。

CommandResult executeLongFastbootCommand( envVarMap, String... cmdArgs)

這個輔助方法可透過系統環境變數,以系統指令的形式執行長時間執行的 Fastboot 指令。

String executeShellCommand(String command)

執行 ADB 殼層指令並以 String 傳回輸出內容的 Helper 方法。

void executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

void executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

void executeShellCommand(String command, IShellOutputReceiver receiver)

執行指定的 ADB 殼層指令,如果指令失敗,則會多次重試。

CommandResult executeShellV2Command(String cmd)

這個 Helper 方法會執行 ADB 殼層指令,並將結果傳回為 CommandResult 且包含指令狀態輸出內容、stdout 和 stderr 的正確填入。

CommandResult executeShellV2Command(String cmd, OutputStream pipeToOutput)

這個 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult 並正確填入指令狀態輸出和 stderr。

CommandResult executeShellV2Command(String cmd, File pipeAsInput)

這個 Helper 方法會執行 ADB 殼層指令,並將結果傳回為 CommandResult 並正確填入指令狀態輸出內容、stdout 和 stderr。

CommandResult executeShellV2Command(String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

CommandResult executeShellV2Command(String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

CommandResult executeShellV2Command(String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

CommandResult executeShellV2Command(String cmd, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)

執行 ADB 殼層指令,並使用更多參數控制指令行為。

CommandResult fastbootWipePartition(String partition)

可抹除裝置分區的輔助方法。

getActiveApexes()

擷取裝置上已啟用 APEX 的相關資訊。

getAllSettings(String namespace)

傳回要求命名空間的鍵/值組合。

DeviceAllocationState getAllocationState()

傳回裝置目前的配置狀態

String getAndroidId(int userId)

找出並傳回與 UserId 相關聯的 android-id,如果找不到,則傳回空值。

getAndroidIds()

建立已找到相符使用者 ID 的 Android ID 對應。

int getApiLevel()

取得裝置 API 級別。

PackageInfo getAppPackageInfo(String packageName)

擷取裝置上安裝的套件相關資訊。

getAppPackageInfos()

擷取裝置上安裝的套件資訊。

String getBasebandVersion()

取得此裝置基頻 (無線電) 版本的便利方法。

Integer getBattery()

傳回裝置目前的電池電量,如果沒有電池電量,則傳回空值。

boolean getBooleanProperty(String name, boolean defaultValue)

傳回指定屬性的布林值。

getBootHistory()

輔助方法會收集啟動記錄地圖和啟動時間和啟動原因。

getBootHistorySince(long utcEpochTime, TimeUnit timeUnit)

輔助方法會收集自指定時間 (自裝置週期起算,以及指定的時間單位) 以來的啟動時間和啟動原因圖。

String getBootloaderVersion()

取得這部裝置的系統啟動載入程式版本的便利方法。

InputStreamSource getBugreport()

從裝置擷取錯誤報告。

InputStreamSource getBugreportz()

從裝置擷取錯誤報告。

String getBuildAlias()

擷取裝置目前執行版本的別名。

String getBuildFlavor()

擷取裝置的建構變種版本。

String getBuildId()

擷取裝置目前正在執行的版本。

String getBuildSigningKeys()

傳回用來簽署裝置圖片的金鑰類型

一般來說,Android 裝置可能會使用測試金鑰 (例如 Android 開放原始碼計畫) 或版本資訊 (由個別裝置製造商控管) 簽署

DeviceDescriptor getCachedDeviceDescriptor()

如果配置裝置,會傳回快取的 DeviceDescriptor,否則傳回目前的 DeviceDescriptor

DeviceDescriptor getCachedDeviceDescriptor(boolean shortDescriptor)

如果配置裝置,會傳回快取的 DeviceDescriptor,否則傳回目前的 DeviceDescriptor

String[] getChildren(String path)

替代 IFileEntry 的替代方案,因為有時會因為權限而無法運作。

AbstractConnection getConnection()

與裝置相關聯的目前連線。

ContentProviderHandler getContentProvider(int userId)

傳回 ContentProviderHandler 或空值 (如果不適用)。

DeviceFoldableState getCurrentFoldableState()

傳回裝置目前的摺疊式裝置狀態;如果發生問題,則傳回空值。

int getCurrentUser()

傳回目前執行中使用者的 ID。

String getDeviceClass()

取得裝置類別。

long getDeviceDate()

傳回裝置日期 (從 Epoch 紀元時間起算,以毫秒為單位)。

DeviceDescriptor getDeviceDescriptor()

從裝置資訊傳回 DeviceDescriptor 即可取得相關資訊,而不會傳送實際的裝置物件。

DeviceDescriptor getDeviceDescriptor(boolean shortDescriptor)

從裝置資訊傳回 DeviceDescriptor 即可取得相關資訊,而不會傳送實際的裝置物件。

TestDeviceState getDeviceState()

取得裝置的狀態。

long getDeviceTimeOffset(Date date)

協助取得裝置和特定 ERROR(/Date) 的時間差。

InputStreamSource getEmulatorOutput()

取得模擬器 stdout 和 stderr 串流

Process getEmulatorProcess()

傳回與此模擬器對應的 Process

final File getExecuteShellCommandLog()

包含所有 executeShellCommand(String) 記錄的記錄。

long getExternalStoreFreeSpace()

決定裝置外部儲存空間可用空間的輔助方法。

String getFastbootPath()

傳回目前使用的 Fastboot 二進位檔的路徑。

String getFastbootProductType()

裝置處於 Fastboot 模式時,取得此產品類型的便利方法。

String getFastbootProductVariant()

裝置處於 Fastboot 模式時,取得此產品類型的便利方法。

String getFastbootSerialNumber()

傳回 Quickboot 模式的序號。

String getFastbootVariable(String variableName)

從裝置擷取指定的 Fastboot 變數值。

String getFastbootVersion()

傳回目前使用的 Fastboot 二進位檔的版本字串。

IFileEntry getFileEntry(String path)

擷取裝置上遠端檔案的參照。

IFileEntry getFileEntry(FileListingService.FileEntry entry)

非官方輔助程式,可從非根路徑取得 FileEntry

getFoldableStates()

傳回裝置上的摺疊式裝置狀態清單。

IDevice getIDevice()

傳回相關聯 ddmlib IDevice 的參照。

getInstalledPackageNames()

擷取裝置上的應用程式套件名稱。

long getIntProperty(String name, long defaultValue)

傳回裝置中指定屬性的整數值。

String getIpAddress()

取得裝置的 IP 位址。

KeyguardControllerState getKeyguardState()

傳回物件即可取得鍵盤防護目前的狀態;如果不支援,則傳回空值。

long getLastExpectedRebootTimeMillis()

傳回 Tradefed API 上次從 EPOCH 傳回的時間 (以毫秒為單位),由 System.currentTimeMillis() 傳回。

int getLaunchApiLevel()

取得裝置第一個啟動的 API 級別。

InputStreamSource getLogcat()

取得 Logcat 資料的快照串流。

InputStreamSource getLogcat(int maxBytes)

取得最近 maxBytes 已擷取 Logcat 資料的快照串流。

InputStreamSource getLogcatDump()

取得裝置目前 logcat 的轉儲資料。

InputStreamSource getLogcatSince(long date)

從指定日期開始擷取已擷取 Logcat 資料的快照串流。

String getMacAddress()

傳回裝置的 MAC 位址;如果無法從裝置查詢,則傳回空值。

Integer getMainUserId()

傳回主要使用者 ID。

getMainlineModuleInfo()

取得裝置上安裝的主系列模組相關資訊。

int getMaxNumberOfRunningUsersSupported()

取得支援同時執行的使用者數量上限。

int getMaxNumberOfUsersSupported()

取得支援的使用者人數上限。

Process getMicrodroidProcess()
IDeviceStateMonitor getMonitor()

傳回與裝置相關聯的 IDeviceStateMonitor

String getMountPoint(String mountName)

傳回掛接點。

ITestDevice.MountPointInfo getMountPointInfo(String mountpoint)

傳回與指定掛接點路徑對應的 MountPointInfo;如果該路徑沒有任何掛接,或是未以掛接點的形式出現在 /proc/mounts 中,則傳回 null

getMountPointInfo()

傳回裝置上的 /proc/mounts 中剖析版本資訊

TestDeviceOptions getOptions()

擷取裝置的測試選項。

long getPartitionFreeSpace(String partition)

決定裝置分區可用空間的輔助方法。

Integer getPrimaryUserId()

傳回主要使用者 ID。

ProcessInfo getProcessByName(String processName)

輔助方法會執行「pidof」和「stat」指令,並傳回包含 PID 和指定程序啟動時間的 ProcessInfo 物件。

String getProcessPid(String process)

傳回服務的 pid,如果發生錯誤,則傳回空值。

String getProductType()

取得此裝置產品類型的便利方法。

String getProductVariant()

取得此裝置產品子類的便利方法。

String getProperty(String name)

從裝置擷取指定的屬性值。

ITestDevice.RecoveryMode getRecoveryMode()

取得裝置目前使用的復原模式。

InputStreamSource getScreenshot(String format)

擷取裝置的螢幕截圖。

InputStreamSource getScreenshot(long displayId)

從特定裝置擷取螢幕截圖。

InputStreamSource getScreenshot(String format, boolean rescale)

擷取裝置的螢幕截圖。

InputStreamSource getScreenshot()

擷取裝置的螢幕截圖。

String getSerialNumber()

取得這部裝置序號的便利方法。

String getSetting(int userId, String namespace, String key)

傳回所要求設定的值。

String getSetting(String namespace, String key)

請參閱 getSetting(int, String, String) 並在系統使用者上執行。

String getSimOperator()

如果不適用,或裝置無法使用,請退回 SIM 卡業者或空值。

String getSimState()

傳回 SIM 卡狀態或空值 (如果不適用),或是裝置無法使用。

getTombstones()

從裝置擷取並傳回空值標記清單。

long getTotalMemory()

傳回內部錯誤時的實體記憶體總大小 (以位元組為單位),或傳回 -1 (如果發生內部錯誤)

getUninstallablePackageNames()

擷取可解除安裝的應用程式套件名稱。

boolean getUseFastbootErase()

選擇是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。

int getUserFlags(int userId)

尋找並傳回特定使用者的旗標。

getUserInfos()

將 useId 對應至裝置上的 UserInfo

int getUserSerialNumber(int userId)

如出現其他情況,則傳回與使用者 ID 相關聯的序號,-10000。

IManagedTestDevice.DeviceEventResponse handleAllocationEvent(DeviceEvent event)

處理指定的 DeviceEvent。

處理 DeviceEvent,這不一定能將這部裝置轉換為新的分配狀態。

boolean hasFeature(String feature)

確認特定裝置是否提供該功能。

String installPackage(File packageFile, boolean reinstall, String... extraArgs)

在裝置上安裝 Android 套件。

String installPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)

在裝置上安裝 Android 套件。

String installPackageForUser(File packageFile, boolean reinstall, int userId, String... extraArgs)

為特定使用者在裝置上安裝 Android 套件。

String installPackageForUser(File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

為特定使用者在裝置上安裝 Android 套件。

void invalidatePropertyCache()
boolean isAdbRoot()

boolean isAdbTcp()
boolean isAppEnumerationSupported()

檢查裝置上的平台是否支援應用程式列舉

boolean isBypassLowTargetSdkBlockSupported()

檢查裝置上的平台是否支援在應用程式安裝時略過低目標 SDK 區塊

boolean isDebugfsMounted()

檢查是否已掛接 debugf。

boolean isDeviceEncrypted()

如果裝置已加密,則傳回 。

boolean isDirectory(String path)

如果裝置上的路徑是目錄,則傳回 True,否則傳回 false。

boolean isEnableAdbRoot()
boolean isEncryptionSupported()

如果裝置支援加密,則傳回 。

boolean isExecutable(String fullPath)

如果裝置上的檔案路徑是可執行的檔案,傳回 True,否則傳回 false。

boolean isFastbootEnabled()

如果裝置有 Fastboot 可用,則傳回 。

boolean isHeadless()

如果裝置為無頭 (無螢幕) 則傳回 true,否則傳回 false。

boolean isHeadlessSystemUserMode()

傳回裝置是否使用無頭系統使用者模式。

boolean isMainUserPermanentAdmin()

傳回主要使用者是否為永久管理員,且無法刪除或降級為非管理員狀態。

boolean isMultiUserSupported()

判斷是否支援多位使用者。

boolean isPackageInstalled(String packageName, String userId)

查詢裝置的特定套件名稱和指定使用者 ID,確認裝置目前是否已安裝該名使用者。

boolean isPackageInstalled(String packageName)

針對裝置查詢特定套件名稱,確認裝置目前是否已安裝。

boolean isRuntimePermissionSupported()

檢查裝置上的平台是否支援授予執行階段權限

boolean isStateBootloaderOrFastbootd()

如果裝置位於 TestDeviceState#FASTBOOTTestDeviceState.FASTBOOTD,則傳回 true。

boolean isUserRunning(int userId)

檢查特定使用者是否正在執行。

boolean isUserSecondary(int userId)

傳回根據旗標的指定使用者是否為次要使用者。

boolean isUserVisible(int userId)

檢查指定的使用者是否可見。

boolean isUserVisibleOnDisplay(int userId, int displayId)

檢查指定的使用者是否出現在指定螢幕上。

boolean isVisibleBackgroundUsersOnDefaultDisplaySupported()

傳回裝置是否允許使用者在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 的背景中啟動。

boolean isVisibleBackgroundUsersSupported()

傳回裝置是否允許使用者在背景啟動畫面。

boolean isWifiEnabled()

測試 Wi-Fi 是否已啟用。

listDisplayIds()

根據「dumpsys SurfaceFlinger」回報裝置上的可用螢幕 ID 清單,並收集清單。

listDisplayIdsForStartingVisibleBackgroundUsers()

取得可用於 start a user visible in the background 的螢幕清單。

listUsers()

取得裝置上的使用者清單。

boolean logAnrs(ITestLogger logger)

收集並記錄裝置上的 ANR。

boolean logBugreport(String dataName, ITestLogger listener)

協助取得錯誤報告並記錄回報者的輔助方法。

void logOnDevice(String tag, Log.LogLevel level, String format, Object... args)

在裝置的 logcat 中記錄訊息。

void mountDebugfs()

掛接 debugfs。

void nonBlockingReboot()

發出指令來重新啟動裝置,並在指令完成時傳回,以及 ADB 無法查看裝置時。

void postAdbRootAction()

覆寫在 ADB 根層級之後和裝置恢復連線前,裝置是否需要採取特定動作。

void postAdbUnrootAction()

覆寫是否在 ADB 啟用 Root 權限後,以及裝置恢復連線前,需要執行某些特定動作。

void postBootSetup()

執行操作說明來設定裝置,以在每次啟動時進行測試。

void postInvocationTearDown(Throwable exception)

針對裝置特定需求清除作業的額外步驟,將在叫用完成後執行。

void preInvocationSetup(IBuildInfo info, MultiMap<String, String> attributes)

針對在叫用流程之前,在裝置上執行的裝置專屬設定的額外步驟。

boolean pullDir(String deviceFilePath, File localDir, int userId)

以遞迴方式提取裝置上的目錄內容。

boolean pullDir(String deviceFilePath, File localDir)

以遞迴方式提取裝置上的目錄內容。

boolean pullFile(String remoteFilePath, File localFile)

擷取裝置外部的檔案。

File pullFile(String remoteFilePath, int userId)

擷取裝置外部的檔案、將檔案儲存至本機的臨時 ERROR(/File),然後傳回 File

File pullFile(String remoteFilePath)

擷取裝置外部的檔案、將檔案儲存至本機的臨時 ERROR(/File),然後傳回 File

boolean pullFile(String remoteFilePath, File localFile, int userId)

擷取裝置外部的檔案。

String pullFileContents(String remoteFilePath)

從裝置擷取檔案,並傳回內容。

File pullFileFromExternal(String remoteFilePath)

從裝置外部儲存空間擷取檔案的便利方法,會將檔案儲存在本機暫時 ERROR(/File),以及傳回該 File 的參照。

boolean pushDir(File localFileDir, String deviceFilePath, excludedDirectories)

將目錄內容以遞迴方式推送到裝置中,但排除部分已篩除的目錄。

boolean pushDir(File localFileDir, String deviceFilePath)

以遞迴方式將目錄內容推送至裝置。

boolean pushDir(File localFileDir, String deviceFilePath, int userId)

以遞迴方式將目錄內容推送至裝置。

boolean pushFile(File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)

pushFile(File, String) 的變化版本,可選擇性考慮評估內容供應器的需求。

boolean pushFile(File localFile, String remoteFilePath)

將檔案推送至裝置。

boolean pushFile(File localFile, String remoteFilePath, int userId)

將檔案推送至裝置。

boolean pushString(String contents, String remoteFilePath)

將從字串建立的檔案推送至裝置

void reboot(String reason)

重新啟動裝置並進入 ADB 模式,指定 reason 在重新啟動後仍會保留。

void reboot()

重新啟動裝置,進入 ADB 模式。

void rebootIntoBootloader()

重新啟動裝置,進入系統啟動載入程式模式。

void rebootIntoFastbootd()

重新啟動裝置,進入 Fastbootd 模式。

void rebootIntoRecovery()

重新啟動裝置,進入 ADB 復原模式。

void rebootIntoSideload()

重新啟動裝置,進入 ADB 側載模式 (請注意,這是復原中的特殊模式)

封鎖,直到裝置進入側載模式為止

void rebootIntoSideload(boolean autoReboot)

重新啟動裝置,進入 ADB 側載模式 (請注意,這是復原中的特殊模式)

封鎖,直到裝置進入側載模式為止

void rebootUntilOnline()

這是 reboot() 的替代方案,只會在裝置連上網路後才會向 ADB 顯示。

void rebootUntilOnline(String reason)

這是 reboot() 的替代方案,只會在裝置連上網路後才會向 ADB 顯示。

void rebootUserspace()

僅重新啟動裝置上的使用者空間部分。

void rebootUserspaceUntilOnline()

rebootUserspace() ()} 的替代方案,只會在裝置連上網路後才對 ADB 顯示。

boolean recoverDevice()

嘗試復原裝置的通訊。

void registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)

為這部裝置註冊 IDeviceActionReceiver

void remountSystemReadOnly()

將裝置上的系統分區設為唯讀。

void remountSystemWritable()

將裝置上的系統分區設為可寫入。

void remountVendorReadOnly()

將裝置上的供應商分區設為唯讀。

void remountVendorWritable()

將裝置上的供應商分區設為可寫入。

boolean removeAdmin(String componentName, int userId)

移除特定使用者的裝置管理員,如果成功則傳回 true,否則傳回 false

void removeOwners()

盡可能移除所有現有的裝置設定檔擁有者。

boolean removeUser(int userId)

從裝置中移除特定使用者。

void resetContentProviderSetup()

如要再次觸發內容供應器,請重設內容供應器設定的標記。

boolean runInstrumentationTests(IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)

使用一或多個以參數傳遞的事件監聽器執行 ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection)) 的便利方法。

boolean runInstrumentationTests(IRemoteAndroidTestRunner runner, listeners)

執行檢測設備測試並提供裝置復原功能。

boolean runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, listeners)

ERROR(ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection)/com.android.tradefed.device.ITestDevice#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection) ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection)) 相同,但為特定使用者執行測試。

boolean runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)

ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, ITestLifeCycleReceiver...) 相同,但為特定使用者執行測試。

void setConfiguration(IConfiguration configuration)

插入目前使用的 IConfiguration

final void setConnectionAvdInfo(GceAvdInfo avdInfo)
void setDate(Date date)

設定裝置上的日期

注意:必須啟用 Root 權限才能設定裝置日期

boolean setDeviceOwner(String componentName, int userId)

將裝置管理員元件設為特定使用者的裝置擁有者。

void setDeviceState(TestDeviceState deviceState)

更新裝置狀態。

void setEmulatorOutputStream(SizeLimitedOutputStream output)

針對模擬器,請將 SizeLimitedOutputStream 設定為記錄輸出

void setEmulatorProcess(Process p)

當這部裝置是模擬器時,設定 Process

void setFastbootEnabled(boolean fastbootEnabled)

設定裝置的 Fastboot 選項。

void setFastbootPath(String fastbootPath)

設定應使用 Fastboot 二進位檔的路徑。

void setIDevice(IDevice newDevice)

更新與這個 ITestDevice 相關聯的 IDevice。

void setLogStartDelay(int delay)

設定開始為線上裝置 logcat 擷取作業前等待的時間 (毫秒)。

void setOptions(TestDeviceOptions options)

設定裝置的 TestDeviceOptions

boolean setProperty(String propKey, String propValue)

設定裝置上的指定的屬性值。

void setRecovery(IDeviceRecovery recovery)

設定要用於此裝置的 IDeviceRecovery

void setRecoveryMode(ITestDevice.RecoveryMode mode)

設定裝置目前使用的復原模式。

void setSetting(String namespace, String key, String value)

請參閱 setSetting(int, String, String, String) 並在系統使用者上執行。

void setSetting(int userId, String namespace, String key, String value)

將設定值新增至特定使用者的命名空間。

void setTestLogger(ITestLogger testLogger)

插入 ITestLogger 例項

void setUseFastbootErase(boolean useFastbootErase)

設定是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。

void startLogcat()

開始在背景擷取裝置的 logcat 輸出內容。

boolean startUser(int userId)

如果特定使用者目前已停止,在背景中啟動該使用者。

boolean startUser(int userId, boolean waitFlag)

如果特定使用者目前已停止,在背景中啟動該使用者。

boolean startVisibleBackgroundUser(int userId, int displayId, boolean waitFlag)

在背景啟動特定使用者,並顯示在指定的畫面上 (即允許使用者在該畫面上啟動活動)。

void stopEmulatorOutput()

關閉並刪除模擬器輸出內容。

void stopLogcat()

停止從裝置擷取 Logcat 輸出內容,並捨棄目前儲存的 logcat 資料。

boolean stopUser(int userId)

停止特定使用者。

boolean stopUser(int userId, boolean waitFlag, boolean forceFlag)

停止特定使用者。

String switchToAdbTcp()

將裝置切換至 adb-over-tcp 模式。

boolean switchToAdbUsb()

將裝置切換為 ADB 模式。

boolean switchUser(int userId)

切換至設有預設逾時的另一個 UserId。

boolean switchUser(int userId, long timeout)

切換到另一個設有逾時期限的 userId。

boolean syncFiles(File localFileDir, String deviceFilePath)

逐步將本機檔案目錄的內容同步到裝置。

Bugreport takeBugreport()

取得錯誤報告,並在 Bugreport 物件中傳回以進行處理。

String uninstallPackage(String packageName)

從裝置上解除安裝 Android 套件。

String uninstallPackageForUser(String packageName, int userId)

從特定使用者的裝置上解除安裝 Android 套件。

boolean unlockDevice()

如果裝置處於加密狀態,就會解鎖裝置。

void unmountDebugfs()

卸載偵錯 f。

boolean waitForBootComplete(long timeOut)

在裝置啟動完成標記設定前封鎖。

boolean waitForDeviceAvailable()

等待裝置回應且可供測試。

boolean waitForDeviceAvailable(long waitTime)

等待裝置回應且可供測試。

boolean waitForDeviceAvailableInRecoverPath(long waitTime)

等待裝置回應且可正常使用,而不考慮復原路徑。

void waitForDeviceBootloader()

封鎖,直到裝置透過 Fastboot 看見為止。

boolean waitForDeviceInRecovery(long waitTime)

禁止裝置處於「ADB 復原」狀態 (請注意,這與 IDeviceRecovery 不同)。

boolean waitForDeviceInSideload(long waitTime)

裝置處於「ADB 側載」狀態的封鎖

boolean waitForDeviceNotAvailable(long waitTime)

因 ADB 缺少裝置而無法使用的區塊

void waitForDeviceOnline()

封鎖,直到透過 ADB 顯示裝置為止。

void waitForDeviceOnline(long waitTime)

封鎖,直到透過 ADB 顯示裝置為止。

boolean waitForDeviceShell(long waitTime)

等待裝置回應基本 ADB 殼層指令。

保護方法

void addExtraConnectionBuilderArgs(DefaultConnection.ConnectionBuilder builder)
String[] buildAdbShellCommand(String command, boolean forceExitStatusDetection)

為指定的 ADB 殼層指令工作階段和 args 建構 OS 指令

void checkApiLevelAgainst(String feature, int strictMinLevel)
NativeDevice.RebootDeviceAction createRebootDeviceAction(NativeDevice.RebootMode rebootMode, String reason)

建立要在執行重新啟動動作時使用的 RebootDeviceAction

IRunUtil createRunUtil()
void doAdbReboot(NativeDevice.RebootMode rebootMode, String reason)

執行 ADB 重新啟動。

void ensureRuntimePermissionSupported()

輔助方法,在不支援執行階段權限時擲回例外狀況

int getApiLevelSafe()
ITestLogger getLogger()
IRunUtil getRunUtil()

取得要使用的 RunUtil 例項。

void initializeConnection(IBuildInfo info, MultiMap<String, String> attributes)
String internalGetProperty(String propName, String fastbootVar, String description)

根據預設,從 ddmlib 快取擷取裝置屬性,並根據裝置是否處於 Fastboot 狀態改回使用「adb shell getprop」或「fastboot getvar」。

boolean isInRebootCallback()

傳回是否正在執行重新啟動回呼。

boolean isNewer(File localFile, IFileEntry entry)

如果本機檔案比遠端檔案更新,則傳回 true

void notifyRebootEnded()

通知所有 IDeviceActionReceiver 有關重新啟動結束事件的通知。

void notifyRebootStarted()

向所有 IDeviceActionReceiver 通知重新啟動開始事件。

boolean performDeviceAction(String actionDescription, NativeDevice.DeviceAction action, int retryAttempts)

在這部裝置上執行動作。

void postAdbReboot()

重新啟動後可採取的額外動作。

void prePostBootSetup()

允許各個裝置類型 (AndroidNativeDevice、TestDevice) 針對特定啟動後設定覆寫這個方法。

boolean pullFileInternal(String remoteFilePath, File localFile)
void setClock(Clock clock)

設定要使用的時鐘執行個體。

void setMicrodroidProcess(Process process)

將 TestDevice 標示為 microdroid,並設定其客戶 ID。

void setTestDeviceOptions( deviceOptions)
CommandResult simpleFastbootCommand(long timeout, envVarMap, String[] fullCmd)

使用環境變數執行簡單的 Fastboot 指令,並回報指令的狀態。

CommandResult simpleFastbootCommand(long timeout, String[] fullCmd)

執行簡單的 Fastboot 指令並回報指令狀態。

boolean waitForDeviceNotAvailable(String operationDesc, long time)

等待看看裝置無法使用 (停止向 ADB 回報)。

常數

INVALID_USER_ID

public static final int INVALID_USER_ID

任何無效/找不到使用者 ID 傳回的值:UserHandle 定義了 -10000 值

常數值:-10000 (0xffffd8f0)

MAX_HOST_DEVICE_TIME_OFFSET

protected static final long MAX_HOST_DEVICE_TIME_OFFSET

常數值:5000 (0x0000000000001388)

最大郵件數

protected static final int MAX_RETRY_ATTEMPTS

指令重試執行的預設次數

常數值:2 (0x00000002)

欄位

偵錯

public static final String DEBUGFS_PATH

SD_CARD

protected static final String SD_CARD

STORAGE_EMULATED

protected static final String STORAGE_EMULATED

m 選項

protected TestDeviceOptions mOptions

mStateMonitor

protected final IDeviceStateMonitor mStateMonitor

公用建構函式

NativeDevice

public NativeDevice (IDevice device, 
                IDeviceStateMonitor stateMonitor, 
                IDeviceMonitor allocationMonitor)

可建立 TestDevice

參數
device IDevice:相關聯的 IDevice

stateMonitor IDeviceStateMonitor:要使用的 IDeviceStateMonitor 機制

allocationMonitor IDeviceMonitor:用於通知配置狀態變更的 IDeviceMonitor。可以是空值

公用方法

batchPrefetchStartupBuildProps

public void batchPrefetchStartupBuildProps ()

透過預先擷取需要的所有屬性 (約 400 毫升),進行微最佳化 (約 400 毫升),而不是針對每個項目呼叫「ADB getprop」。即擷取所有屬性的速度與擷取屬性一樣快。 例如 device.getApiLevel()、checkApiLevelAgainstNextRelease 和 getBuildAlias 等,都可在背景呼叫「adb getprop」。我們會在一次呼叫中擷取這些物件,並呼叫 NativeDevice.setProperty。即使不這麼做,NativeDevice 本身會呼叫 setProperty 並快取結果,以供日後的呼叫使用。我們只是稍微提前進行如果裝置正在復原,或是擷取道具時發生其他錯誤,我們會直接略過。

CanSwitchToHeadlessSystemUser

public boolean canSwitchToHeadlessSystemUser ()

傳回是否可切換至無頭 SYSTEM 使用者。

傳回
boolean

擲回
DeviceNotAvailableException

checkApiLevelAgainstNextRelease

public boolean checkApiLevelAgainstNextRelease (int strictMinLevel)

在盡可能最低支援的級別下,檢查目前是否支援特定功能。這個方法會在提出 API 級別之前,將尚未發布的功能納入考量。

參數
strictMinLevel int:支援功能的最小可能等級。

傳回
boolean 如果支援該等級,則為「是」。否則傳回「否」。

擲回
DeviceNotAvailableException

檢查連線能力

public boolean checkConnectivity ()

請確認裝置已連上網路。

傳回
boolean 如果裝置有正常運作的網路連線,則為 true,反之為 false

擲回
DeviceNotAvailableException

ClearErrorDialogs

public boolean clearErrorDialogs ()

嘗試關閉裝置 UI 目前顯示的任何錯誤對話方塊。

傳回
boolean true 表示沒有任何對話方塊,或已成功清除對話方塊。否則為 false

擲回
DeviceNotAvailableException

ClearLastConnectedWifiNetwork

public void clearLastConnectedWifiNetwork ()

清除上次連線的 Wi-Fi 網路。啟動新的叫用時應呼叫這項呼叫,以免裝置重新啟動後連線至上一個測試中使用的 Wi-Fi 網路。

ClearLogcat

public void clearLogcat ()

刪除所有累積的 Logcat 資料。

如果您想確保 ITestDevice#getLogcat() 只會傳回特定時間點後 (例如刷新裝置版本等) 後產生的記錄資料,這就非常實用。

連上 Wi-Fi 網路

public boolean connectToWifiNetwork ( wifiSsidToPsk, 
                boolean scanSsid)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持連線,直到成功連上 wifiSsidToPsk 地圖中提供的其中一個 Wi-Fi 網路。建立連線後,執行個體會在每次重新啟動後嘗試恢復連線,直到呼叫 ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork() 為止。

參數
wifiSsidToPsk :Wi-Fi SSID 和密碼的對應表。

scanSsid boolean:是否要掃描這個網路的隱藏 SSID。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

連上 Wi-Fi 網路

public boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到連上指定的 Wi-Fi 網路為止。 建立連線後,執行個體會在每次重新啟動後嘗試恢復連線,直到呼叫 ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork() 為止。

參數
wifiSsid String:要連線的 Wi-Fi 裝置 ID

wifiPsk String:PSK 通關密語;如果未加密則傳回空值

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

連上 Wi-Fi 網路

public boolean connectToWifiNetwork ( wifiSsidToPsk)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持連線,直到成功連上 wifiSsidToPsk 地圖中提供的其中一個 Wi-Fi 網路。建立連線後,執行個體會在每次重新啟動後嘗試恢復連線,直到呼叫 ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork() 為止。

參數
wifiSsidToPsk :Wi-Fi SSID 和密碼的對應表。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

連上 Wi-Fi 網路

public boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

連線至 Wi-Fi 網路。

開啟 Wi-Fi 並保持封鎖,直到連上指定的 Wi-Fi 網路為止。 建立連線後,執行個體會在每次重新啟動後嘗試恢復連線,直到呼叫 ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork() 為止。

參數
wifiSsid String:要連線的 Wi-Fi 裝置 ID

wifiPsk String:PSK 通關密語;如果未加密則傳回空值

scanSsid boolean:是否要掃描這個網路的隱藏 SSID。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

ConnectToWifiNetworkIf 需要

public boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

connectToWifiNetwork(String, String) 的變化版本,只會在裝置目前沒有網路連線時連線。

參數
scanSsid boolean:是否要掃描這個網路的隱藏 SSID

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

ConnectToWifiNetworkIf 需要

public boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

connectToWifiNetwork(String, String) 的變化版本,只會在裝置目前沒有網路連線時連線。

傳回
boolean true (如果已成功連上 Wi-Fi 網路)。否則為 false

擲回
DeviceNotAvailableException

建立使用者

public int createUser (String name, 
                boolean guest, 
                boolean ephemeral)

使用名字和提供的旗標建立使用者

參數
name String:在裝置上建立的使用者

guest boolean:在建立期間啟用使用者標記 --guest

ephemeral boolean:在建立期間啟用使用者標記 -- short

傳回
int 已建立使用者的 ID

擲回
DeviceNotAvailableException

建立使用者

public int createUser (String name, 
                boolean guest, 
                boolean ephemeral, 
                boolean forTesting)

使用名字和提供的旗標建立使用者

參數
name String:在裝置上建立的使用者

guest boolean:在建立期間啟用使用者標記 --guest

ephemeral boolean:在建立期間啟用使用者標記 -- short

forTesting boolean:在建立期間啟用測試標記 --for-測試

傳回
int 已建立使用者的 ID

擲回
DeviceNotAvailableException

建立使用者

public int createUser (String name)

以指定名稱和預設旗標 0 建立使用者。

參數
name String:在裝置上建立的使用者

傳回
int 所建立使用者 ID 的整數

擲回
DeviceNotAvailableException

createUserNoThrow

public int createUserNoThrow (String name)

以指定名稱和預設旗標 0 建立使用者。

參數
name String:在裝置上建立的使用者

傳回
int 所建立使用者 ID 的整數,或傳回 -1 表示錯誤。

擲回
DeviceNotAvailableException

刪除檔案

public void deleteFile (String deviceFilePath, 
                int userId)

使用輔助方法刪除裝置上的檔案或目錄。

參數
deviceFilePath String:裝置上檔案的絕對路徑。

userId int:要刪除的使用者 ID

擲回
DeviceNotAvailableException

刪除檔案

public void deleteFile (String deviceFilePath)

使用輔助方法刪除裝置上的檔案或目錄。

參數
deviceFilePath String:裝置上檔案的絕對路徑。

擲回
DeviceNotAvailableException

取消註冊裝置動作接收者

public void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

移除已註冊的 IDeviceActionReceiver

參數
deviceActionReceiver IDeviceActionReceiver:即將移除的 IDeviceActionReceiver

裝置軟體重新啟動

public boolean deviceSoftRestarted (ProcessInfo prevSystemServerProcess)

將目前的 system_server 與先前的 system_server ProcessInfo 比對,以檢查裝置是否軟重新啟動。使用 getProcessByName(String)可在首次付款獲得 ProcessInfo

參數
prevSystemServerProcess ProcessInfo:先前的 system_server 程序 ProcessInfo

傳回
boolean 如果裝置已自動重新啟動,則為 true

擲回
DeviceNotAvailableException

deviceSoftRestartedBefore

public boolean deviceSoftRestartedSince (long utcEpochTime, 
                TimeUnit timeUnit)

這項輔助方法可檢查裝置自世界標準時間 (UTC) 自 Epoch 紀元時間起算,是否在 ERROR(/TimeUnit) 後自動重新啟動。Soft-Restart 是指裝置強制重新啟動以外 (例如:要求重新啟動) 而重新啟動的 system_server。目前裝置 utcEpochTime (以毫秒為單位) 可透過 getDeviceDate() 方法取得。

參數
utcEpochTime long:自 Epoch 紀元時間起算的裝置時間,以秒為單位。

timeUnit TimeUnit:指定 utcEpochTime 的時間單位 TimeUnit

傳回
boolean 如果裝置已自動重新啟動,則為 true

擲回
DeviceNotAvailableException

停用 AdbRoot

public boolean disableAdbRoot ()

關閉 ADB 根層級。

停用 ADB 根層級可能會導致裝置與 ADB 中斷連線。這個方法會遭到封鎖,直到裝置可供使用為止。

傳回
boolean true 表示成功。

擲回
DeviceNotAvailableException

停用鍵盤鎖

public void disableKeyguard ()

嘗試停用鍵盤鎖。

首先,等待輸入調度作業準備就緒,因為目前架構實作情況偶爾會發生競爭狀況,所以裝置回報 BOOT_COMPLETE 時幾乎是以非同步方式回報 BOOT_COMPLETE。接著,指令會關閉鍵盤保護功能 (僅適用於不安全的裝置)

擲回
DeviceNotAvailableException

停用網路監視器

public boolean disableNetworkMonitor ()

停用裝置上的網路監控功能。

傳回
boolean true 表示已成功停用監控功能。false 表示失敗。

擲回
DeviceNotAvailableException

中斷從 Wifi 連線

public boolean disconnectFromWifi ()

Wi-Fi 網路連線中斷。

這會從已知網路清單中移除所有網路,並停用 Wi-Fi。

傳回
boolean 如果 Wi-Fi 網路連線已成功中斷,請true。如果連線失敗,請false

擲回
DeviceNotAvailableException

doFileExist

public boolean doesFileExist (String deviceFilePath, 
                int userId)

輔助方法可判斷特定使用者裝置上的檔案是否存在。

參數
deviceFilePath String:要檢查的裝置上的檔案絕對路徑

userId int:檢查檔案是否存在的使用者 ID

傳回
boolean 如果檔案存在,則為 true,否則傳回 false

擲回
DeviceNotAvailableException

doFileExist

public boolean doesFileExist (String deviceFilePath)

判斷裝置上是否存在檔案的輔助方法。

參數
deviceFilePath String:要檢查的裝置上的檔案絕對路徑

傳回
boolean 如果檔案存在,則為 true,否則傳回 false

擲回
DeviceNotAvailableException

dumpHeap

public File dumpHeap (String process, 
                String devicePath)

嘗試從 system_server 轉儲記憶體快照。呼叫端必須負責清除傾印的檔案。

參數
process String:要轉儲的裝置程序名稱。

devicePath String:裝置上要放入傾印檔的路徑。這必須是權限允許的位置。

傳回
File 包含報表的 ERROR(/File)。如果發生錯誤,則為空值。

擲回
DeviceNotAvailableException

啟用 AdbRoot

public boolean enableAdbRoot ()

開啟 ADB 根。如果「enable-root」設為「false」,系統會記錄訊息並在不啟用 Root 權限的情況下傳回。

啟用 ADB 根層級可能會導致裝置與 ADB 中斷連線。這個方法會遭到封鎖,直到裝置可供使用為止。

傳回
boolean true 表示成功。

擲回
DeviceNotAvailableException

enableNetworkMonitor

public boolean enableNetworkMonitor ()

在裝置上啟用網路監控功能。

傳回
boolean true 表示已成功啟用監控功能。false 表示失敗。

擲回
DeviceNotAvailableException

執行 AdbCommand

public String executeAdbCommand (long timeout, 
                String... cmdArgs)

此輔助方法可在已設定逾時的情況下,做為系統指令執行 ADB 指令。

請盡可能改用 executeShellCommand(String),因為這個方法能提供更理想的故障偵測結果和效能。

參數
timeout long:系統判定裝置無回應前的時間長度 (毫秒),無逾時時間設為 0L

cmdArgs String:要執行的 ADB 指令和引數

傳回
String 中的 stdout。null:如果指令無法執行,則傳回 true。

擲回
DeviceNotAvailableException

執行 AdbCommand

public String executeAdbCommand (long timeout, 
                 envMap, 
                String... cmdArgs)

此輔助方法可在已設定逾時的情況下,做為系統指令執行 ADB 指令。

請盡可能改用 executeShellCommand(String),因為這個方法能提供更理想的故障偵測結果和效能。

參數
timeout long:系統判定裝置無回應前的時間長度 (毫秒),無逾時時間設為 0L

envMap :要為指令設定的環境

cmdArgs String:要執行的 ADB 指令和引數

傳回
String 中的 stdout。null:如果指令無法執行,則傳回 true。

擲回
DeviceNotAvailableException

執行 AdbCommand

public String executeAdbCommand (String... cmdArgs)

此輔助方法可將 ADB 指令當做系統指令執行。

請盡可能改用 executeShellCommand(String),因為這個方法能提供更理想的故障偵測結果和效能。

參數
cmdArgs String:要執行的 ADB 指令和引數

傳回
String 中的 stdout。null:如果指令無法執行,則傳回 true。

擲回
DeviceNotAvailableException

執行 FastbootCommand

public CommandResult executeFastbootCommand (String... cmdArgs)

這個輔助方法會以系統指令執行 Fastboot 指令,並預設為逾時 2 分鐘。

如果裝置已處於快速啟動模式,就會採用此設定。

參數
cmdArgs String:要執行的 Fastboot 指令和引數

傳回
CommandResult 包含指令輸出內容的 CommandResult

擲回
DeviceNotAvailableException

執行 FastbootCommand

public CommandResult executeFastbootCommand (long timeout, 
                String... cmdArgs)

這個輔助方法能以系統指令執行 Quickboot 指令。

如果裝置已處於快速啟動模式,就會採用此設定。

參數
timeout long:指令過期前的時間 (以毫秒為單位)

cmdArgs String:要執行的 Fastboot 指令和引數

傳回
CommandResult 包含指令輸出內容的 CommandResult

擲回
DeviceNotAvailableException

執行 LongFastbootCommand

public CommandResult executeLongFastbootCommand (String... cmdArgs)

輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令。

executeFastbootCommand(String) 相同,但使用較長的逾時。

參數
cmdArgs String:要執行的 Fastboot 指令和引數

傳回
CommandResult 包含指令輸出內容的 CommandResult

擲回
DeviceNotAvailableException

執行 LongFastbootCommand

public CommandResult executeLongFastbootCommand ( envVarMap, 
                String... cmdArgs)

這個輔助方法可透過系統環境變數,以系統指令的形式執行長時間執行的 Fastboot 指令。

executeFastbootCommand(String) 相同,但使用較長的逾時。

參數
envVarMap :Fastboot 指令執行的系統環境變數

cmdArgs String:要執行的 Fastboot 指令和引數

傳回
CommandResult 包含指令輸出內容的 CommandResult

擲回
DeviceNotAvailableException

執行 ShellCommand

public String executeShellCommand (String command)

此輔助方法可執行 ADB 殼層指令,並以 String 形式傳回輸出內容。

參數
command String:要執行的 ADB 殼層指令

傳回
String 殼層輸出

擲回
DeviceNotAvailableException

執行 ShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                long maxTimeToOutputShellResponse, 
                TimeUnit timeUnit, 
                int retryAttempts)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
command String:要執行的 ADB 殼層指令

receiver IShellOutputReceiver:指定殼層輸出內容的 IShellOutputReceiver

maxTimeToOutputShellResponse long:指令禁止輸出任何回應的最長時間長度,如 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

retryAttempts int:發生例外狀況失敗時,重試指令的次數上限。如果未成功執行 retryAttempts,系統會擲回 DeviceNotResponseException。

擲回
DeviceNotAvailableException

執行 ShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                long maxTimeoutForCommand, 
                long maxTimeToOutputShellResponse, 
                TimeUnit timeUnit, 
                int retryAttempts)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
command String:要執行的 ADB 殼層指令

receiver IShellOutputReceiver:指定殼層輸出內容的 IShellOutputReceiver

maxTimeoutForCommand long:指令的逾時時間上限;在 timeUnit 中指定的單位

maxTimeToOutputShellResponse long:指令禁止輸出任何回應的最長時間長度,如 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

retryAttempts int:發生例外狀況失敗時,重試指令的次數上限。如果未成功執行 retryAttempts,系統會擲回 DeviceNotResponseException。

擲回
DeviceNotAvailableException

執行 ShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver)

執行指定的 ADB 殼層指令,如果指令失敗,則會多次重試。

採用預設值的簡單 executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit, int) 形式。

參數
command String:要執行的 ADB 殼層指令

receiver IShellOutputReceiver:指定殼層輸出內容的 IShellOutputReceiver

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd)

此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult 並正確填入指令狀態輸出內容、stdout 和 stderr。

參數
cmd String:應執行的指令。

傳回
CommandResult CommandResult 中的結果。

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                OutputStream pipeToOutput)

輔助方法可執行 ADB 殼層指令,並以 CommandResult 格式傳回結果,並填入指令狀態輸出和 stderr。stdout 會導向指定的串流。

參數
cmd String:應執行的指令。

pipeToOutput OutputStream:將重新導向 std 輸出內容的 ERROR(/OutputStream),或是空值。

傳回
CommandResult CommandResult 中的結果。

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                File pipeAsInput)

此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult 並正確填入指令狀態輸出內容、stdout 和 stderr。

參數
cmd String:應執行的指令。

pipeAsInput FileERROR(/File),會做為指令的輸入值或空值。

傳回
CommandResult CommandResult 中的結果。

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit, 
                int retryAttempts)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
cmd String:要執行的 ADB 殼層指令

maxTimeoutForCommand long:指令的逾時時間上限;在 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

retryAttempts int:發生例外狀況失敗時,重試指令的次數上限。如果未成功執行 retryAttempts,系統會擲回 DeviceNotResponseException。

傳回
CommandResult

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
cmd String:要執行的 ADB 殼層指令

maxTimeoutForCommand long:指令的逾時時間上限;在 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

傳回
CommandResult

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                File pipeAsInput, 
                OutputStream pipeToOutput, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit, 
                int retryAttempts)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
cmd String:要執行的 ADB 殼層指令

pipeAsInput FileERROR(/File),會做為指令的輸入值或空值。

pipeToOutput OutputStream:將重新導向 std 輸出內容的 ERROR(/OutputStream),或是空值。

maxTimeoutForCommand long:指令的逾時時間上限;在 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

retryAttempts int:發生例外狀況失敗時,重試指令的次數上限。如果未成功執行 retryAttempts,系統會擲回 DeviceNotResponseException。

傳回
CommandResult

擲回
DeviceNotAvailableException

執行 ShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                File pipeAsInput, 
                OutputStream pipeToOutput, 
                OutputStream pipeToError, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit, 
                int retryAttempts)

這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。

參數
cmd String:要執行的 ADB 殼層指令

pipeAsInput FileERROR(/File),會做為指令的輸入值或空值。

pipeToOutput OutputStream:將重新導向 std 輸出內容的 ERROR(/OutputStream),或是空值。

pipeToError OutputStreamERROR(/OutputStream) std 錯誤將重新導向,或是空值。

maxTimeoutForCommand long:指令的逾時時間上限;在 timeUnit 中指定的單位

timeUnit TimeUnitmaxTimeToOutputShellResponse的單位

retryAttempts int:發生例外狀況失敗時,重試指令的次數上限。如果未成功執行 retryAttempts,系統會擲回 DeviceNotResponseException。

傳回
CommandResult

擲回
DeviceNotAvailableException

FastbootWipePartition

public CommandResult fastbootWipePartition (String partition)

可抹除裝置分區的輔助方法。

如果 getUseFastbootErase()true,系統會使用 Fastboot 清除功能清除分區資料。接著,裝置必須在下次開機時建立檔案系統。否則,系統會使用 Fastboot 格式,在裝置上建立新的檔案系統。

如果裝置已處於快速啟動模式,就會採用此設定。

參數
partition String:要抹除的分區

傳回
CommandResult 包含指令輸出內容的 CommandResult

擲回
DeviceNotAvailableException

getActiveApexes

public  getActiveApexes ()

擷取裝置上已啟用的 APEX 相關資訊。

傳回
目前已在裝置上啟用 ERROR(/Set) 個 (共 ApexInfo 個)

擲回
DeviceNotAvailableException

取得所有設定

public  getAllSettings (String namespace)

傳回要求命名空間的鍵/值組合。

參數
namespace String:必須是 {"system", "secure", "global"} 的其中一個

傳回
鍵/值組合的對應如果不支援命名空間,則為空值。

擲回
DeviceNotAvailableException

getAllocationState

public DeviceAllocationState getAllocationState ()

傳回裝置目前的配置狀態

傳回
DeviceAllocationState

getAndroidId

public String getAndroidId (int userId)

找出並傳回與 UserId 相關聯的 android-id,如果找不到,則傳回空值。

參數
userId int

傳回
String

擲回
DeviceNotAvailableException

getAndroidIds

public  getAndroidIds ()

建立已找到相符使用者 ID 的 Android ID 對應。沒有任何保險,每個使用者 ID 都會找到與這個函式相關聯的 Android ID,因此部分使用者 ID 可能會與空值相符。

傳回
已找到相符的使用者 ID 的 Android ID 對應圖。

擲回
DeviceNotAvailableException

getApiLevel

public int getApiLevel ()

取得裝置的 API 級別。預設值為 UNKNOWN_API_LEVEL

傳回
int 以整數表示裝置 API 級別

擲回
DeviceNotAvailableException

getAppPackageInfo

public PackageInfo getAppPackageInfo (String packageName)

擷取裝置上安裝的套件相關資訊。

參數
packageName String

傳回
PackageInfo 如果無法擷取資訊,則會改為 PackageInfonull

擲回
DeviceNotAvailableException

getAppPackageInfos

public  getAppPackageInfos ()

擷取裝置上安裝的套件資訊。

傳回
裝置已安裝 ERROR(/List)/PackageInfo

擲回
DeviceNotAvailableException

getBasebandVersion

public String getBasebandVersion ()

取得此裝置基頻 (無線電) 版本的便利方法。取得裝置的無線電版本會因裝置而異,因此可能不會傳回所有裝置的正確資訊。這個方法需要使用 gsm.version.baseband 屬性,傳回正確的版本資訊。對部分 CDMA 裝置而言,這並不正確,而且此處傳回的版本可能與 Quickboot 回報的版本不符,也可能不會傳回 CDMA 無線電的版本。TL;DR 這個方法只會在 gsm.version.baseband 屬性與 fastboot getvar version-baseband 傳回的版本相同時才會回報正確版本。

傳回
String 無法判斷 String 基頻版本,或 null (裝置沒有無線電或版本字串無法讀取)

擲回
DeviceNotAvailableException

getBattery

public Integer getBattery ()

傳回裝置目前的電池電量,如果沒有電池電量,則傳回空值。

傳回
Integer

getBooleanProperty

public boolean getBooleanProperty (String name, 
                boolean defaultValue)

傳回指定屬性的布林值。

參數
name String:屬性名稱

defaultValue boolean:在屬性為空白或不存在時要傳回的預設值。

傳回
boolean 如果屬性的值為 "1""n""no""off""false"defaultValue,則值為 "1""y""yes""on""true"falsetrue"0"

擲回
DeviceNotAvailableException

getBootHistory

public  getBootHistory ()

輔助方法會收集啟動記錄地圖和啟動時間和啟動原因。

傳回
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因

擲回
DeviceNotAvailableException

getBootHistoryBefore

public  getBootHistorySince (long utcEpochTime, 
                TimeUnit timeUnit)

輔助方法會收集自指定時間 (自裝置週期起算) 和指定時間單位以來的啟動時間和啟動原因圖。目前裝置 utcEpochTime (以毫秒為單位) 可透過 getDeviceDate() 方法取得。

參數
utcEpochTime long:自 Epoch 紀元時間以來的裝置時間。

timeUnit TimeUnit:時間單位 TimeUnit

傳回
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因

擲回
DeviceNotAvailableException

getBootloaderVersion

public String getBootloaderVersion ()

取得這部裝置的系統啟動載入程式版本的便利方法。

系統會嘗試從裝置目前狀態擷取系統啟動載入程式版本。(亦即,如果裝置處於 Fastboot 模式,則會嘗試從 Fastboot 擷取版本)

傳回
String String 系統啟動載入程式版本;如果找不到,請使用 null

擲回
DeviceNotAvailableException

getBugreport

public InputStreamSource getBugreport ()

從裝置擷取錯誤報告。

實作此做法可確保在沒有 sdcard (或尚未掛接 sdcard) 的裝置上能繼續運作。

傳回
InputStreamSource InputStreamSource,可視需求產生錯誤報告內容。如果失敗,InputStreamSource 會產生空白的 ERROR(/InputStream)

getBugreportz

public InputStreamSource getBugreportz ()

從裝置擷取錯誤報告。ZIP 格式錯誤報告內含主要錯誤報告和其他有助於偵錯的記錄檔。

僅支援「ADB 版本」或「1.0.36」以上的版本

傳回
InputStreamSource 含有 bugreportz 的 ZIP 檔案 InputStreamSource;如果失敗,系統會傳回空值。

getBuildAlias

public String getBuildAlias ()

擷取裝置目前執行版本的別名。

相較於版本 ID (通常為 Nexus 建構項目 ID),建構別名通常更容易理解字串。舉例來說,最終的 Android 4.2 版本具有建構別名 JDQ39 和版本 ID 573038

傳回
String 如無法擷取建構別名,或將其改回以建構 ID

擲回
DeviceNotAvailableException

getBuildFlavor

public String getBuildFlavor ()

擷取裝置的建構變種版本。

傳回
String 如無法擷取建構變種版本,則為空值

擲回
DeviceNotAvailableException

getBuildId

public String getBuildId ()

擷取裝置目前執行的版本。

傳回
String 建構 ID;如果無法擷取,則為 IBuildInfo#UNKNOWN_BUILD_ID

擲回
DeviceNotAvailableException

getBuildSigningKeys

public String getBuildSigningKeys ()

傳回用來簽署裝置圖片的金鑰類型

Android 裝置通常會使用測試金鑰 (例如 Android 開放原始碼計畫) 或版本資訊 (由個別裝置製造商控管) 簽署

傳回
String 如果有簽署金鑰,則傳回空值。如果沒有,則傳回空值。

擲回
DeviceNotAvailableException

getCachedDeviceDescriptor

public DeviceDescriptor getCachedDeviceDescriptor ()

如果配置裝置,會傳回快取的 DeviceDescriptor,否則傳回目前的 DeviceDescriptor

傳回
DeviceDescriptor

getCachedDeviceDescriptor

public DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)

如果配置裝置,會傳回快取的 DeviceDescriptor,否則傳回目前的 DeviceDescriptor

參數
shortDescriptor boolean:是否要將描述元限制為最低限度

傳回
DeviceDescriptor

getChildren

public String[] getChildren (String path)

替代 IFileEntry 的替代方案,因為有時會因為權限而無法運作。

參數
path String:在裝置上執行搜尋的路徑

傳回
String[] 字串陣列,包含裝置上路徑中的所有檔案。

擲回
DeviceNotAvailableException

getConnection 連結

public AbstractConnection getConnection ()

與裝置相關聯的目前連線,

傳回
AbstractConnection

getContentProvider

public ContentProviderHandler getContentProvider (int userId)

傳回 ContentProviderHandler 或空值 (如果不適用)。

如果之前曾以相同的 userId 建構內容供應器,就可以重複使用。

參數
userId int:用來初始化內容供應器的使用者 ID。

傳回
ContentProviderHandler

擲回
DeviceNotAvailableException

getCurrentFoldableState

public DeviceFoldableState getCurrentFoldableState ()

傳回裝置目前的摺疊式裝置狀態;如果發生問題,則傳回空值。

傳回
DeviceFoldableState

擲回
DeviceNotAvailableException

getCurrentUser

public int getCurrentUser ()

傳回目前執行中使用者的 ID。如果發生錯誤,請回傳 -10000。

傳回
int

擲回
DeviceNotAvailableException

getDeviceClass

public String getDeviceClass ()

取得裝置類別。

傳回
String String 裝置類別。

取得裝置日期

public long getDeviceDate ()

傳回裝置日期 (自 Epoch 紀元時間起算,以毫秒為單位)。

傳回
long 裝置日期,以 Epoch 紀元時間表示。

擲回
DeviceNotAvailableException

getDeviceDescriptor

public DeviceDescriptor getDeviceDescriptor ()

從裝置資訊傳回 DeviceDescriptor 即可取得相關資訊,而不會傳送實際的裝置物件。

傳回
DeviceDescriptor

getDeviceDescriptor

public DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)

從裝置資訊傳回 DeviceDescriptor 即可取得相關資訊,而不會傳送實際的裝置物件。

參數
shortDescriptor boolean:是否要將描述元限制為最低限度

傳回
DeviceDescriptor

getDeviceState

public TestDeviceState getDeviceState ()

取得裝置的狀態。

傳回
TestDeviceState

getDeviceTimeOffset

public long getDeviceTimeOffset (Date date)

協助取得裝置和指定 ERROR(/Date) 的時間差。請在內部使用 Epoch 時間。

參數
date Date

傳回
long 以毫秒為單位

擲回
DeviceNotAvailableException

getEmulatorOutput

public InputStreamSource getEmulatorOutput ()

取得模擬器 stdout 和 stderr 串流

傳回
InputStreamSource 模擬器輸出

getEmulator 程序

public Process getEmulatorProcess ()

傳回與此模擬器對應的 Process

傳回
Process Processnull

getExecuteShellCommandLog

public final File getExecuteShellCommandLog ()

包含所有 executeShellCommand(String) 記錄的記錄。

傳回
File

getExternalStoreFreeSpace

public long getExternalStoreFreeSpace ()

判斷裝置外部儲存空間可用空間的輔助方法。

傳回
long 可用空間 (以 KB 為單位)

擲回
DeviceNotAvailableException

取得快速系統啟動路徑 (FastbootPath)

public String getFastbootPath ()

傳回目前使用的 Fastboot 二進位檔的路徑。 仍須將 isFastbootEnabled() 設為 true,才能啟用 Quickboot 函式。

傳回
String

取得 FastbootProductType

public String getFastbootProductType ()

裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。

這個方法應僅在裝置應採用 Fastboot 時才使用。在這種情況下,與一般的 getProductType() 方法相比,這個變數的安全性更為安全,因為如果裝置狀態不正確或沒有回應,ITestDevice 會知道將裝置復原為 Fastboot。

傳回
String String 產品類型名稱;如果無法確定,則提供 null

擲回
DeviceNotAvailableException

getFastbootProductVariant

public String getFastbootProductVariant ()

裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。

這個方法應僅在裝置應採用 Fastboot 時才使用。在這種情況下,與一般的 getProductType() 方法相比,這個變數的安全性更為安全,因為如果裝置狀態不正確或沒有回應,ITestDevice 會知道將裝置復原為 Fastboot。

傳回
String String 產品類型名稱;如果無法確定,則提供 null

擲回
DeviceNotAvailableException

getFastbootSerialNumber

public String getFastbootSerialNumber ()

傳回 Quickboot 模式的序號。

傳回
String

getFastbootVariable

public String getFastbootVariable (String variableName)

從裝置擷取指定的 Fastboot 變數值。

參數
variableName String:變數名稱

傳回
String 屬性值;如果不存在,則為 null

擲回
DeviceNotAvailableException

取得快速系統啟動版本

public String getFastbootVersion ()

傳回目前使用的 Quickboot 二進位檔的版本字串。如果發生問題,也可以傳回空值。

傳回
String

getFileEntry

public IFileEntry getFileEntry (String path)

擷取裝置上遠端檔案的參照。

參數
path String:要擷取的檔案路徑。可以是相對於「/」的絕對路徑或路徑 (支援「/system」和「系統」語法)。

傳回
IFileEntry 如果在指定 path 中找不到檔案,則傳回 IFileEntrynull

擲回
DeviceNotAvailableException

getFileEntry

public IFileEntry getFileEntry (FileListingService.FileEntry entry)

從非根路徑取得 FileEntry 的非官方輔助程式。FIXME:重構 FileEntry 系統,使其可從任何路徑取得。(即使非根)。

參數
entry FileListingService.FileEntryFileEntry 不一定是 Ddmlib 所需的根層級。

傳回
IFileEntry 代表 FileEntry 的 FileEntryWrapper。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getFoldableStates

public  getFoldableStates ()

傳回裝置上的摺疊式裝置狀態清單。可透過「cmd device_state print-states」取得。

傳回

擲回
DeviceNotAvailableException

getIDevice

public IDevice getIDevice ()

傳回相關聯 ddmlib IDevice 的參照。

裝置每次與 ADB 中斷連線和重新連線時,DDM 可能會分配新的 IDevice。因此,呼叫端不應保留對 IDevice 的參照,因為該參照可能會過時。

傳回
IDevice IDevice

getInstalledPackageNames

public  getInstalledPackageNames ()

擷取裝置中顯示的應用程式套件名稱。

傳回
裝置目前已安裝 ERROR(/Set) 個套件名稱 (共 String 個)。

擲回
DeviceNotAvailableException

getIntProperty

public long getIntProperty (String name, 
                long defaultValue)

傳回裝置中指定屬性的整數值。

參數
name String:屬性名稱

defaultValue long:在屬性為空白或不存在時要傳回的預設值。

傳回
long 屬性值。如果屬性為空白、不存在或沒有整數值,則為 defaultValue

擲回
DeviceNotAvailableException

getIpAddress

public String getIpAddress ()

取得裝置的 IP 位址。

傳回
String 裝置的 IP 位址;如果裝置沒有 IP 位址,則為 null

擲回
DeviceNotAvailableException

getKeyguardState

public KeyguardControllerState getKeyguardState ()

傳回物件即可取得鍵盤防護目前的狀態;如果不支援,則傳回空值。

傳回
KeyguardControllerState 包含鍵盤防護狀態快照的 KeyguardControllerState,如果不支援 Keyguard 查詢,則會傳回空值。

擲回
DeviceNotAvailableException

getLast 預期 RebootTimeMillis

public long getLastExpectedRebootTimeMillis ()

傳回 Tradefed API 上次從 EPOCH 傳回的時間 (以毫秒為單位),由 System.currentTimeMillis() 傳回。

傳回
long

getLaunchApiLevel

public int getLaunchApiLevel ()

取得裝置第一個啟動的 API 級別。預設值為 UNKNOWN_API_LEVEL

傳回
int 整數,代表首次啟動的裝置 API 級別

擲回
DeviceNotAvailableException

getLogcat

public InputStreamSource getLogcat ()

取得 Logcat 資料的快照串流。

支援兩種模式:

  • 如果系統正在背景擷取 Logcat,最多會傳回 TestDeviceOptions.getMaxLogcatDataSize() 位元組的背景 Logcat 擷取目前內容
  • 否則,如果裝置目前在回應,系統會傳回 logcat 資料的靜態傾印

    傳回
    InputStreamSource

  • getLogcat

    public InputStreamSource getLogcat (int maxBytes)

    取得最近 maxBytes 已擷取 Logcat 資料的快照串流。

    當您想經常擷取已擷取 Logcat 資料的快照,但又不想因取得整個 getLogcat() 快照而產生巨大的磁碟空間費用時,此選項非常實用。

    參數
    maxBytes int:要傳回的資料量上限。這個大小必須適合 在記憶體中充飽電

    傳回
    InputStreamSource

    getLogcatDump

    public InputStreamSource getLogcatDump ()

    取得裝置目前 logcat 的轉儲資料。與 getLogcat() 不同,這個方法一律會傳回 Logcat 的靜態傾印。

    缺點是,無法使用裝置時不會傳回任何物品。

    傳回
    InputStreamSource Logcat 資料的 InputStreamSource。如果無法擷取 logcat 資料,系統會傳回空白串流。

    getLogcatcat

    public InputStreamSource getLogcatSince (long date)

    擷取已擷取 Logcat 資料的快照串流 (從提供的日期開始)。裝置時間應使用 getDeviceDate()

    參數
    date long:以毫秒為單位,從 Epoch 紀元時間開始,直到顯示快照的時間開始為止。(可以使用「日期 +%s」取得)

    傳回
    InputStreamSource

    getMacAddress

    public String getMacAddress ()

    傳回裝置的 MAC 位址;如果無法從裝置查詢,則傳回空值。

    傳回
    String

    getMainUserId

    public Integer getMainUserId ()

    傳回主要使用者 ID。

    傳回
    Integer 主要使用者的 userId;如果沒有主要使用者,則為空值。

    擲回
    DeviceNotAvailableException

    getMainlineModuleInfo

    public  getMainlineModuleInfo ()

    取得裝置上安裝的主系列模組相關資訊。

    傳回
    裝置上目前已安裝 ERROR(/Set) 個主要模組 (共 String 個)。

    擲回
    DeviceNotAvailableException

    getMaxNumberOfRunningUsersSupported

    public int getMaxNumberOfRunningUsersSupported ()

    取得支援同時執行的使用者數量上限。預設為 0。

    傳回
    int 一個整數,用來指出同時執行中使用者的數量

    擲回
    DeviceNotAvailableException

    getMaxNumberOfUsersSupported

    public int getMaxNumberOfUsersSupported ()

    取得支援的使用者人數上限。預設為 0。

    傳回
    int 整數,表示支援的使用者人數

    擲回
    DeviceNotAvailableException

    getMicrodroidProcess

    public Process getMicrodroidProcess ()

    傳回
    Process 傳回 Microdroid VM 的處理程序。如果 TestDevice 不是 Microdroid,就會傳回空值。

    getMonitor

    public IDeviceStateMonitor getMonitor ()

    傳回與裝置相關聯的 IDeviceStateMonitor

    傳回
    IDeviceStateMonitor

    getMountPoint

    public String getMountPoint (String mountName)

    傳回掛接點。

    如果無法取得 IDevice 中的快取資訊,請直接查詢裝置。

    待辦事項:將此行為移至 IDevice#getMountPoint(String)

    參數
    mountName String:掛接點名稱

    傳回
    String 掛接點,也就是 null

    getMountPointInfo

    public ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)

    傳回與指定掛接點路徑對應的 MountPointInfo;如果該路徑沒有任何掛接,或是未以掛接點的形式出現在 /proc/mounts 中,則傳回 null

    參數
    mountpoint String

    傳回
    ITestDevice.MountPointInfo MountPointInfoERROR(/List),內含「/proc/mounts」中的資訊

    擲回
    DeviceNotAvailableException

    getMountPointInfo

    public  getMountPointInfo ()

    傳回裝置上 /proc/mounts 內的剖析資訊版本

    傳回
    MountPointInfoERROR(/List),內含「/proc/mounts」中的資訊

    擲回
    DeviceNotAvailableException

    getOptions

    public TestDeviceOptions getOptions ()

    擷取裝置的測試選項。

    傳回
    TestDeviceOptions 與受測試裝置相關的 TestDeviceOptions

    getPartitionFreeSpace

    public long getPartitionFreeSpace (String partition)

    決定裝置分區可用空間的輔助方法。

    參數
    partition String

    傳回
    long 可用空間 (以 KB 為單位)

    擲回
    DeviceNotAvailableException

    getPrimaryUserId

    public Integer getPrimaryUserId ()

    傳回主要使用者 ID。

    傳回
    Integer 主要使用者的 userId;如果沒有主要使用者,則為空值。

    擲回
    DeviceNotAvailableException

    getProcessByName

    public ProcessInfo getProcessByName (String processName)

    輔助方法會執行「pidof」和「stat」指令,並傳回包含 PID 和指定程序啟動時間的 ProcessInfo 物件。

    參數
    processName String:處理名稱字串。

    傳回
    ProcessInfo 指定 processName 的 ProcessInfo

    擲回
    DeviceNotAvailableException

    getProcessPid

    public String getProcessPid (String process)

    傳回服務的 pid,如果發生錯誤,則傳回空值。

    參數
    process String:程序名稱字串。

    傳回
    String

    擲回
    DeviceNotAvailableException

    取得產品類型

    public String getProductType ()

    取得此裝置產品類型的便利方法。

    這個方法適用於 ADB 或 Fastboot 模式。

    傳回
    String String 產品類型名稱。不是空值

    擲回
    DeviceNotAvailableException

    getProductVariant

    public String getProductVariant ()

    取得此裝置產品子類的便利方法。

    這個方法適用於 ADB 或 Fastboot 模式。

    傳回
    String String 產品子類名稱或 null (如果無法確定)

    擲回
    DeviceNotAvailableException

    getProperty

    public String getProperty (String name)

    從裝置擷取指定的屬性值。

    參數
    name String:屬性名稱

    傳回
    String 屬性值;如果不存在,則為 null

    擲回
    DeviceNotAvailableException

    getRecoveryMode

    public ITestDevice.RecoveryMode getRecoveryMode ()

    取得裝置目前使用的復原模式。

    傳回
    ITestDevice.RecoveryMode 裝置目前使用的復原模式。

    取得螢幕截圖

    public InputStreamSource getScreenshot (String format)

    擷取裝置的螢幕截圖。建議使用 getScreenshot(format) 而非 JPEG 編碼以縮小尺寸

    參數
    format String:支援的 PNG、JPEG

    傳回
    InputStreamSource 螢幕截圖的 InputStreamSource (格式);如果螢幕截圖失敗,則為 null

    擲回
    DeviceNotAvailableException

    取得螢幕截圖

    public InputStreamSource getScreenshot (long displayId)

    從特定裝置擷取螢幕截圖。格式為 PNG。

    TODO:擴充上述實作方式,支援「format」和「rescale」

    參數
    displayId long:要取得螢幕截圖的畫面 ID。

    傳回
    InputStreamSource 螢幕截圖的 InputStreamSource (格式);如果螢幕截圖失敗,則為 null

    擲回
    DeviceNotAvailableException

    取得螢幕截圖

    public InputStreamSource getScreenshot (String format, 
                    boolean rescale)

    擷取裝置的螢幕截圖。建議改用 getScreenshot(String) 搭配 JPEG 編碼以縮小尺寸。

    參數
    format String:支援的 PNG、JPEG

    rescale boolean:是否應重新縮放螢幕截圖,以縮小產生的圖片尺寸

    傳回
    InputStreamSource 螢幕截圖的 InputStreamSource (格式);如果螢幕截圖失敗,則為 null

    擲回
    DeviceNotAvailableException

    取得螢幕截圖

    public InputStreamSource getScreenshot ()

    擷取裝置的螢幕截圖。

    傳回
    InputStreamSource 螢幕截圖的 InputStreamSource (png 格式);如果螢幕截圖失敗,則為 null

    擲回
    DeviceNotAvailableException

    getSerialNumber

    public String getSerialNumber ()

    取得此裝置序號的便利方法。

    傳回
    String String 序號

    getSetting

    public String getSetting (int userId, 
                    String namespace, 
                    String key)

    傳回所要求設定的值。 命名空間必須是下列其中一個:{"system", "secure", "global"}

    參數
    userId int

    namespace String

    key String

    傳回
    String 與使用者的 namespace:key 相關聯的值。如果找不到,則為空值。

    擲回
    DeviceNotAvailableException

    getSetting

    public String getSetting (String namespace, 
                    String key)

    請參閱 getSetting(int, String, String),並在系統使用者上執行。

    參數
    namespace String

    key String

    傳回
    String

    擲回
    DeviceNotAvailableException

    getSimOperator

    public String getSimOperator ()

    退回 SIM 卡電信業者,如果沒有,或裝置無法使用,則退回空值。

    傳回
    String

    getSimState

    public String getSimState ()

    退回 SIM 卡狀態或空值 (如果無法使用或裝置無法使用)。

    傳回
    String

    getTombstones

    public  getTombstones ()

    從裝置擷取並傳回空值標記清單。需要 Root 權限。

    方法。因此,如果因為任何原因而無法提取任何空值標記,這份清單將會缺漏。只有 DeviceNotAvailableException 會提早終止方法。

    傳回
    Tombstone 檔案清單,如果不是空值標記,則為空白。

    擲回
    DeviceNotAvailableException

    getTotalMemory

    public long getTotalMemory ()

    傳回實體記憶體總大小 (以位元組為單位),如果發生內部錯誤,則傳回 -1

    傳回
    long

    取得解除安裝套件名稱

    public  getUninstallablePackageNames ()

    擷取可解除安裝的應用程式套件名稱。目前定義為非系統套件和更新後的系統套件。

    傳回
    裝置上目前安裝的可解除安裝 String 套件名稱 ERROR(/Set)

    擲回
    DeviceNotAvailableException

    取得快速系統啟動模式 (FastbootErase)

    public boolean getUseFastbootErase ()

    選擇是否要使用 Fastboot 清除或 Quickboot 格式來清除裝置上的分區。

    傳回
    boolean 如果使用 Quickboot 清除格式,則為 true;如果使用 Fastboot 格式,則為 false

    getUserFlags

    public int getUserFlags (int userId)

    尋找並傳回特定使用者的旗標。旗標是由 Android 開放原始碼計畫中的「android.content.pm.UserInfo」類別定義。

    參數
    userId int

    傳回
    int 與提供的 userId 相關聯的旗標 (如果找到的話):-10000。

    擲回
    DeviceNotAvailableException

    getUserInfos

    public  getUserInfos ()

    將 useId 對應至裝置上的 UserInfo。如果裝置的輸出內容不如預期,就會擲回 DeviceRuntimeException

    傳回
    UserInfo 物件清單的內容。

    擲回
    DeviceNotAvailableException

    getUserSerialNumber

    public int getUserSerialNumber (int userId)

    如果出現與 UserId 相關聯的序號,則傳回相關聯的序號;如為其他情況,則傳回 -10000。

    參數
    userId int

    傳回
    int

    擲回
    DeviceNotAvailableException

    handleAllocationEvent

    public IManagedTestDevice.DeviceEventResponse handleAllocationEvent (DeviceEvent event)

    處理指定的 DeviceEvent。可能會將裝置轉換至新的狀態。將會通知 IDeviceMonitor 任何狀態轉換作業。

    處理 DeviceEvent,這不一定能將這部裝置轉換為新的分配狀態。

    參數
    event DeviceEvent

    傳回
    IManagedTestDevice.DeviceEventResponse

    有功能

    public boolean hasFeature (String feature)

    確認裝置是否支援該功能。

    參數
    feature String:直接為「feature:」或「」的格式。

    傳回
    boolean 如果有特徵,則為「true」,否則傳回「false」。

    擲回
    DeviceNotAvailableException

    安裝套件

    public String installPackage (File packageFile, 
                    boolean reinstall, 
                    String... extraArgs)

    在裝置上安裝 Android 套件。

    參數
    packageFile File:要安裝的 APK 檔案

    reinstall boolean:如果應執行重新安裝作業,則為 true

    extraArgs String:要傳遞的額外引數。請參閱「adb shell pm -h」瞭解可用選項。

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    安裝套件

    public String installPackage (File packageFile, 
                    boolean reinstall, 
                    boolean grantPermissions, 
                    String... extraArgs)

    在裝置上安裝 Android 套件。

    注意:只有需要在安裝時明確控制授予執行階段權限的用途時,才應呼叫此函式。

    參數
    packageFile File:要安裝的 APK 檔案

    reinstall boolean:如果應執行重新安裝作業,則為 true

    grantPermissions boolean:如果在安裝時應授予所有執行階段權限

    extraArgs String:要傳遞的額外引數。請參閱「adb shell pm -h」瞭解可用選項。

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    installPackageForUser

    public String installPackageForUser (File packageFile, 
                    boolean reinstall, 
                    int userId, 
                    String... extraArgs)

    為特定使用者在裝置上安裝 Android 套件。

    參數
    packageFile File:要安裝的 APK 檔案

    reinstall boolean:如果應執行重新安裝作業,則為 true

    userId int:要安裝的整數使用者 ID。

    extraArgs String:要傳遞的額外引數。請參閱「adb shell pm -h」瞭解可用選項。

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    installPackageForUser

    public String installPackageForUser (File packageFile, 
                    boolean reinstall, 
                    boolean grantPermissions, 
                    int userId, 
                    String... extraArgs)

    為特定使用者在裝置上安裝 Android 套件。

    注意:只有需要在安裝時明確控制授予執行階段權限的用途時,才應呼叫此函式。

    參數
    packageFile File:要安裝的 APK 檔案

    reinstall boolean:如果應執行重新安裝作業,則為 true

    grantPermissions boolean:如果在安裝時應授予所有執行階段權限

    userId int:要安裝的整數使用者 ID。

    extraArgs String:要傳遞的額外引數。請參閱「adb shell pm -h」瞭解可用選項。

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    invalidatePropertyCache

    public void invalidatePropertyCache ()

    isAdbRoot

    public boolean isAdbRoot ()

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isAdbTcp

    public boolean isAdbTcp ()

    傳回
    boolean

    isAppEnumerationSupported

    public boolean isAppEnumerationSupported ()

    檢查裝置上的平台是否支援應用程式列舉

    傳回
    boolean 如果支援應用程式列舉,則為 True,否則傳回 false

    擲回
    DeviceNotAvailableException

    isBypassLowTargetSdkBlockSupported

    public boolean isBypassLowTargetSdkBlockSupported ()

    檢查裝置上的平台是否支援在應用程式安裝時略過目標 SDK 區塊偏低的問題

    傳回
    boolean 支援略過低目標 SDK 區塊時為 true,否則傳回 false

    擲回
    DeviceNotAvailableException

    isDebugfs 掛接

    public boolean isDebugfsMounted ()

    檢查是否已掛接 debugf。

    傳回
    boolean true (如果已掛接 debugf)

    擲回
    DeviceNotAvailableException

    isDeviceEncrypted (已加密)

    public boolean isDeviceEncrypted ()

    如果裝置已加密,則傳回 。

    傳回
    boolean 如果裝置已加密,請true

    擲回
    DeviceNotAvailableException

    isDirectory

    public boolean isDirectory (String path)

    如果裝置上的路徑是目錄,則傳回 True,否則傳回 false。

    參數
    path String

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isEnableAdbRoot

    public boolean isEnableAdbRoot ()

    傳回
    boolean true (如果應在裝置上啟用 ADB 根層級)

    isEncryption 支援

    public boolean isEncryptionSupported ()

    如果裝置支援加密,則傳回 。

    傳回
    boolean 如果裝置支援加密功能,則為 true

    擲回
    DeviceNotAvailableException

    可執行

    public boolean isExecutable (String fullPath)

    如果裝置上的檔案路徑是可執行的檔案,傳回 True,否則傳回 false。

    參數
    fullPath String

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isFastbootEnabled

    public boolean isFastbootEnabled ()

    如果裝置可使用 Fastboot,則傳回 。

    傳回
    boolean

    無頭

    public boolean isHeadless ()

    如果裝置為無頭 (無螢幕) 則傳回 true,否則傳回 false。

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isHeadlessSystemUserMode

    public boolean isHeadlessSystemUserMode ()

    傳回裝置是否使用無頭系統使用者模式。

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isMainUserPermanentAdmin

    public boolean isMainUserPermanentAdmin ()

    傳回主要使用者是否為永久管理員,且無法刪除或降級為非管理員狀態。

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isMultiUserSupported

    public boolean isMultiUserSupported ()

    決定是否支援多使用者。

    傳回
    boolean 如果支援多位使用者,傳回 true,否則傳回 false

    擲回
    DeviceNotAvailableException

    已安裝 isPackage

    public boolean isPackageInstalled (String packageName, 
                    String userId)

    查詢裝置的特定套件名稱和指定使用者 ID,確認裝置目前是否安裝在該名使用者或未安裝的情況下。

    參數
    packageName String:要檢查是否已安裝的套件。

    userId String:要檢查套件的安裝目標使用者 ID。如為空值,則會使用主要使用者 0。

    傳回
    boolean 如果套件回報為已安裝,則為 True。否則傳回「否」。

    擲回
    DeviceNotAvailableException

    已安裝 isPackage

    public boolean isPackageInstalled (String packageName)

    針對裝置查詢特定套件名稱,確認裝置目前是否已安裝。

    參數
    packageName String

    傳回
    boolean 如果套件回報為已安裝,則為 True。否則傳回「否」。

    擲回
    DeviceNotAvailableException

    isRuntimePermissionSupported

    public boolean isRuntimePermissionSupported ()

    檢查裝置上的平台是否支援授予執行階段權限

    傳回
    boolean 如果支援執行階段權限,則為「true」,否則傳回「false」。

    擲回
    DeviceNotAvailableException

    isStateBootloaderOrFastbootd

    public boolean isStateBootloaderOrFastbootd ()

    如果裝置位於 TestDeviceState#FASTBOOTTestDeviceState.FASTBOOTD,則傳回 true。

    傳回
    boolean

    isUserRunning

    public boolean isUserRunning (int userId)

    檢查特定使用者是否正在執行。

    參數
    userId int

    傳回
    boolean 如果使用者正在執行,則為「true」,其他情況則為 false。

    擲回
    DeviceNotAvailableException

    使用者次要

    public boolean isUserSecondary (int userId)

    根據旗標,傳回指定使用者是否為次要使用者。

    參數
    userId int

    傳回
    boolean 如果使用者是次要使用者,傳回 true,否則傳回 false。

    擲回
    DeviceNotAvailableException

    isUserVisible

    public boolean isUserVisible (int userId)

    檢查指定的使用者是否可見。

    「可見」使用者是指與「人類」使用者互動,因此可以啟動啟動活動 (通常是預設顯示畫面) 的使用者。

    參數
    userId int

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isUserVisibleOnDisplay

    public boolean isUserVisibleOnDisplay (int userId, 
                    int displayId)

    檢查指定的使用者是否出現在指定螢幕上。

    「可見」使用者是指與「人類」使用者互動的使用者,因此可以在該螢幕上啟動啟動活動。

    參數
    userId int

    displayId int

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isVisibleBackgroundUsersOnDefaultDisplaySupported

    public boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

    傳回裝置是否允許使用者在 ERROR(/java.android.view.Display#DEFAULT_DISPLAY) 的背景中啟動。

    如果可以,您可以呼叫 startVisibleBackgroundUser(int, int, boolean),並傳遞 listDisplayIdsForStartingVisibleBackgroundUsers() 傳回的顯示畫面 (其中應包含 ERROR(/java.android.view.Display#DEFAULT_DISPLAY))。

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isVisibleBackgroundUsers 支援

    public boolean isVisibleBackgroundUsersSupported ()

    傳回裝置是否允許使用者在背景啟動畫面。

    如果可以,您可以呼叫 startVisibleBackgroundUser(int, int, boolean),並傳遞 listDisplayIdsForStartingVisibleBackgroundUsers() 傳回的螢幕。

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    isWifiEnabled

    public boolean isWifiEnabled ()

    測試 Wi-Fi 是否已啟用。

    檢查裝置是否已啟用 Wi-Fi。適合在不應透過 Wi-Fi 測試 (例如行動數據測試) 執行前,先斷言 Wi-Fi 狀態。

    傳回
    boolean true (如果 Wi-Fi 已啟用)。false 表示停用

    擲回
    DeviceNotAvailableException

    listDisplayId

    public  listDisplayIds ()

    根據「dumpsys SurfaceFlinger」回報裝置上的可用螢幕 ID 清單,收集清單。

    傳回
    顯示清單。預設一律會傳回預設顯示 0。

    擲回
    DeviceNotAvailableException

    listDisplayIdsForBeginVisibleBackgroundUsers

    public  listDisplayIdsForStartingVisibleBackgroundUsers ()

    取得可用於 start a user visible in the background 的螢幕清單。

    傳回

    擲回
    DeviceNotAvailableException

    列出使用者

    public  listUsers ()

    取得裝置上的使用者清單。如果裝置的輸出內容不如預期,就會擲回 DeviceRuntimeException

    傳回
    使用者 ID 清單

    擲回
    DeviceNotAvailableException

    LogAnrs

    public boolean logAnrs (ITestLogger logger)

    收集並記錄裝置上的 ANR。

    參數
    logger ITestLogger:用於記錄 ANR 的 ITestLogger

    傳回
    boolean 如果記錄成功,則為「true」,否則傳回「false」。

    擲回
    DeviceNotAvailableException

    logBugreport

    public boolean logBugreport (String dataName, 
                    ITestLogger listener)

    協助取得錯誤報告並記錄回報者的輔助方法。

    參數
    dataName String:要回報錯誤報告的名稱。

    listener ITestLogger:用於記錄錯誤報告的 ITestLogger

    傳回
    boolean 如果記錄成功,則為「true」,否則傳回「false」。

    記錄裝置

    public void logOnDevice (String tag, 
                    Log.LogLevel level, 
                    String format, 
                    Object... args)

    在裝置的 logcat 中記錄訊息。此為安全呼叫,即使記錄失敗也不會擲回。

    參數
    tag String:在 logcat 中記錄訊息的標記。

    level Log.LogLevel:Logcat 中訊息的偵錯層級。

    format String:訊息格式。

    args Object:要透過 String.format() 替換的引數。

    mountDebugfs

    public void mountDebugfs ()

    掛接 debugfs。

    擲回
    DeviceNotAvailableException

    非封鎖重新啟動

    public void nonBlockingReboot ()

    發出指令來重新啟動裝置,並在指令完成時返回,ADB 無法再看到裝置。

    擲回
    DeviceNotAvailableException

    postAdbRootAction

    public void postAdbRootAction ()

    覆寫裝置是否在 ADB 根層級之後和裝置恢復連線前需要執行特定動作。預設導入方式不會包含任何新增動作。 在這個階段不保證會啟用 ADB 根層級。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    postAdbUnrootAction

    public void postAdbUnrootAction ()

    覆寫是否在 ADB 啟用 Root 權限後,以及裝置恢復連線前,需要執行某些特定動作。預設實作項目不包含任何其他動作。在這個階段不保證會停用 ADB 根層級。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    postBootSetup

    public void postBootSetup ()

    執行設定,在每次啟動時測試裝置。

    應在裝置完全啟動/可用後呼叫

    在一般情況下,您無須明確呼叫這個方法,因為實作項目應在重新啟動時自動執行這些步驟。

    需要呼叫的位置是裝置因其他事件而重新啟動時 (例如 Quickboot 更新指令完成)

    擲回
    DeviceNotAvailableException

    postInvocationTearDown

    public void postInvocationTearDown (Throwable exception)

    針對裝置特定需求清除的額外步驟,將在叫用完成後執行。

    參數
    exception Throwable:如果有,叫用失敗時引發的最終例外狀況。

    預先叫用設定

    public void preInvocationSetup (IBuildInfo info, 
                    MultiMap<String, String> attributes)

    針對在叫用流程之前,在裝置上執行的裝置專屬設定的額外步驟。

    參數
    info IBuildInfo:裝置的 IBuildInfo

    attributes MultiMap:儲存在叫用內容中的屬性

    擲回
    DeviceNotAvailableException
    TargetSetupError

    拉克迪爾

    public boolean pullDir (String deviceFilePath, 
                    File localDir, 
                    int userId)

    以遞迴方式提取裝置上的目錄內容。

    參數
    deviceFilePath String:遠端來源的絕對檔案路徑

    localDir File:要提取檔案的本機目錄

    userId int:要提取的使用者 ID

    傳回
    boolean true 表示成功提取檔案。否則為 false

    擲回
    DeviceNotAvailableException

    拉克迪爾

    public boolean pullDir (String deviceFilePath, 
                    File localDir)

    以遞迴方式提取裝置上的目錄內容。

    參數
    deviceFilePath String:遠端來源的絕對檔案路徑

    localDir File:要提取檔案的本機目錄

    傳回
    boolean true 表示成功提取檔案。否則為 false

    擲回
    DeviceNotAvailableException

    PullFile

    public boolean pullFile (String remoteFilePath, 
                    File localFile)

    從裝置擷取檔案。

    參數
    remoteFilePath String:裝置上的檔案絕對路徑。

    localFile File:要儲存內容的本機檔案。如為非空白,則會替換內容。

    傳回
    boolean true (如果檔案擷取成功)。否則為 false

    擲回
    DeviceNotAvailableException

    PullFile

    public File pullFile (String remoteFilePath, 
                    int userId)

    擷取裝置外部的檔案、將檔案儲存至本機暫時 ERROR(/File),然後傳回 File

    參數
    remoteFilePath String:裝置上的檔案絕對路徑。

    userId int:要提取的使用者 ID

    傳回
    File 包含裝置檔案內容的 ERROR(/File);如果基於任何原因 (包括主機檔案系統發生問題) 複製失敗,則傳回 null

    擲回
    DeviceNotAvailableException

    PullFile

    public File pullFile (String remoteFilePath)

    擷取裝置外部的檔案、將檔案儲存至本機暫時 ERROR(/File),然後傳回 File

    參數
    remoteFilePath String:裝置上的檔案絕對路徑。

    傳回
    File 包含裝置檔案內容的 ERROR(/File);如果基於任何原因 (包括主機檔案系統發生問題) 複製失敗,則傳回 null

    擲回
    DeviceNotAvailableException

    PullFile

    public boolean pullFile (String remoteFilePath, 
                    File localFile, 
                    int userId)

    從裝置擷取檔案。

    參數
    remoteFilePath String:裝置上的檔案絕對路徑。

    localFile File:要儲存內容的本機檔案。如為非空白,則會替換內容。

    userId int:要提取的使用者 ID

    傳回
    boolean true (如果檔案擷取成功)。否則為 false

    擲回
    DeviceNotAvailableException

    PullFileContents

    public String pullFileContents (String remoteFilePath)

    從裝置擷取檔案,並傳回內容。

    參數
    remoteFilePath String:裝置上的檔案絕對路徑。

    傳回
    String 包含裝置檔案內容的 String;如果基於任何原因 (包括主機檔案系統發生問題) 複製失敗,則傳回 null

    擲回
    DeviceNotAvailableException

    從外部提取檔案

    public File pullFileFromExternal (String remoteFilePath)

    從裝置外部儲存空間擷取檔案、儲存在本機暫時 ERROR(/File) 中,以及傳回該 File 參照的便利方法。

    參數
    remoteFilePath String:裝置上的檔案路徑,相對於裝置的外部儲存空間掛接點

    傳回
    File 包含裝置檔案內容的 ERROR(/File);如果基於任何原因 (包括主機檔案系統發生問題) 複製失敗,則傳回 null

    擲回
    DeviceNotAvailableException

    PushDir

    public boolean pushDir (File localFileDir, 
                    String deviceFilePath, 
                     excludedDirectories)

    將目錄內容以遞迴方式推送到裝置中,但排除部分已篩除的目錄。

    參數
    localFileDir File:要推送的本機目錄

    deviceFilePath String:遠端目的地的絕對檔案路徑

    excludedDirectories :不應推送的排除目錄名稱組合。

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    PushDir

    public boolean pushDir (File localFileDir, 
                    String deviceFilePath)

    將目錄內容以遞迴方式推送到裝置中。

    參數
    localFileDir File:要推送的本機目錄

    deviceFilePath String:遠端目的地的絕對檔案路徑

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    PushDir

    public boolean pushDir (File localFileDir, 
                    String deviceFilePath, 
                    int userId)

    將目錄內容以遞迴方式推送到裝置中。

    參數
    localFileDir File:要推送的本機目錄

    deviceFilePath String:遠端目的地的絕對檔案路徑

    userId int:要推送至哪個使用者 ID

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    推送檔案

    public boolean pushFile (File localFile, 
                    String remoteFilePath, 
                    boolean evaluateContentProviderNeeded)

    pushFile(File, String) 的變化版本,可選擇性考慮評估內容供應器的需求。

    參數
    localFile File:要推送的本機檔案

    remoteFilePath String:遠端目的地絕對檔案路徑

    evaluateContentProviderNeeded boolean:確認是否需要內容供應器

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    推送檔案

    public boolean pushFile (File localFile, 
                    String remoteFilePath)

    將檔案推送至裝置。根據預設,系統會使用內容供應器。

    參數
    localFile File:要推送的本機檔案

    remoteFilePath String:遠端目的地絕對檔案路徑

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    推送檔案

    public boolean pushFile (File localFile, 
                    String remoteFilePath, 
                    int userId)

    將檔案推送至裝置。根據預設,系統會使用內容供應器。

    參數
    localFile File:要推送的本機檔案

    remoteFilePath String:遠端目的地絕對檔案路徑

    userId int:要推送至哪個使用者 ID

    傳回
    boolean 如果檔案已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    推送字串

    public boolean pushString (String contents, 
                    String remoteFilePath)

    將建立自字串的檔案推送至裝置

    參數
    contents String:要推送的檔案內容

    remoteFilePath String:遠端目的地絕對檔案路徑

    傳回
    boolean 如果字串已成功推送,則為 true。否則為 false

    擲回
    DeviceNotAvailableException

    重開。

    public void reboot (String reason)

    將裝置重新啟動進入 ADB 模式,指定 reason 在重新啟動後仍會保留。

    封鎖後,直到裝置可供使用為止。

    查詢 sys.boot.reason 屬性即可取得上次重新啟動原因。

    參數
    reason String:這次重新啟動的原因,或未指定原因 null

    擲回
    DeviceNotAvailableException

    重開。

    public void reboot ()

    重新啟動裝置,進入 ADB 模式。

    直到裝置可供使用為止。

    擲回
    DeviceNotAvailableException

    重新啟動 IntoBootloader

    public void rebootIntoBootloader ()

    重新啟動裝置,進入系統啟動載入程式模式。

    封鎖,直到裝置處於系統啟動載入程式模式為止。

    擲回
    DeviceNotAvailableException

    重啟 IntoFastbootd

    public void rebootIntoFastbootd ()

    重新啟動裝置,進入 Fastbootd 模式。

    封鎖,直到裝置處於快速啟動模式為止。

    擲回
    DeviceNotAvailableException

    重新啟動

    public void rebootIntoRecovery ()

    重新啟動裝置,進入 ADB 復原模式。

    維持封鎖狀態,直到裝置恢復為止

    擲回
    DeviceNotAvailableException

    重新啟動 IntoSideload

    public void rebootIntoSideload ()

    重新啟動裝置,進入 ADB 側載模式 (請注意,這是復原中的特殊模式)

    封鎖,直到裝置進入側載模式為止

    擲回
    DeviceNotAvailableException

    重新啟動 IntoSideload

    public void rebootIntoSideload (boolean autoReboot)

    重新啟動裝置,進入 ADB 側載模式 (請注意,這是復原中的特殊模式)

    封鎖,直到裝置進入側載模式為止

    參數
    autoReboot boolean:是否要在側載後自動重新啟動裝置

    擲回
    DeviceNotAvailableException

    重新啟動 UntilOnline

    public void rebootUntilOnline ()

    這是 reboot() 的替代方案,只會在裝置連上網路後才對 ADB 顯示。

    擲回
    DeviceNotAvailableException

    重新啟動 UntilOnline

    public void rebootUntilOnline (String reason)

    這是 reboot() 的替代方案,只會在裝置連上網路後才對 ADB 顯示。

    參數
    reason String:這次重新啟動的原因,或未指定原因 null

    擲回
    DeviceNotAvailableException

    重新啟動使用者空間

    public void rebootUserspace ()

    僅重新啟動裝置上的使用者空間部分。

    封鎖後,直到裝置可供使用為止。

    警告。使用者空間重新啟動功能目前還在開發中,請自行承擔風險。

    擲回
    DeviceNotAvailableException

    重新啟動 UserspaceUntilOnline

    public void rebootUserspaceUntilOnline ()

    改用 rebootUserspace() ()} 的替代方式,這個做法只會封鎖裝置,直到裝置上線為止 (即 ADB 看得到)。

    擲回
    DeviceNotAvailableException

    復原裝置

    public boolean recoverDevice ()

    嘗試復原裝置通訊。

    傳回
    boolean 如果嘗試復原且成功,則為 True,如果略過復原,則傳回 False

    擲回
    DeviceNotAvailableException (假如我們不再販售裝置)

    註冊裝置動作接收者

    public void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

    為這部裝置註冊 IDeviceActionReceiver

    所有已註冊的 IDeviceActionReceiver 都會在裝置動作開始前和裝置動作結束之前收到通知。

    參數
    deviceActionReceiver IDeviceActionReceiver:要註冊的 IDeviceActionReceiver

    重新掛接系統唯讀

    public void remountSystemReadOnly ()

    將裝置上的系統分區設為唯讀。重新啟動裝置。

    擲回
    DeviceNotAvailableException

    重新掛接 SystemWritable

    public void remountSystemWritable ()

    將裝置上的系統分區設為可寫入。重新啟動裝置。

    擲回
    DeviceNotAvailableException

    重新掛接供應商 ReadOnly

    public void remountVendorReadOnly ()

    將裝置上的供應商分區設為唯讀。重新啟動裝置。

    擲回
    DeviceNotAvailableException

    重新掛接 VendorWritable

    public void remountVendorWritable ()

    將裝置上的供應商分區設為可寫入。重新啟動裝置。

    擲回
    DeviceNotAvailableException

    移除管理員

    public boolean removeAdmin (String componentName, 
                    int userId)

    移除特定使用者的裝置管理員,如果成功則傳回 true,否則傳回 false

    參數
    componentName String:待移除的裝置管理員。

    userId int:裝置管理員所屬使用者。

    傳回
    boolean 如果成功則傳回「是」,否則傳回「否」。

    擲回
    DeviceNotAvailableException

    移除擁有者

    public void removeOwners ()

    盡可能移除所有現有的裝置設定檔擁有者。

    擲回
    DeviceNotAvailableException

    移除使用者

    public boolean removeUser (int userId)

    從裝置中移除特定使用者。

    參數
    userId int:要移除的使用者

    傳回
    boolean 如果成功移除使用者,傳回 true,否則傳回 false。

    擲回
    DeviceNotAvailableException

    ResetContentProvider 設定

    public void resetContentProviderSetup ()

    請重設內容供應器設定的標記,以便再次觸發設定。

    runInstrumentationTests

    public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, 
                    ITestLifeCycleReceiver... listeners)

    使用一或多個以參數傳遞的事件監聽器執行 ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection)) 的便利方法。

    參數
    runner IRemoteAndroidTestRunner:執行測試的 IRemoteAndroidTestRunner

    listeners ITestLifeCycleReceiver:測試結果事件監聽器

    傳回
    boolean 如果測試指令已完成,則為 true。如果無法完成,但復原成功,則為 false

    擲回
    DeviceNotAvailableException

    runInstrumentationTests

    public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, 
                     listeners)

    執行檢測設備測試並提供裝置復原功能。

    如果測試執行完成,裝置連線中斷,且復原成功,所有事件監聽器都會收到 testRunFailed 和「false」回應。測試指令不會重新執行。呼叫端可視需要重試。

    如果與裝置在測試執行完成前中斷,且復原作業失敗,則所有事件監聽器都會收到 testRunFailed 通知,並擲回 DeviceNotAvailableException。

    參數
    runner IRemoteAndroidTestRunner:執行測試的 IRemoteAndroidTestRunner

    listeners :測試結果事件監聽器

    傳回
    boolean 如果測試指令已完成,則為 true。如果因裝置通訊例外狀況而無法完成,則為 false,但復原成功

    擲回
    DeviceNotAvailableException

    runInstrumentationTestsAsUser

    public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, 
                    int userId, 
                     listeners)

    ERROR(ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection)/com.android.tradefed.device.ITestDevice#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection) ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection)) 相同,但為特定使用者執行測試。

    參數
    runner IRemoteAndroidTestRunner

    userId int

    listeners

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    runInstrumentationTestsAsUser

    public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, 
                    int userId, 
                    ITestLifeCycleReceiver... listeners)

    ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, ITestLifeCycleReceiver...) 相同,但為特定使用者執行測試。

    參數
    runner IRemoteAndroidTestRunner

    userId int

    listeners ITestLifeCycleReceiver

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    setConfiguration

    public void setConfiguration (IConfiguration configuration)

    插入使用中的 IConfiguration

    參數
    configuration IConfiguration

    setConnectionAvdInfo

    public final void setConnectionAvdInfo (GceAvdInfo avdInfo)

    參數
    avdInfo GceAvdInfo

    設定日期

    public void setDate (Date date)

    設定裝置上的日期

    注意:必須啟用 Root 權限才能設定裝置日期

    參數
    date Date:指定特定日期;如果使用 null,則會使用代管日期

    擲回
    DeviceNotAvailableException

    setDeviceOwner

    public boolean setDeviceOwner (String componentName, 
                    int userId)

    將裝置管理員元件設為特定使用者的裝置擁有者。

    參數
    componentName String:裝置管理員成為裝置擁有者的權限。

    userId int:裝置擁有者所屬使用者的身分。

    傳回
    boolean 如果成功則傳回「是」,否則傳回「否」。

    擲回
    DeviceNotAvailableException

    設定裝置狀態

    public void setDeviceState (TestDeviceState deviceState)

    更新裝置狀態。

    參數
    deviceState TestDeviceStateTestDeviceState

    setEmulatorOutputStream

    public void setEmulatorOutputStream (SizeLimitedOutputStream output)

    針對模擬器,請將 SizeLimitedOutputStream 設定為記錄輸出

    參數
    output SizeLimitedOutputStream:記錄輸出內容

    setEmulatorProcess

    public void setEmulatorProcess (Process p)

    當這部裝置是模擬器時,設定 Process

    參數
    p Process

    setFastbootEnabled

    public void setFastbootEnabled (boolean fastbootEnabled)

    設定裝置的 Fastboot 選項。應在首次分配裝置時設定。

    參數
    fastbootEnabled boolean:指出裝置是否適用 Fastboot

    設定快速系統啟動路徑 (FastbootPath)

    public void setFastbootPath (String fastbootPath)

    設定應使用 Fastboot 二進位檔的路徑。 仍須將 isFastbootEnabled() 設為 true,才能啟用 Quickboot 函式。

    參數
    fastbootPath String

    setIDevice

    public void setIDevice (IDevice newDevice)

    更新與這個 ITestDevice 相關聯的 IDevice。

    新的 IDevice 實體裝置必須與目前參照項目相同。如果 DDMS 分配了新的 IDevice,系統就會呼叫此方法

    參數
    newDevice IDeviceIDevice

    setLogStartDelay

    public void setLogStartDelay (int delay)

    設定開始為線上裝置 logcat 擷取作業前等待的時間 (毫秒)。

    參數
    delay int:延遲時間 (毫秒)

    setOptions

    public void setOptions (TestDeviceOptions options)

    設定裝置的 TestDeviceOptions

    參數
    options TestDeviceOptions

    setProperty

    public boolean setProperty (String propKey, 
                    String propValue)

    設定裝置上的指定的屬性值。需要 ADB 根為 true。

    參數
    propKey String:要設定的鍵。

    propValue String:要設定的屬性值。

    傳回
    boolean 如果 setprop 指令執行成功,會傳回 True,否則會傳回 False。

    擲回
    DeviceNotAvailableException

    設定復原

    public void setRecovery (IDeviceRecovery recovery)

    設定要用於此裝置的 IDeviceRecovery。應在首次分配裝置時設定。

    參數
    recovery IDeviceRecoveryIDeviceRecovery

    setRecoveryMode 模式

    public void setRecoveryMode (ITestDevice.RecoveryMode mode)

    設定裝置要使用的目前復原模式。

    用於控管發生裝置通訊問題時要使用的復原方法。建議只在必要時才使用這個方法,例如架構故障時等

    參數
    mode ITestDevice.RecoveryMode:是否啟用「復原至僅限線上」模式。

    設定

    public void setSetting (String namespace, 
                    String key, 
                    String value)

    請參閱 setSetting(int, String, String, String),並在系統使用者上執行。

    參數
    namespace String

    key String

    value String

    擲回
    DeviceNotAvailableException

    設定

    public void setSetting (int userId, 
                    String namespace, 
                    String key, 
                    String value)

    將設定值新增至特定使用者的命名空間。部分設定只能在重新啟動後使用。命名空間必須是下列其中一個:{"system", "secure", "global"}

    參數
    userId int

    namespace String

    key String

    value String

    擲回
    DeviceNotAvailableException

    setTestLogger

    public void setTestLogger (ITestLogger testLogger)

    插入 ITestLogger 例項

    參數
    testLogger ITestLogger

    設定使用 FastbootErase

    public void setUseFastbootErase (boolean useFastbootErase)

    設定是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。

    參數
    useFastbootErase boolean:如果應使用 Quickboot 清除格式,則設為 true;如果應使用 Fastboot 格式,則設為 false

    開始 Logcat

    public void startLogcat ()

    開始在背景擷取裝置的 Logcat 輸出內容。

    如果已擷取 Logcat 輸出內容,就不會有任何作用。之後可以透過 getLogcat 擷取資料。

    如果裝置不再使用,就必須呼叫 stopLogcat()

    在 TF 叫用結構定義中時,您通常不需要呼叫 startLogcat()stopLogcat(),因為 TF 架構會啟動及停止 logcat。

    startUser

    public boolean startUser (int userId)

    如果特定使用者目前已停止,在背景啟動該使用者。如果使用者已在背景執行,此方法即為 NOOP。

    參數
    userId int:要在背景啟動的使用者

    傳回
    boolean 如果使用者成功在背景啟動,則傳回 true。

    擲回
    DeviceNotAvailableException

    startUser

    public boolean startUser (int userId, 
                    boolean waitFlag)

    如果特定使用者目前已停止,在背景啟動該使用者。如果使用者已在背景執行,此方法即為 NOOP。可提供額外的旗標,等待作業生效。

    參數
    userId int:要在背景啟動的使用者

    waitFlag boolean:會讓指令等待使用者啟動並解鎖。

    傳回
    boolean 如果使用者成功在背景啟動,則傳回 true。

    擲回
    DeviceNotAvailableException

    startVisibleBackgroundUser

    public boolean startVisibleBackgroundUser (int userId, 
                    int displayId, 
                    boolean waitFlag)

    在背景啟動特定使用者,並顯示在指定的螢幕畫面中 (即允許使用者在該螢幕上啟動活動)。

    注意: 這個指令不會檢查使用者是否存在、螢幕是否可用、device supports such feature 等。

    參數
    userId int:要在背景啟動的使用者

    displayId int:開始向使用者顯示的顯示畫面

    waitFlag boolean:會讓指令等待使用者啟動並解鎖。

    傳回
    boolean true:如果使用者成功啟動畫面,就會在背景顯示。

    擲回
    DeviceNotAvailableException

    stopEmulator 輸出

    public void stopEmulatorOutput ()

    關閉並刪除模擬器輸出內容。

    停止 Logcat

    public void stopLogcat ()

    停止從裝置擷取 Logcat 輸出內容,並捨棄目前儲存的 Logcat 資料。

    如果未擷取 Logcat 輸出內容,就不會產生任何效果。

    stopUser

    public boolean stopUser (int userId)

    停止特定使用者。如果使用者已停止使用,此方法將視為 NOOP。無法阻止目前的使用者和系統使用者。

    參數
    userId int:要停止的使用者。

    傳回
    boolean 如果使用者成功停止,則為 true。

    擲回
    DeviceNotAvailableException

    stopUser

    public boolean stopUser (int userId, 
                    boolean waitFlag, 
                    boolean forceFlag)

    停止特定使用者。可提供額外的標記,等待作業生效並強制終止使用者。無法阻止目前的使用者和系統使用者。

    參數
    userId int:要停止的使用者。

    waitFlag boolean:讓指令等待使用者停止。

    forceFlag boolean:強制停止使用者。

    傳回
    boolean 如果使用者成功停止,則為 true。

    擲回
    DeviceNotAvailableException

    SwitchToAdbTcp

    public String switchToAdbTcp ()

    將裝置切換至 adb-over-tcp 模式。

    傳回
    String tcp 序號或 null (如果無法切換裝置)

    擲回
    DeviceNotAvailableException

    切換至 AdbUsb

    public boolean switchToAdbUsb ()

    將裝置切換到 ADB 模式。

    傳回
    boolean 如果切換成功,則為 true,否則為 false

    擲回
    DeviceNotAvailableException

    SwitchUser

    public boolean switchUser (int userId)

    切換至預設逾時的另一個 UserId。switchUser(int, long)

    參數
    userId int

    傳回
    boolean 如果新的 userId 與 userId 提供者相符,則傳回「是」。否則傳回「否」。

    擲回
    DeviceNotAvailableException

    SwitchUser

    public boolean switchUser (int userId, 
                    long timeout)

    切換到另一個設有逾時期限的 UserId。 成功變更使用者後,嘗試停用鍵盤鎖。

    參數
    userId int

    timeout long:在切換使用者失敗前等待 false。

    傳回
    boolean 如果新的 userId 與 userId 提供者相符,則傳回「是」。否則傳回「否」。

    擲回
    DeviceNotAvailableException

    同步處理檔案

    public boolean syncFiles (File localFileDir, 
                    String deviceFilePath)

    逐步將本機檔案目錄的內容同步到裝置。

    比較本機檔案的時間戳記與遠端對等項目,決定要推送的檔案。系統只會將「較新」或不存在的檔案推送至裝置。因此,如果裝置上的檔案已經是最新版本,負擔就應相對較小。

    系統會忽略隱藏的檔案 (名稱開頭為「.」)。

    使用範例:syncFiles("/tmp/files", "/sdcard") 不存在時,將會建立一個 /sdcard/files 目錄,然後將 /tmp/files 內容以遞迴方式推送至 /sdcard/files。

    參數
    localFileDir File:包含要遞迴推送檔案的本機檔案目錄。

    deviceFilePath String:遠端目的地絕對檔案路徑根目錄。該檔案路徑中的所有目錄都必須可供讀取。舉例來說,如果 ADB 不是 Root 權限,就無法推送至 /data/local/tmp

    傳回
    boolean true (如果檔案已成功同步處理)。否則為 false

    擲回
    DeviceNotAvailableException

    採用錯誤報告

    public Bugreport takeBugreport ()

    取得錯誤報告,並在 Bugreport 物件中傳回以進行處理。有問題時會傳回空值。需要透過 Bugreport.close() 清除 Bugreport 物件中參照的檔案。

    傳回
    Bugreport

    解除安裝套件

    public String uninstallPackage (String packageName)

    從裝置上解除安裝 Android 套件。

    參數
    packageName String:要解除安裝的 Android 套件

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    解除安裝套件 ForUser

    public String uninstallPackageForUser (String packageName, 
                    int userId)

    為特定使用者在裝置上解除安裝 Android 套件。

    參數
    packageName String:要解除安裝的 Android 套件

    userId int:要解除安裝的整數使用者 ID。

    傳回
    String 包含錯誤代碼的 String;如果成功則傳回 null

    擲回
    DeviceNotAvailableException

    解鎖裝置

    public boolean unlockDevice ()

    如果裝置處於加密狀態,就會解鎖裝置。

    這個方法可能會重新啟動架構,但不會呼叫 postBootSetup()。因此,這個方法傳回時,裝置可能還沒有完全可供測試。

    傳回
    boolean true 表示成功,或裝置未經加密。

    擲回
    DeviceNotAvailableException

    卸載 Debugfs

    public void unmountDebugfs ()

    卸載偵錯 f。

    擲回
    DeviceNotAvailableException

    waitForBootComplete

    public boolean waitForBootComplete (long timeOut)

    在裝置啟動完成標記設定前封鎖。

    參數
    timeOut long:等待標記設定時間 (毫秒)

    傳回
    boolean 如果裝置的開機完成標記是在逾時內設定,則為 true

    擲回
    DeviceNotAvailableException

    waitForDeviceAvailable

    public boolean waitForDeviceAvailable ()

    等待裝置回應且可供測試。使用預設逾時。

    傳回
    boolean 如果裝置可以取得,則為 True;如果復原功能已停用且無法使用,則為 False。

    擲回
    DeviceNotAvailableException

    waitForDeviceAvailable

    public boolean waitForDeviceAvailable (long waitTime)

    等待裝置回應且可供測試。

    參數
    waitTime long:等待時間 (毫秒)

    傳回
    boolean 如果裝置可以取得,則為 True;如果復原功能已停用且無法使用,則為 False。

    擲回
    DeviceNotAvailableException

    waitForDeviceAvailableInRecoveryPath

    public boolean waitForDeviceAvailableInRecoverPath (long waitTime)

    等待裝置回應且可正常使用,而不考慮復原路徑。

    參數
    waitTime long

    傳回
    boolean 如果裝置可供使用,則為 True;如果無法使用,則為 False。

    擲回
    DeviceNotAvailableException

    waitForDeviceBootloader

    public void waitForDeviceBootloader ()

    封鎖,直到裝置透過 Fastboot 看見為止。使用預設逾時設定。

    擲回
    DeviceNotAvailableException

    waitForDeviceInRecovery

    public boolean waitForDeviceInRecovery (long waitTime)

    讓裝置處於「ADB 復原」狀態 (請注意,這與 IDeviceRecovery 不同)。

    參數
    waitTime long:等待時間 (毫秒)

    傳回
    boolean 如果裝置在時間到期前啟動復原程序,則為 true。另有 false

    waitForDeviceInSideload

    public boolean waitForDeviceInSideload (long waitTime)

    裝置處於「ADB 側載」狀態的封鎖

    參數
    waitTime long:等待時間 (毫秒)

    傳回
    boolean 如果裝置在時間到期前啟動並側載,則為 true。另有 false

    waitForDeviceNotAvailable

    public boolean waitForDeviceNotAvailable (long waitTime)

    因 ADB 缺少裝置而無法使用的裝置

    參數
    waitTime long:等待時間 (毫秒)

    傳回
    boolean 如果裝置未在時間到期前釋出,請true。 另有 false

    waitForDeviceOnline

    public void waitForDeviceOnline ()

    封鎖,直到透過 ADB 顯示裝置為止。使用預設逾時

    請注意,裝置在執行完成後不一定能回應指令。請改用 waitForDeviceAvailable()

    擲回
    DeviceNotAvailableException

    waitForDeviceOnline

    public void waitForDeviceOnline (long waitTime)

    封鎖,直到透過 ADB 顯示裝置為止。

    請注意,裝置在執行完成後不一定能回應指令。請改用 waitForDeviceAvailable()

    參數
    waitTime long:等待時間 (毫秒)

    擲回
    DeviceNotAvailableException

    waitForDeviceShell

    public boolean waitForDeviceShell (long waitTime)

    等待裝置回應基本 ADB 殼層指令。

    參數
    waitTime long:等待時間 (毫秒)

    傳回
    boolean 如果裝置在 waitTime 前回應,則為 true

    保護方法

    addExtraConnectionBuilderArgs

    protected void addExtraConnectionBuilderArgs (DefaultConnection.ConnectionBuilder builder)

    參數
    builder DefaultConnection.ConnectionBuilder

    BuildAdbShellCommand

    protected String[] buildAdbShellCommand (String command, 
                    boolean forceExitStatusDetection)

    為指定的 ADB 殼層指令工作階段和 args 建構 OS 指令

    參數
    command String

    forceExitStatusDetection boolean

    傳回
    String[]

    checkApiLevelAinst

    protected void checkApiLevelAgainst (String feature, 
                    int strictMinLevel)

    參數
    feature String

    strictMinLevel int

    建立重新開機裝置動作

    protected NativeDevice.RebootDeviceAction createRebootDeviceAction (NativeDevice.RebootMode rebootMode, 
                    String reason)

    建立要在執行重新啟動動作時使用的 RebootDeviceAction

    參數
    rebootMode NativeDevice.RebootMode:這次重新啟動的模式。

    reason String:用於重新啟動。

    傳回
    NativeDevice.RebootDeviceAction 已建立的 RebootDeviceAction

    建立執行工具

    protected IRunUtil createRunUtil ()

    傳回
    IRunUtil

    多廣告重新啟動 (doAdbReboot)

    protected void doAdbReboot (NativeDevice.RebootMode rebootMode, 
                    String reason)

    執行 ADB 重新啟動。

    參數
    rebootMode NativeDevice.RebootMode:這次重新啟動的模式。

    reason String:用於重新啟動。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    確保執行階段權限支援

    protected void ensureRuntimePermissionSupported ()

    輔助方法在不支援執行階段權限時擲回例外狀況

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    getApiLevelSafe

    protected int getApiLevelSafe ()

    傳回
    int

    getLogger

    protected ITestLogger getLogger ()

    傳回
    ITestLogger

    getRunUtil

    protected IRunUtil getRunUtil ()

    取得要使用的 RunUtil 例項。

    傳回
    IRunUtil

    InitialConnection

    protected void initializeConnection (IBuildInfo info, 
                    MultiMap<String, String> attributes)

    參數
    info IBuildInfo

    attributes MultiMap

    擲回
    DeviceNotAvailableException
    TargetSetupError

    內部 GetProperty

    protected String internalGetProperty (String propName, 
                    String fastbootVar, 
                    String description)

    根據預設,從 ddmlib 快取擷取裝置屬性,並根據裝置是否處於 Fastboot 狀態改回使用「adb shell getprop」或「fastboot getvar」。

    參數
    propName String:`adb shell getprop` 傳回的裝置屬性名稱

    fastbootVar String:要查詢的對等 Fastboot 變數名稱。如果為 null,則不會嘗試 Quickboot 查詢

    description String:變數的簡單說明。第一個字母應為大寫。

    傳回
    String 字串 (可能是 null 或空白),包含指定屬性的值

    擲回
    DeviceNotAvailableException

    isInRebootCallback

    protected boolean isInRebootCallback ()

    傳回是否正在執行重新啟動回呼。如果設為 true,所有用於重新啟動的公用 API 都應該停用。

    傳回
    boolean

    新生兒

    protected boolean isNewer (File localFile, 
                    IFileEntry entry)

    如果本機檔案比遠端檔案更新,則傳回 trueIFileEntry 的精確度為「分鐘」,如果兩者相同,就會視為較新的檔案。

    參數
    localFile File

    entry IFileEntry

    傳回
    boolean

    通知重新啟動

    protected void notifyRebootEnded ()

    通知所有IDeviceActionReceiver關於重新啟動結束事件。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    通知重新啟動

    protected void notifyRebootStarted ()

    通知所有 IDeviceActionReceiver 關於重新啟動開始事件。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    runDeviceAction

    protected boolean performDeviceAction (String actionDescription, 
                    NativeDevice.DeviceAction action, 
                    int retryAttempts)

    在這部裝置上執行動作。如果動作失敗,會嘗試復原裝置,並視需要重試指令。

    參數
    actionDescription String:要執行動作的簡短說明。只會用於記錄。

    action NativeDevice.DeviceAction:要執行的動作

    retryAttempts int:失敗時嘗試重試動作,但復原成功

    傳回
    boolean 如果動作執行成功,則為true

    擲回
    DeviceNotAvailableException 如果復原失敗,或嘗試失敗的次數已達上限,則會出現此情況

    發布後重新啟動

    protected void postAdbReboot ()

    重新啟動後可採取的額外動作。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    prePostBootSetup

    protected void prePostBootSetup ()

    允許各個裝置類型 (AndroidNativeDevice、TestDevice) 針對特定啟動後設定覆寫這個方法。

    擲回
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    PullFileInternal

    protected boolean pullFileInternal (String remoteFilePath, 
                    File localFile)

    參數
    remoteFilePath String

    localFile File

    傳回
    boolean

    擲回
    DeviceNotAvailableException

    設定時鐘

    protected void setClock (Clock clock)

    設定要使用的時鐘執行個體。

    參數
    clock Clock

    setMicrodroidProcess

    protected void setMicrodroidProcess (Process process)

    將 TestDevice 標示為 microdroid,並設定其客戶 ID。

    參數
    process Process:Microdroid VM 的程序。

    setTestDeviceOptions

    protected void setTestDeviceOptions ( deviceOptions)

    參數
    deviceOptions

    簡易快速系統啟動命令

    protected CommandResult simpleFastbootCommand (long timeout, 
                     envVarMap, 
                    String[] fullCmd)

    使用環境變數執行簡單的 Fastboot 指令,並回報指令的狀態。

    參數
    timeout long

    envVarMap

    fullCmd String

    傳回
    CommandResult

    簡易快速系統啟動命令

    protected CommandResult simpleFastbootCommand (long timeout, 
                    String[] fullCmd)

    這個外掛程式能執行簡單的 Fastboot 指令,並回報指令的狀態。

    參數
    timeout long

    fullCmd String

    傳回
    CommandResult

    waitForDeviceNotAvailable

    protected boolean waitForDeviceNotAvailable (String operationDesc, 
                    long time)

    等待看看裝置無法使用 (停止向 ADB 回報)。

    參數
    operationDesc String:正在等待無法使用的作業名稱。

    time long:等待無法使用的時間。

    傳回
    boolean 如果裝置無法使用,則為「是」。