NativeDevice
public
class
NativeDevice
extends Object
implements
IConfigurationReceiver,
IManagedTestDevice,
ITestLoggerReceiver
java.lang.Object | |
↳ | com.android.tradefed.device.NativeDevice |
ITestDevice
非完整堆疊 Android 裝置的預設實作方式。
摘要
常數 | |
---|---|
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)
可建立 |
公用方法 | |
---|---|
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(
連線至 Wi-Fi 網路。 |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk)
連線至 Wi-Fi 網路。 |
boolean
|
connectToWifiNetwork(
連線至 Wi-Fi 網路.f |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)
連線至 Wi-Fi 網路。 |
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)
只會在裝置時連線的 |
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)
只會在裝置時連線的 |
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)
移除已註冊的 |
boolean
|
deviceSoftRestarted(ProcessInfo prevSystemServerProcess)
透過比較目前的 system_server 與
前一個 system_server |
boolean
|
deviceSoftRestartedSince(long utcEpochTime, TimeUnit timeUnit)
透過輔助方法,檢查裝置自 UTC 時間 (自 Epoch 紀元時間起算) 後是否自動重新啟動
裝置及其 |
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,
此輔助方法可在指定逾時的情況下,將 ADB 指令當做系統指令執行。 |
String
|
executeAdbCommand(String... cmdArgs)
此輔助方法會將 ADB 指令當做系統指令來執行。 |
CommandResult
|
executeFastbootCommand(String... cmdArgs)
這個輔助方法會將 Fastboot 指令做為系統指令執行,並將逾時值預設為 2 分鐘。 |
CommandResult
|
executeFastbootCommand(long timeout, String... cmdArgs)
輔助方法會將 Fastboot 指令做為系統指令執行。 |
CommandResult
|
executeLongFastbootCommand(String... cmdArgs)
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令。 |
CommandResult
|
executeLongFastbootCommand(
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令 環境變數 |
String
|
executeShellCommand(String command)
此輔助方法可執行 ADB 殼層指令,並以 |
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
|
executeShellV2Command(String cmd, OutputStream pipeToOutput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 |
CommandResult
|
executeShellV2Command(String cmd, File pipeAsInput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 |
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)
輔助方法會收集啟動記錄地圖,其中包含啟動時間和啟動原因 (自提供的 自 Epoch 紀元時間的裝置和指定時間單位起算的時間。 |
String
|
getBootloaderVersion()
取得這部裝置的系統啟動載入程式版本的便利方法。 |
InputStreamSource
|
getBugreport()
從裝置擷取錯誤報告。 |
InputStreamSource
|
getBugreportz()
從裝置擷取錯誤報告。 |
String
|
getBuildAlias()
擷取裝置目前執行版本的別名。 |
String
|
getBuildFlavor()
擷取裝置的建構變種版本。 |
String
|
getBuildId()
擷取裝置目前執行的版本。 |
String
|
getBuildSigningKeys()
傳回用來簽署裝置圖片的金鑰類型 一般來說,Android 裝置可使用測試金鑰 (例如 Android 開放原始碼計畫) 或發布金鑰進行簽署 (由個別裝置製造商控管) |
DeviceDescriptor
|
getCachedDeviceDescriptor()
如果裝置已配置,則傳回快取的 |
DeviceDescriptor
|
getCachedDeviceDescriptor(boolean shortDescriptor)
如果裝置已配置,則傳回快取的 |
String[]
|
getChildren(String path)
替代 |
AbstractConnection
|
getConnection()
與裝置相關聯的目前連線, |
ContentProviderHandler
|
getContentProvider(int userId)
傳回 |
DeviceFoldableState
|
getCurrentFoldableState()
傳回裝置目前的摺疊式裝置狀態;如果發生問題,則傳回空值。 |
int
|
getCurrentUser()
傳回目前執行中使用者的 ID。 |
String
|
getDeviceClass()
取得裝置類別。 |
long
|
getDeviceDate()
傳回裝置日期 (自 Epoch 紀元時間起算,以毫秒為單位)。 |
DeviceDescriptor
|
getDeviceDescriptor()
從裝置資訊中傳回 |
DeviceDescriptor
|
getDeviceDescriptor(boolean shortDescriptor)
從裝置資訊中傳回 |
TestDeviceState
|
getDeviceState()
取得裝置的狀態。 |
long
|
getDeviceTimeOffset(Date date)
協助取得裝置和指定 |
InputStreamSource
|
getEmulatorOutput()
取得模擬器 stdout 和 stderr 串流 |
Process
|
getEmulatorProcess()
傳回與此模擬器對應的 |
final
File
|
getExecuteShellCommandLog()
包含所有 |
long
|
getExternalStoreFreeSpace()
判斷裝置外部儲存空間可用空間的輔助方法。 |
String
|
getFastbootPath()
傳回目前使用的 Fastboot 二進位檔的路徑。 |
String
|
getFastbootProductType()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。 |
String
|
getFastbootProductVariant()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。 |
String
|
getFastbootSerialNumber()
傳回 Quickboot 模式的序號。 |
String
|
getFastbootVariable(String variableName)
從裝置擷取指定的 Fastboot 變數值。 |
String
|
getFastbootVersion()
傳回目前使用的 Quickboot 二進位檔的版本字串。 |
IFileEntry
|
getFileEntry(String path)
擷取裝置上遠端檔案的參照。 |
IFileEntry
|
getFileEntry(FileListingService.FileEntry entry)
從非根路徑取得 |
|
getFoldableStates()
傳回裝置上的摺疊式裝置狀態清單。 |
IDevice
|
getIDevice()
傳回相關聯 ddmlib |
|
getInstalledPackageNames()
擷取裝置中顯示的應用程式套件名稱。 |
long
|
getIntProperty(String name, long defaultValue)
傳回裝置中指定屬性的整數值。 |
String
|
getIpAddress()
取得裝置的 IP 位址。 |
KeyguardControllerState
|
getKeyguardState()
傳回物件即可取得鍵盤防護目前的狀態;如果不支援,則傳回空值。 |
long
|
getLastExpectedRebootTimeMillis()
傳回 Tradefed API 上次從 EPOCH 至今觸發重新啟動的時間 (單位為毫秒),
由 |
int
|
getLaunchApiLevel()
取得裝置第一個啟動的 API 級別。 |
InputStreamSource
|
getLogcat()
取得 Logcat 資料的快照串流。 |
InputStreamSource
|
getLogcat(int maxBytes)
取得最近 |
InputStreamSource
|
getLogcatDump()
取得裝置目前 logcat 的轉儲資料。 |
InputStreamSource
|
getLogcatSince(long date)
擷取已擷取 Logcat 資料的快照串流 (從提供的日期開始)。 |
String
|
getMacAddress()
傳回裝置的 MAC 位址;如果無法從裝置查詢,則傳回空值。 |
Integer
|
getMainUserId()
傳回主要使用者 ID。 |
|
getMainlineModuleInfo()
取得裝置上安裝的主系列模組相關資訊。 |
int
|
getMaxNumberOfRunningUsersSupported()
取得支援同時執行的使用者數量上限。 |
int
|
getMaxNumberOfUsersSupported()
取得支援的使用者人數上限。 |
Process
|
getMicrodroidProcess()
|
IDeviceStateMonitor
|
getMonitor()
傳回與裝置相關聯的 |
String
|
getMountPoint(String mountName)
傳回掛接點。 |
ITestDevice.MountPointInfo
|
getMountPointInfo(String mountpoint)
傳回與指定掛接點路徑相對應的 |
|
getMountPointInfo()
傳回裝置上 /proc/mounts 內的剖析資訊版本 |
TestDeviceOptions
|
getOptions()
擷取裝置的測試選項。 |
long
|
getPartitionFreeSpace(String partition)
決定裝置分區可用空間的輔助方法。 |
Integer
|
getPrimaryUserId()
傳回主要使用者 ID。 |
ProcessInfo
|
getProcessByName(String processName)
輔助方法會執行「pidof」以及「統計資料」並傳回 |
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)
請參閱 |
String
|
getSimOperator()
退回 SIM 卡電信業者,如果沒有,或裝置無法使用,則退回空值。 |
String
|
getSimState()
退回 SIM 卡狀態或空值 (如果無法使用或裝置無法使用)。 |
|
getTombstones()
從裝置擷取並傳回空值標記清單。 |
long
|
getTotalMemory()
傳回實體記憶體總大小 (以位元組為單位),如果發生內部錯誤,則傳回 -1 |
String
|
getTrackingSerial()
為進行裝置管理,請取得用於追蹤裝置的序號。 |
|
getUninstallablePackageNames()
擷取可解除安裝的應用程式套件名稱。 |
boolean
|
getUseFastbootErase()
選擇是否要使用 Fastboot 清除或 Quickboot 格式來清除裝置上的分區。 |
int
|
getUserFlags(int userId)
尋找並傳回特定使用者的旗標。 |
|
getUserInfos()
將 useId 對應至裝置上的 |
int
|
getUserSerialNumber(int userId)
如果出現與 UserId 相關聯的序號,則傳回相關聯的序號;如為其他情況,則傳回 -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()
如果裝置位於 |
boolean
|
isUserRunning(int userId)
檢查特定使用者是否正在執行。 |
boolean
|
isUserSecondary(int userId)
根據旗標,傳回指定使用者是否為次要使用者。 |
boolean
|
isUserVisible(int userId)
檢查指定的使用者是否可見。 |
boolean
|
isUserVisibleOnDisplay(int userId, int displayId)
檢查指定的使用者是否出現在指定的螢幕上。 |
boolean
|
isVisibleBackgroundUsersOnDefaultDisplaySupported()
傳回裝置是否允許使用者在背景開啟 |
boolean
|
isVisibleBackgroundUsersSupported()
傳回裝置是否允許使用者在背景啟動畫面。 |
boolean
|
isWifiEnabled()
測試 Wi-Fi 是否已啟用。 |
|
listDisplayIds()
根據「dumpsys」回報在裝置上的可用螢幕 ID 清單 SurfaceFlinger」。 |
|
listDisplayIdsForStartingVisibleBackgroundUsers()
取得可用於 |
|
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)
擷取裝置上的檔案並儲存在本機暫存 |
File
|
pullFile(String remoteFilePath)
擷取裝置上的檔案並儲存在本機暫存 |
boolean
|
pullFile(String remoteFilePath, File localFile, int userId)
從裝置擷取檔案。 |
String
|
pullFileContents(String remoteFilePath)
從裝置擷取檔案,並傳回內容。 |
File
|
pullFileFromExternal(String remoteFilePath)
從裝置外部儲存空間擷取檔案的便捷方法,會將檔案儲存在
本機暫時 |
boolean
|
pushDir(File localFileDir, String deviceFilePath,
以遞迴方式將目錄內容推送至裝置,同時排除某些 遭到篩除。 |
boolean
|
pushDir(File localFileDir, String deviceFilePath)
將目錄內容以遞迴方式推送到裝置中。 |
boolean
|
pushDir(File localFileDir, String deviceFilePath, int userId)
將目錄內容以遞迴方式推送到裝置中。 |
boolean
|
pushFile(File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)
|
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 模式,指定 |
void
|
reboot()
重新啟動裝置,進入 ADB 模式。 |
void
|
rebootIntoBootloader()
重新啟動裝置,並進入系統啟動載入程式模式。 |
void
|
rebootIntoFastbootd()
重新啟動裝置,進入 Fastbootd 模式。 |
void
|
rebootIntoRecovery()
重新啟動裝置,進入 ADB 復原模式。 |
void
|
rebootIntoSideload()
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式) 封鎖,直到裝置進入側載模式為止 |
void
|
rebootIntoSideload(boolean autoReboot)
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式) 封鎖,直到裝置進入側載模式為止 |
void
|
rebootUntilOnline()
這是 |
void
|
rebootUntilOnline(String reason)
這是 |
void
|
rebootUserspace()
僅重新啟動裝置上的使用者空間部分。 |
void
|
rebootUserspaceUntilOnline()
改用 |
boolean
|
recoverDevice()
嘗試復原裝置通訊。 |
void
|
registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
為這部裝置註冊 |
void
|
remountSystemReadOnly()
將裝置上的系統分區設為唯讀。 |
void
|
remountSystemWritable()
將裝置上的系統分區設為可寫入。 |
void
|
remountVendorReadOnly()
將裝置上的供應商分區設為唯讀。 |
void
|
remountVendorWritable()
將裝置上的供應商分區設為可寫入。 |
boolean
|
removeAdmin(String componentName, int userId)
移除特定使用者的裝置管理員,如果成功則傳回 |
void
|
removeOwners()
盡可能移除所有現有的裝置設定檔擁有者。 |
boolean
|
removeUser(int userId)
從裝置中移除特定使用者。 |
void
|
resetContentProviderSetup()
請重設內容供應器設定的標記,以便再次觸發設定。 |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
使用一或多個以參數傳遞的事件監聽器執行 |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner,
執行檢測設備測試並提供裝置復原功能。 |
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId,
|
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
與 |
void
|
setConfiguration(IConfiguration configuration)
插入使用中的 |
final
void
|
setConnectionAvdInfo(GceAvdInfo avdInfo)
|
void
|
setDate(Date date)
設定裝置上的日期 注意:必須啟用 Root 權限才能設定裝置日期 |
boolean
|
setDeviceOwner(String componentName, int userId)
將裝置管理員元件設為特定使用者的裝置擁有者。 |
void
|
setDeviceState(TestDeviceState deviceState)
更新裝置狀態。 |
void
|
setEmulatorOutputStream(SizeLimitedOutputStream output)
針對模擬器,請將 |
void
|
setEmulatorProcess(Process p)
當這部裝置是模擬器時,設定 |
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)
設定裝置的 |
boolean
|
setProperty(String propKey, String propValue)
設定裝置上的指定的屬性值。 |
void
|
setRecovery(IDeviceRecovery recovery)
設定要用於此裝置的 |
void
|
setRecoveryMode(ITestDevice.RecoveryMode mode)
設定裝置目前使用的復原模式。 |
void
|
setSetting(String namespace, String key, String value)
請參閱 |
void
|
setSetting(int userId, String namespace, String key, String value)
將設定值新增至特定使用者的命名空間。 |
void
|
setTestLogger(ITestLogger testLogger)
插入 |
void
|
setTrackingSerial(String trackingSerial)
用於裝置管理用途,追蹤我們用來參照裝置的序號。 |
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()
取得錯誤報告,並在 |
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 復原」的裝置(請注意,這與
|
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)
建立要在執行重新啟動動作時使用的 |
IRunUtil
|
createRunUtil()
|
void
|
doAdbReboot(NativeDevice.RebootMode rebootMode, String reason)
執行 ADB 重新啟動。 |
void
|
ensureRuntimePermissionSupported()
輔助方法在不支援執行階段權限時擲回例外狀況 |
int
|
getApiLevelSafe()
|
ITestLogger
|
getLogger()
|
IRunUtil
|
getRunUtil()
取得要使用的 |
void
|
initializeConnection(IBuildInfo info, MultiMap<String, String> attributes)
|
String
|
internalGetProperty(String propName, String fastbootVar, String description)
預設從 ddmlib 快取擷取裝置屬性,並改回使用 ADB shell getprop` 或 `Fastboot getvar`,取決於裝置是否在 Fastboot 中。 |
boolean
|
isInRebootCallback()
傳回是否正在執行重新啟動回呼。 |
boolean
|
isNewer(File localFile, IFileEntry entry)
如果本機檔案比遠端檔案更新,則傳回 |
void
|
notifyRebootEnded()
通知所有 |
void
|
notifyRebootStarted()
通知所有 |
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(
|
CommandResult
|
simpleFastbootCommand(long timeout,
這個外掛程式能使用環境變數執行簡單的 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 值
常數值: -10,000 人 (0xffd8f0)
MAX_HOST_DEVICE_TIME_OFFSET
protected static final long MAX_HOST_DEVICE_TIME_OFFSET
常數值: 5,000 人 (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
公用建構函式
NativeDevice
public NativeDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)
可建立 TestDevice
。
參數 | |
---|---|
device |
IDevice :相關聯的 IDevice |
stateMonitor |
IDeviceStateMonitor :要使用的 IDeviceStateMonitor 機制 |
allocationMonitor |
IDeviceMonitor :用於通知配置狀態變更的 IDeviceMonitor 。
可以是空值 |
公用方法
batchPrefetchStartupBuildProps
public void batchPrefetchStartupBuildProps ()
透過預先擷取所有所需項目 (而非呼叫「ADB」) 進行微最佳化 (約 400 毫秒) 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 並保持封鎖,直到連上其中一個 Wi-Fi 成功連線為止
wifiSsidToPsk 地圖中提供的網路。建立連線後,執行個體會嘗試
在每次重新啟動後還原連線,直到 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 並保持封鎖,直到連上其中一個 Wi-Fi 成功連線為止
wifiSsidToPsk 地圖中提供的網路。建立連線後,執行個體會嘗試
在每次重新啟動後還原連線,直到 ITestDevice#disconnectFromWifi()
或
ITestDevice#clearLastConnectedWifiNetwork()
稱為.f
參數 | |
---|---|
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 是指在
裝置強制重新啟動 (例如:要求重新啟動)。目前裝置的 utcEpochTime in
您可以使用 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,但顯然是以非同步方式回報,原因是目前的架構 導入方式偶爾會有競爭狀況。則指令會傳送至關閉鍵盤保護功能 (有效) 僅限不安全的應用程式)
擲回 | |
---|---|
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」,會記錄訊息並 傳回時不會啟用根層級。
啟用 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)
輔助方法會將 Fastboot 指令做為系統指令執行。
如果裝置已處於快速啟動模式,就會採用此設定。
參數 | |
---|---|
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 |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts,則系統會擲回 DeviceNot 回應 Exception
執行時卻未成功執行 |
擲回 | |
---|---|
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 |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
擲回 | |
---|---|
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)
此 Helper 方法可執行 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 |
File :ERROR(/File) ,會做為指令的輸入值或空值。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
執行 ShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
cmd |
String :要執行的 ADB 殼層指令 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
執行 ShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
cmd |
String :要執行的 ADB 殼層指令 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
執行 ShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
cmd |
String :要執行的 ADB 殼層指令 |
pipeAsInput |
File :ERROR(/File) ,會做為指令的輸入值或空值。 |
pipeToOutput |
OutputStream :將重新導向 std 輸出內容的 ERROR(/OutputStream) ,或是空值。 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
傳回 | |
---|---|
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 |
File :ERROR(/File) ,會做為指令的輸入值或空值。 |
pipeToOutput |
OutputStream :將重新導向 std 輸出內容的 ERROR(/OutputStream) ,或是空值。 |
pipeToError |
OutputStream :ERROR(/OutputStream) std 錯誤將重新導向,或是空值。 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
FastbootWipePartition
public CommandResult fastbootWipePartition (String partition)
輔助方法可抹除裝置分區。
如果 getUseFastbootErase()
為 true
,系統會使用 Fastboot 清除內容
分區這樣一來,裝置下次開機時就必須建立檔案系統。
否則,系統會使用 Fastboot 格式,在裝置上建立新的檔案系統。
如果裝置已處於快速啟動模式,就會採用此設定。
參數 | |
---|---|
partition |
String :要抹除的分區 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
getActiveApexes
publicgetActiveApexes ()
擷取裝置上已啟用的 APEX 相關資訊。
傳回 | |
---|---|
|
目前已在裝置上啟用 ERROR(/Set) 個 (共 ApexInfo 個) |
擲回 | |
---|---|
DeviceNotAvailableException |
取得所有設定
publicgetAllSettings (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
publicgetAndroidIds ()
建立已找到相符使用者 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 |
如果無法擷取資訊,則會改為 PackageInfo 或 null |
擲回 | |
---|---|
DeviceNotAvailableException |
getAppPackageInfos
publicgetAppPackageInfos ()
擷取裝置上安裝的套件資訊。
傳回 | |
---|---|
|
裝置已安裝 ERROR(/List) /PackageInfo 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBasebandVersion
public String getBasebandVersion ()
取得此裝置基頻 (無線電) 版本的便利方法。正在取得無線電版本
因為裝置不同,所以可能無法傳回所有裝置的正確資訊。這個
方法會利用 gsm.version.baseband 屬性,傳回正確的版本資訊。
對部分 CDMA 裝置而言,這並不正確,且這裡傳回的版本可能不一致
且可能不會傳回 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" 、"y" 、"yes" 值,則為 true
"on" 或 "true" 、false (如果屬性的值為 "0" )。
"n" 、"no" 、"off" 、"false" 或 defaultValue
反之。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootHistory
publicgetBootHistory ()
輔助方法會收集啟動記錄地圖和啟動時間和啟動原因。
傳回 | |
---|---|
|
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootHistoryBefore
publicgetBootHistorySince (long utcEpochTime, TimeUnit timeUnit)
輔助方法會收集啟動記錄地圖,其中包含啟動時間和啟動原因 (自提供的
自 Epoch 紀元時間的裝置和指定時間單位起算的時間。目前裝置的 utcEpochTime in
您可以使用 getDeviceDate()
方法取得毫秒數。
參數 | |
---|---|
utcEpochTime |
long :自 Epoch 紀元時間以來的裝置時間。 |
timeUnit |
TimeUnit :時間單位 TimeUnit 。 |
傳回 | |
---|---|
|
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootloaderVersion
public String getBootloaderVersion ()
取得這部裝置的系統啟動載入程式版本的便利方法。
系統會嘗試從裝置目前狀態擷取系統啟動載入程式版本。(亦即 處於快速系統啟動模式時,會嘗試從 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 |
含有錯誤報告的 ZIP 檔案的 InputStreamSource ,在
也會失敗 |
getBuildAlias
public String getBuildAlias ()
擷取裝置目前執行版本的別名。
相較於版本 ID,「建立別名」通常是較容易理解的字串 (通常為 Nexus 版本)。舉例來說,最終的 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 |
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 |
取得裝置日期
public long getDeviceDate ()
傳回裝置日期 (自 Epoch 紀元時間起算,以毫秒為單位)。
傳回 | |
---|---|
long |
裝置日期,以 Epoch 紀元時間表示。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getDeviceDescriptor
public DeviceDescriptor getDeviceDescriptor ()
從裝置資訊中傳回 DeviceDescriptor
,即可在沒有需要的情況下取得相關資訊
並傳遞實際的裝置物件
傳回 | |
---|---|
DeviceDescriptor |
getDeviceDescriptor
public DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)
從裝置資訊中傳回 DeviceDescriptor
,即可在沒有需要的情況下取得相關資訊
並傳遞實際的裝置物件
參數 | |
---|---|
shortDescriptor |
boolean :是否要將描述元限制為最低限度 |
傳回 | |
---|---|
DeviceDescriptor |
getDeviceTimeOffset
public long getDeviceTimeOffset (Date date)
協助取得裝置和指定 ERROR(/Date)
的時間差。使用 Epoch 時間
內部。
參數 | |
---|---|
date |
Date |
傳回 | |
---|---|
long |
以毫秒為單位 |
擲回 | |
---|---|
DeviceNotAvailableException |
getEmulatorOutput
public InputStreamSource getEmulatorOutput ()
取得模擬器 stdout 和 stderr 串流
傳回 | |
---|---|
InputStreamSource |
模擬器輸出 |
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 模式時,會知道裝置復原為 Fastboot 且
沒有回應。
傳回 | |
---|---|
String |
String 產品類型名稱;如果無法確定,則提供 null |
擲回 | |
---|---|
DeviceNotAvailableException |
getFastbootProductVariant
public String getFastbootProductVariant ()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。
這個方法應僅在裝置應採用 Fastboot 時才使用。這類模型的變化版本
而非本例中的通用 getProductType()
方法,因為 ITestDevice
裝置處於 Fastboot 模式時,會知道裝置復原為 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 |
IFileEntry 或 null (如果指定 path 中的檔案無法
尋找 |
擲回 | |
---|---|
DeviceNotAvailableException |
getFileEntry
public IFileEntry getFileEntry (FileListingService.FileEntry entry)
從非根路徑取得 FileEntry
的非官方輔助程式。修正:重構
可從任何路徑存取 FileEntry 系統。(即使非根)。
參數 | |
---|---|
entry |
FileListingService.FileEntry :FileEntry 不一定是 Ddmlib 所需的根層級。 |
傳回 | |
---|---|
IFileEntry |
代表 FileEntry 的 FileEntryWrapper。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getFoldableStates
publicgetFoldableStates ()
傳回裝置上的摺疊式裝置狀態清單。可透過「cmd device_state」取得 print-states"。
傳回 | |
---|---|
|
擲回 | |
---|---|
DeviceNotAvailableException |
getIDevice
public IDevice getIDevice ()
傳回相關聯 ddmlib IDevice
的參照。
每次裝置中斷連線時,DDM 可能會分配新的 IDevice
重新連線。因此,呼叫端不應保留 IDevice
的參照,
因為該參考檔案可能會過時。
傳回 | |
---|---|
IDevice |
IDevice |
getInstalledPackageNames
publicgetInstalledPackageNames ()
擷取裝置中顯示的應用程式套件名稱。
傳回 | |
---|---|
|
裝置目前已安裝 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 資料的快照串流。
支援兩種模式:
TestDeviceOptions.getMaxLogcatDataSize()
個位元組的目前背景內容
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
publicgetMainlineModuleInfo ()
取得裝置上安裝的主系列模組相關資訊。
傳回 | |
---|---|
|
裝置上目前已安裝 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
,或
若該路徑未掛接或未顯示在個別路徑中,則為 null
/proc/mounts 來處理。
參數 | |
---|---|
mountpoint |
String |
傳回 | |
---|---|
ITestDevice.MountPointInfo |
MountPointInfo 的 ERROR(/List) ,內含「/proc/mounts」中的資訊 |
擲回 | |
---|---|
DeviceNotAvailableException |
getMountPointInfo
publicgetMountPointInfo ()
傳回裝置上 /proc/mounts 內的剖析資訊版本
傳回 | |
---|---|
|
MountPointInfo 的 ERROR(/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」以及「統計資料」並傳回 ProcessInfo
物件
指定程序的 PID 和程序開始時間。
參數 | |
---|---|
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 |
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
publicgetTombstones ()
從裝置擷取並傳回空值標記清單。需要 Root 權限。
方法。因此如果因任何原因而無法提取任何空值標記
只有 DeviceNotAvailableException
會終止方法
從過往經歷來看,Google 在
初期就遇到資料處理方面的難題
傳回 | |
---|---|
|
Tombstone 檔案清單,如果不是空值標記,則為空白。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getTotalMemory
public long getTotalMemory ()
傳回實體記憶體總大小 (以位元組為單位),如果發生內部錯誤,則傳回 -1
傳回 | |
---|---|
long |
getTrackingSerial
public String getTrackingSerial ()
為進行裝置管理,請取得用於追蹤裝置的序號。
傳回 | |
---|---|
String |
取得解除安裝套件名稱
publicgetUninstallablePackageNames ()
擷取可解除安裝的應用程式套件名稱。目前定義的是 非系統套件和更新後的系統套件。
傳回 | |
---|---|
|
目前安裝於裝置上 ERROR(/Set) 的可解除安裝 String 套件名稱
裝置。 |
擲回 | |
---|---|
DeviceNotAvailableException |
取得快速系統啟動模式 (FastbootErase)
public boolean getUseFastbootErase ()
選擇是否要使用 Fastboot 清除或 Quickboot 格式來清除裝置上的分區。
傳回 | |
---|---|
boolean |
如果使用 Fastboot 清除,則為 true ;如果使用 Fastboot 格式,則為 false
。 |
getUserFlags
public int getUserFlags (int userId)
尋找並傳回特定使用者的旗標。 旗標定義於「android.content.pm.UserInfo」Android 開放原始碼專案中的類別。
參數 | |
---|---|
userId |
int |
傳回 | |
---|---|
int |
與提供的 userId 相關聯的旗標 (如果找到的話):-10000。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getUserInfos
publicgetUserInfos ()
將 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 ()
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#FASTBOOT
或 TestDeviceState.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
publiclistDisplayIds ()
根據「dumpsys」回報在裝置上的可用螢幕 ID 清單 SurfaceFlinger」。
傳回 | |
---|---|
|
顯示清單。預設一律會傳回預設顯示 0。 |
擲回 | |
---|---|
DeviceNotAvailableException |
listDisplayIdsForBeginVisibleBackgroundUsers
publiclistDisplayIdsForStartingVisibleBackgroundUsers ()
取得可用於 start a user visible in the background
的螢幕清單。
傳回 | |
---|---|
|
擲回 | |
---|---|
DeviceNotAvailableException |
列出使用者
publiclistUsers ()
取得裝置上的使用者清單。如果輸出,就會擲回 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() 替換的引數。 |
非封鎖重新啟動
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 |
重新啟動 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 。 |
重新掛接 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 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)
參數 | |
---|---|
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 |
TestDeviceState :TestDeviceState |
setEmulatorOutputStream
public void setEmulatorOutputStream (SizeLimitedOutputStream output)
針對模擬器,請將 SizeLimitedOutputStream
設定為記錄輸出
參數 | |
---|---|
output |
SizeLimitedOutputStream :記錄輸出內容 |
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 |
IDevice :IDevice |
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 |
IDeviceRecovery :IDeviceRecovery |
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 |
setTrackingSerial
public void setTrackingSerial (String trackingSerial)
用於裝置管理用途,追蹤我們用來參照裝置的序號。
參數 | |
---|---|
trackingSerial |
String |
設定使用 FastbootErase
public void setUseFastbootErase (boolean useFastbootErase)
設定是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。
參數 | |
---|---|
useFastbootErase |
boolean :如果應使用 Fastboot 清除,則為 true ;如果應使用 Fastboot 清除,則設為 false
且應使用 Quickboot 格式。 |
開始 Logcat
public void startLogcat ()
開始在背景擷取裝置的 Logcat 輸出內容。
如果已擷取 Logcat 輸出內容,就不會有任何作用。 之後可以透過 getLogcat 擷取資料。
如果裝置不再使用,就必須呼叫 stopLogcat()
。
一般情況下,無需呼叫 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 尚未存在,再以遞迴方式將 /tmp/files 內容推送至 /sdcard/files。
參數 | |
---|---|
localFileDir |
File :包含要遞迴推送檔案的本機檔案目錄。 |
deviceFilePath |
String :遠端目的地絕對檔案路徑根目錄。thos 中的所有目錄
檔案路徑必須清晰可讀:在 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 |
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 。 |
多廣告重新啟動 (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 |
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 快取擷取裝置屬性,並改回使用 ADB shell getprop` 或 `Fastboot getvar`,取決於裝置是否在 Fastboot 中。
參數 | |
---|---|
propName |
String :`adb shell getprop` 傳回的裝置屬性名稱 |
fastbootVar |
String :要查詢的同等 Fastboot 變數名稱。如 null 、
不會嘗試執行 Quickboot 查詢 |
description |
String :變數的簡單說明。第一個字母應為大寫。 |
傳回 | |
---|---|
String |
字串 (可能是 null 或空白),包含指定屬性的值 |
擲回 | |
---|---|
DeviceNotAvailableException |
isInRebootCallback
protected boolean isInRebootCallback ()
傳回是否正在執行重新啟動回呼。所有公用 API 如果為 true,則應停用重新啟動。
傳回 | |
---|---|
boolean |
新生兒
protected boolean isNewer (File localFile, IFileEntry entry)
如果本機檔案比遠端檔案更新,則傳回 true
。IFileEntry
表示
如果值相同,則系統會將該檔案視為較新。
參數 | |
---|---|
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 |
如果裝置無法使用,則為「是」。 |