INativeDevice
public
interface
INativeDevice
com.android.tradefed.device.INativeDevice |
為 ddmlib IDevice
提供可靠且層級更高的 API。
按照設定時間重試裝置指令,並提供裝置復原功能 介面。
摘要
常數 | |
---|---|
int |
UNKNOWN_API_LEVEL
無法偵測 API 級別時的預設值 |
公用方法 | |
---|---|
abstract
boolean
|
checkApiLevelAgainstNextRelease(int strictMinLevel)
在盡可能最低支援的級別下,檢查目前是否支援特定功能。 |
abstract
void
|
clearLogcat()
刪除所有累計的 logcat 資料。 |
abstract
void
|
deleteFile(String deviceFilePath)
使用輔助方法刪除裝置上的檔案或目錄。 |
abstract
void
|
deleteFile(String deviceFilePath, int userId)
使用輔助方法刪除裝置上的檔案或目錄。 |
abstract
boolean
|
deviceSoftRestarted(ProcessInfo prevSystemServerProcess)
透過比較目前的 system_server 與
前一個 system_server |
abstract
boolean
|
deviceSoftRestartedSince(long utcEpochTime, TimeUnit timeUnit)
透過輔助方法,檢查裝置自 UTC 時間 (自 Epoch 紀元時間起算) 後是否自動重新啟動
裝置及其 |
abstract
boolean
|
disableAdbRoot()
關閉 ADB 根層級。 |
abstract
boolean
|
doesFileExist(String deviceFilePath)
判斷裝置上是否存在檔案的輔助方法。 |
abstract
boolean
|
enableAdbRoot()
開啟 ADB 根。 |
abstract
String
|
executeAdbCommand(long timeout, String... commandArgs)
此輔助方法可在指定逾時的情況下,將 ADB 指令當做系統指令執行。 |
abstract
String
|
executeAdbCommand(String... commandArgs)
此輔助方法會將 ADB 指令當做系統指令來執行。 |
abstract
String
|
executeAdbCommand(long timeout,
此輔助方法可在指定逾時的情況下,將 ADB 指令當做系統指令執行。 |
abstract
CommandResult
|
executeFastbootCommand(long timeout, String... commandArgs)
輔助方法會將 Fastboot 指令做為系統指令執行。 |
abstract
CommandResult
|
executeFastbootCommand(String... commandArgs)
這個輔助方法會將 Fastboot 指令做為系統指令執行,並將逾時值預設為 2 分鐘。 |
abstract
CommandResult
|
executeLongFastbootCommand(String... commandArgs)
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令。 |
abstract
CommandResult
|
executeLongFastbootCommand(
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令 環境變數 |
abstract
String
|
executeShellCommand(String command)
此輔助方法可執行 ADB 殼層指令,並以 |
abstract
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
void
|
executeShellCommand(String command, IShellOutputReceiver receiver)
執行指定的 ADB 殼層指令,如果指令失敗,則會多次重試。 |
abstract
CommandResult
|
executeShellV2Command(String command)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 |
abstract
CommandResult
|
executeShellV2Command(String command, OutputStream pipeToOutput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 |
abstract
CommandResult
|
executeShellV2Command(String command, File pipeAsInput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 |
abstract
CommandResult
|
executeShellV2Command(String command, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
CommandResult
|
executeShellV2Command(String command, long maxTimeoutForCommand, TimeUnit timeUnit)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
CommandResult
|
executeShellV2Command(String command, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
CommandResult
|
executeShellV2Command(String command, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。 |
abstract
CommandResult
|
fastbootWipePartition(String partition)
輔助方法可抹除裝置分區。 |
abstract
int
|
getApiLevel()
取得裝置的 API 級別。 |
abstract
String
|
getBasebandVersion()
取得此裝置基頻 (無線電) 版本的便利方法。 |
abstract
Integer
|
getBattery()
傳回裝置目前的電池電量,如果沒有電池電量,則傳回空值。 |
abstract
boolean
|
getBooleanProperty(String name, boolean defaultValue)
傳回指定屬性的布林值。 |
abstract
|
getBootHistory()
輔助方法會收集啟動記錄地圖和啟動時間和啟動原因。 |
abstract
|
getBootHistorySince(long utcEpochTime, TimeUnit timeUnit)
輔助方法會收集啟動記錄地圖,其中包含啟動時間和啟動原因 (自提供的 自 Epoch 紀元時間的裝置和指定時間單位起算的時間。 |
abstract
String
|
getBootloaderVersion()
取得這部裝置的系統啟動載入程式版本的便利方法。 |
abstract
String
|
getBuildAlias()
擷取裝置目前執行版本的別名。 |
abstract
String
|
getBuildFlavor()
擷取裝置的建構變種版本。 |
abstract
String
|
getBuildId()
擷取裝置目前執行的版本。 |
abstract
String
|
getBuildSigningKeys()
傳回用來簽署裝置圖片的金鑰類型 一般來說,Android 裝置可使用測試金鑰 (例如 Android 開放原始碼計畫) 或發布金鑰進行簽署 (由個別裝置製造商控管) |
abstract
DeviceDescriptor
|
getCachedDeviceDescriptor()
如果裝置已配置,則傳回快取的 |
abstract
DeviceDescriptor
|
getCachedDeviceDescriptor(boolean shortDescriptor)
如果裝置已配置,則傳回快取的 |
abstract
String[]
|
getChildren(String deviceFilePath)
替代 |
abstract
AbstractConnection
|
getConnection()
傳回與裝置相關聯的連線。 |
abstract
String
|
getDeviceClass()
取得裝置類別。 |
abstract
long
|
getDeviceDate()
傳回裝置日期 (自 Epoch 紀元時間起算,以毫秒為單位)。 |
abstract
DeviceDescriptor
|
getDeviceDescriptor()
從裝置資訊中傳回 |
abstract
DeviceDescriptor
|
getDeviceDescriptor(boolean shortDescriptor)
從裝置資訊中傳回 |
abstract
TestDeviceState
|
getDeviceState()
取得裝置的狀態。 |
abstract
long
|
getDeviceTimeOffset(Date date)
協助取得裝置和指定 |
abstract
InputStreamSource
|
getEmulatorOutput()
取得模擬器 stdout 和 stderr 串流 |
abstract
long
|
getExternalStoreFreeSpace()
判斷裝置外部儲存空間可用空間的輔助方法。 |
abstract
String
|
getFastbootProductType()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。 |
abstract
String
|
getFastbootProductVariant()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。 |
abstract
String
|
getFastbootSerialNumber()
傳回 Quickboot 模式的序號。 |
abstract
String
|
getFastbootVariable(String variableName)
從裝置擷取指定的 Fastboot 變數值。 |
abstract
IFileEntry
|
getFileEntry(String path)
擷取裝置上遠端檔案的參照。 |
abstract
IDevice
|
getIDevice()
傳回相關聯 ddmlib |
abstract
long
|
getIntProperty(String name, long defaultValue)
傳回裝置中指定屬性的整數值。 |
abstract
long
|
getLastExpectedRebootTimeMillis()
傳回 Tradefed API 上次從 EPOCH 至今觸發重新啟動的時間 (單位為毫秒),
由 |
abstract
int
|
getLaunchApiLevel()
取得裝置第一個啟動的 API 級別。 |
abstract
InputStreamSource
|
getLogcat()
取得 Logcat 資料的快照串流。 |
abstract
InputStreamSource
|
getLogcat(int maxBytes)
取得最近 |
abstract
InputStreamSource
|
getLogcatDump()
取得裝置目前 logcat 的轉儲資料。 |
abstract
InputStreamSource
|
getLogcatSince(long date)
擷取已擷取 Logcat 資料的快照串流 (從提供的日期開始)。 |
abstract
String
|
getMountPoint(String mountName)
傳回掛接點。 |
abstract
ITestDevice.MountPointInfo
|
getMountPointInfo(String mountpoint)
傳回與指定掛接點路徑相對應的 |
abstract
|
getMountPointInfo()
傳回裝置上 /proc/mounts 內的剖析資訊版本 |
abstract
long
|
getPartitionFreeSpace(String partition)
決定裝置分區可用空間的輔助方法。 |
abstract
ProcessInfo
|
getProcessByName(String processName)
輔助方法會執行「pidof」以及「統計資料」並傳回 |
abstract
String
|
getProcessPid(String process)
傳回服務的 pid,如果發生錯誤,則傳回空值。 |
abstract
String
|
getProductType()
取得此裝置產品類型的便利方法。 |
abstract
String
|
getProductVariant()
取得此裝置產品子類的便利方法。 |
abstract
String
|
getProperty(String name)
從裝置擷取指定的屬性值。 |
abstract
ITestDevice.RecoveryMode
|
getRecoveryMode()
取得裝置目前使用的復原模式。 |
abstract
String
|
getSerialNumber()
取得此裝置序號的便利方法。 |
abstract
|
getTombstones()
從裝置擷取並傳回空值標記清單。 |
abstract
long
|
getTotalMemory()
傳回實體記憶體總大小 (以位元組為單位),如果發生內部錯誤,則傳回 -1 |
default
String
|
getTrackingSerial()
為進行裝置管理,請取得用於追蹤裝置的序號。 |
abstract
boolean
|
getUseFastbootErase()
選擇是否要使用 Fastboot 清除或 Quickboot 格式來清除裝置上的分區。 |
abstract
boolean
|
isAdbRoot()
|
abstract
boolean
|
isAdbTcp()
|
abstract
boolean
|
isAppEnumerationSupported()
檢查裝置上的平台是否支援應用程式列舉 |
abstract
boolean
|
isBypassLowTargetSdkBlockSupported()
檢查裝置上的平台是否支援在應用程式安裝時略過目標 SDK 區塊偏低的問題 |
abstract
boolean
|
isDebugfsMounted()
檢查是否已掛接 debugf。 |
abstract
boolean
|
isDeviceEncrypted()
如果裝置已加密,則傳回 。 |
abstract
boolean
|
isDirectory(String deviceFilePath)
如果裝置上的路徑是目錄,則傳回 True,否則傳回 false。 |
abstract
boolean
|
isEncryptionSupported()
如果裝置支援加密,則傳回 。 |
abstract
boolean
|
isExecutable(String fullPath)
如果裝置上的檔案路徑是可執行的檔案,傳回 True,否則傳回 false。 |
abstract
boolean
|
isHeadless()
如果裝置為無頭 (無螢幕) 則傳回 true,否則傳回 false。 |
abstract
boolean
|
isRuntimePermissionSupported()
檢查裝置上的平台是否支援授予執行階段權限 |
abstract
boolean
|
isStateBootloaderOrFastbootd()
如果裝置位於 |
abstract
boolean
|
logAnrs(ITestLogger logger)
收集並記錄裝置上的 ANR。 |
abstract
void
|
logOnDevice(String tag, Log.LogLevel level, String format, Object... args)
在裝置的 logcat 中記錄訊息。 |
abstract
void
|
mountDebugfs()
掛接 debugfs。 |
abstract
void
|
nonBlockingReboot()
發出指令來重新啟動裝置,並在指令完成後返回 向 ADB 顯示的時間較長 |
abstract
void
|
postBootSetup()
執行設定,在每次啟動時測試裝置。 |
default
void
|
postInvocationTearDown()
此方法已淘汰。
請改用 |
abstract
void
|
postInvocationTearDown(Throwable invocationException)
針對裝置特定需求清除的額外步驟,將在叫用後執行 因此,在執行復原作業 |
default
void
|
preInvocationSetup(IBuildInfo info, MultiMap<String, String> attributes)
針對即將在裝置上執行的裝置專屬設定,採取額外步驟 叫用流程 |
abstract
boolean
|
pullDir(String deviceFilePath, File localDir)
以遞迴方式提取裝置上的目錄內容。 |
abstract
boolean
|
pullDir(String deviceFilePath, File localDir, int userId)
以遞迴方式提取裝置上的目錄內容。 |
abstract
File
|
pullFile(String remoteFilePath, int userId)
擷取裝置上的檔案並儲存在本機暫存 |
abstract
File
|
pullFile(String remoteFilePath)
擷取裝置上的檔案並儲存在本機暫存 |
abstract
boolean
|
pullFile(String remoteFilePath, File localFile)
從裝置擷取檔案。 |
abstract
boolean
|
pullFile(String remoteFilePath, File localFile, int userId)
從裝置擷取檔案。 |
abstract
String
|
pullFileContents(String remoteFilePath)
從裝置擷取檔案,並傳回內容。 |
abstract
File
|
pullFileFromExternal(String remoteFilePath)
從裝置外部儲存空間擷取檔案的便捷方法,會將檔案儲存在
本機暫時 |
abstract
boolean
|
pushDir(File localDir, String deviceFilePath, int userId)
將目錄內容以遞迴方式推送到裝置中。 |
abstract
boolean
|
pushDir(File localDir, String deviceFilePath,
以遞迴方式將目錄內容推送至裝置,同時排除某些 遭到篩除。 |
abstract
boolean
|
pushDir(File localDir, String deviceFilePath)
將目錄內容以遞迴方式推送到裝置中。 |
abstract
boolean
|
pushFile(File localFile, String deviceFilePath, boolean evaluateContentProviderNeeded)
|
abstract
boolean
|
pushFile(File localFile, String deviceFilePath)
將檔案推送至裝置。 |
abstract
boolean
|
pushFile(File localFile, String deviceFilePath, int userId)
將檔案推送至裝置。 |
abstract
boolean
|
pushString(String contents, String deviceFilePath)
將建立自字串的檔案推送至裝置 |
abstract
void
|
reboot()
重新啟動裝置,進入 ADB 模式。 |
abstract
void
|
reboot(String reason)
將裝置重新啟動進入 ADB 模式,指定 |
abstract
void
|
rebootIntoBootloader()
重新啟動裝置,並進入系統啟動載入程式模式。 |
abstract
void
|
rebootIntoFastbootd()
重新啟動裝置,進入 Fastbootd 模式。 |
abstract
void
|
rebootIntoRecovery()
重新啟動裝置,進入 ADB 復原模式。 |
abstract
void
|
rebootIntoSideload(boolean autoReboot)
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式) 封鎖,直到裝置進入側載模式為止 |
abstract
void
|
rebootIntoSideload()
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式) 封鎖,直到裝置進入側載模式為止 |
abstract
void
|
rebootUntilOnline()
這是 |
abstract
void
|
rebootUntilOnline(String reason)
這是 |
abstract
void
|
rebootUserspace()
僅重新啟動裝置上的使用者空間部分。 |
abstract
void
|
rebootUserspaceUntilOnline()
改用 |
abstract
void
|
remountSystemReadOnly()
將裝置上的系統分區設為唯讀。 |
abstract
void
|
remountSystemWritable()
將裝置上的系統分區設為可寫入。 |
abstract
void
|
remountVendorReadOnly()
將裝置上的供應商分區設為唯讀。 |
abstract
void
|
remountVendorWritable()
將裝置上的供應商分區設為可寫入。 |
abstract
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
使用一或多個以參數傳遞的事件監聽器執行 |
abstract
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner,
執行檢測設備測試並提供裝置復原功能。 |
abstract
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId,
|
abstract
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
與 |
abstract
void
|
setDate(Date date)
設定裝置上的日期 注意:必須啟用 Root 權限才能設定裝置日期 |
abstract
void
|
setOptions(TestDeviceOptions options)
設定裝置的 |
abstract
boolean
|
setProperty(String propKey, String propValue)
設定裝置上的指定的屬性值。 |
abstract
void
|
setRecovery(IDeviceRecovery recovery)
設定要用於此裝置的 |
abstract
void
|
setRecoveryMode(ITestDevice.RecoveryMode mode)
設定裝置目前使用的復原模式。 |
abstract
void
|
setTrackingSerial(String trackingSerial)
用於裝置管理用途,追蹤我們用來參照裝置的序號。 |
abstract
void
|
setUseFastbootErase(boolean useFastbootErase)
設定是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。 |
abstract
void
|
startLogcat()
開始在背景擷取裝置的 Logcat 輸出內容。 |
abstract
void
|
stopEmulatorOutput()
關閉並刪除模擬器輸出內容。 |
abstract
void
|
stopLogcat()
停止從裝置擷取 Logcat 輸出內容,並捨棄目前儲存的 logcat 資料。 |
abstract
String
|
switchToAdbTcp()
將裝置切換至 adb-over-tcp 模式。 |
abstract
boolean
|
switchToAdbUsb()
將裝置切換到 ADB 模式。 |
abstract
boolean
|
syncFiles(File localFileDir, String deviceFilePath)
逐步將本機檔案目錄的內容同步到裝置。 |
abstract
boolean
|
unlockDevice()
如果裝置處於加密狀態,就會解鎖裝置。 |
abstract
void
|
unmountDebugfs()
卸載偵錯 f。 |
abstract
boolean
|
waitForBootComplete(long timeOut)
在裝置啟動完成標記設定前封鎖。 |
abstract
boolean
|
waitForDeviceAvailable()
等待裝置回應且可供測試。 |
abstract
boolean
|
waitForDeviceAvailable(long waitTime)
等待裝置回應且可供測試。 |
abstract
boolean
|
waitForDeviceAvailableInRecoverPath(long waitTime)
等待裝置回應且可正常使用,而不考慮復原路徑。 |
abstract
void
|
waitForDeviceBootloader()
封鎖,直到裝置透過 Fastboot 看見為止。 |
abstract
boolean
|
waitForDeviceInRecovery(long waitTime)
封鎖設為「ADB 復原」的裝置(請注意,這與
|
abstract
boolean
|
waitForDeviceInSideload(long waitTime)
裝置位於 ADB 側載州 |
abstract
boolean
|
waitForDeviceNotAvailable(long waitTime)
因 ADB 缺少裝置而無法使用的裝置 |
abstract
void
|
waitForDeviceOnline()
封鎖,直到透過 ADB 顯示裝置為止。 |
abstract
void
|
waitForDeviceOnline(long waitTime)
封鎖,直到透過 ADB 顯示裝置為止。 |
abstract
boolean
|
waitForDeviceShell(long waitTime)
等待裝置回應基本 ADB 殼層指令。 |
常數
UNKNOWN_API 等級
public static final int UNKNOWN_API_LEVEL
無法偵測 API 級別時的預設值
常數值: -1 (0xffffffff)
公用方法
checkApiLevelAgainstNextRelease
public abstract boolean checkApiLevelAgainstNextRelease (int strictMinLevel)
在盡可能最低支援的級別下,檢查目前是否支援特定功能。這個 方法會考量尚未發布的功能,而未提出 API 級別。
參數 | |
---|---|
strictMinLevel |
int :支援功能的最小可能等級。 |
傳回 | |
---|---|
boolean |
如果支援該等級,則為「是」。否則傳回「否」。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
ClearLogcat
public abstract void clearLogcat ()
刪除所有累計的 logcat 資料。
如果您想確保只傳回 ITestDevice#getLogcat()
,這項功能就非常實用
特定時間點 (例如刷新裝置版本等) 之後產生的記錄資料。
刪除檔案
public abstract void deleteFile (String deviceFilePath)
使用輔助方法刪除裝置上的檔案或目錄。
參數 | |
---|---|
deviceFilePath |
String :裝置上檔案的絕對路徑。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
刪除檔案
public abstract void deleteFile (String deviceFilePath, int userId)
使用輔助方法刪除裝置上的檔案或目錄。
參數 | |
---|---|
deviceFilePath |
String :裝置上檔案的絕對路徑。 |
userId |
int :要刪除的使用者 ID |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
裝置軟性重新啟動
public abstract boolean deviceSoftRestarted (ProcessInfo prevSystemServerProcess)
透過比較目前的 system_server 與
前一個 system_server ProcessInfo
。使用 getProcessByName(String)
可在首次付款獲得 ProcessInfo
。
參數 | |
---|---|
prevSystemServerProcess |
ProcessInfo :先前的 system_server 程序 ProcessInfo 。 |
傳回 | |
---|---|
boolean |
如果裝置已自動重新啟動,則為 true |
擲回 | |
---|---|
RuntimeException |
裝置有異常啟動原因 |
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
deviceSoftRestarted 顯示廣告
public abstract boolean deviceSoftRestartedSince (long utcEpochTime, TimeUnit timeUnit)
透過輔助方法,檢查裝置自 UTC 時間 (自 Epoch 紀元時間起算) 後是否自動重新啟動
裝置及其 ERROR(/TimeUnit)
。Soft-Restart 是指在
裝置強制重新啟動 (例如:要求重新啟動)。目前裝置的 utcEpochTime in
您可以使用 getDeviceDate()
方法取得毫秒數。
參數 | |
---|---|
utcEpochTime |
long :自 Epoch 紀元時間起算的裝置時間,以秒為單位。 |
timeUnit |
TimeUnit :指定 utcEpochTime 的時間單位 TimeUnit 。 |
傳回 | |
---|---|
boolean |
如果裝置已自動重新啟動,則為 true |
擲回 | |
---|---|
RuntimeException |
裝置有異常啟動原因 |
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
停用 AdbRoot
public abstract boolean disableAdbRoot ()
關閉 ADB 根層級。
停用 ADB 根層級可能會導致裝置與 ADB 中斷連線。這個方法會封鎖,直到 有可用的裝置。
傳回 | |
---|---|
boolean |
true 表示成功。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
doFileExist
public abstract boolean doesFileExist (String deviceFilePath)
判斷裝置上是否存在檔案的輔助方法。
參數 | |
---|---|
deviceFilePath |
String :要檢查的裝置上的檔案絕對路徑 |
傳回 | |
---|---|
boolean |
如果檔案存在,則為 true ,否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
啟用 AdbRoot
public abstract boolean enableAdbRoot ()
開啟 ADB 根。如果啟用 "enable-root"設為「false」,會記錄訊息並 傳回時不會啟用根層級。
啟用 ADB 根層級可能會導致裝置與 ADB 中斷連線。這個方法會封鎖,直到 有可用的裝置。
傳回 | |
---|---|
boolean |
true 表示成功。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 AdbCommand
public abstract String executeAdbCommand (long timeout, String... commandArgs)
此輔助方法可在指定逾時的情況下,將 ADB 指令當做系統指令執行。
應盡可能改用 executeShellCommand(String)
,因為
方法,提供更好的失敗偵測和效能。
參數 | |
---|---|
timeout |
long :裝置判定沒有回應前的毫秒數,以毫秒為單位,如果是 0L,
未設定逾時 |
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
中的 stdout。null :如果指令無法執行,則傳回 true。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 AdbCommand
public abstract String executeAdbCommand (String... commandArgs)
此輔助方法會將 ADB 指令當做系統指令來執行。
應盡可能改用 executeShellCommand(String)
,因為
方法,提供更好的失敗偵測和效能。
參數 | |
---|---|
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
中的 stdout。null :如果指令無法執行,則傳回 true。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 AdbCommand
public abstract String executeAdbCommand (long timeout,envMap, String... commandArgs)
此輔助方法可在指定逾時的情況下,將 ADB 指令當做系統指令執行。
應盡可能改用 executeShellCommand(String)
,因為
方法,提供更好的失敗偵測和效能。
參數 | |
---|---|
timeout |
long :裝置判定沒有回應前的毫秒數,以毫秒為單位,如果是 0L,
未設定逾時 |
envMap |
:要為指令設定的環境 |
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
中的 stdout。null :如果指令無法執行,則傳回 true。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 FastbootCommand
public abstract CommandResult executeFastbootCommand (long timeout, String... commandArgs)
輔助方法會將 Fastboot 指令做為系統指令執行。
如果裝置已處於快速啟動模式,就會採用此設定。
參數 | |
---|---|
timeout |
long :指令過期前的時間 (以毫秒為單位) |
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 FastbootCommand
public abstract CommandResult executeFastbootCommand (String... commandArgs)
這個輔助方法會將 Fastboot 指令做為系統指令執行,並將逾時值預設為 2 分鐘。
如果裝置已處於快速啟動模式,就會採用此設定。
參數 | |
---|---|
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 LongFastbootCommand
public abstract CommandResult executeLongFastbootCommand (String... commandArgs)
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令。
與 executeFastbootCommand(String)
相同,但使用較長的逾時。
參數 | |
---|---|
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 LongFastbootCommand
public abstract CommandResult executeLongFastbootCommand (envVarMap, String... commandArgs)
輔助方法,以系統指令的形式執行長時間執行的 Fastboot 指令 環境變數
與 executeFastbootCommand(String)
相同,但使用較長的逾時。
參數 | |
---|---|
envVarMap |
:Fastboot 指令執行的系統環境變數 |
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellCommand
public abstract String executeShellCommand (String command)
此輔助方法可執行 ADB 殼層指令,並以 String
形式傳回輸出內容。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
傳回 | |
---|---|
String |
殼層輸出 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellCommand
public abstract 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 abstract 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 abstract 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 abstract CommandResult executeShellV2Command (String command)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult
並正確填入指令狀態輸出內容、stdout 和 stderr。
參數 | |
---|---|
command |
String :應執行的指令。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, OutputStream pipeToOutput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult
,且包含指令狀態輸出和 stderr。stdout 為
導向指定的串流
參數 | |
---|---|
command |
String :應執行的指令。 |
pipeToOutput |
OutputStream :將重新導向 std 輸出內容的 ERROR(/OutputStream) ,或是空值。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, File pipeAsInput)
此 Helper 方法可執行 ADB 殼層指令,並將結果傳回為 CommandResult
並正確填入指令狀態輸出內容、stdout 和 stderr。
參數 | |
---|---|
command |
String :應執行的指令。 |
pipeAsInput |
File :ERROR(/File) ,會做為指令的輸入值或空值。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, long maxTimeoutForCommand, TimeUnit timeUnit)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
pipeAsInput |
File :ERROR(/File) ,會做為指令的輸入值或空值。 |
pipeToOutput |
OutputStream :將重新導向 std 輸出內容的 ERROR(/OutputStream) ,或是空值。 |
maxTimeoutForCommand |
long :完成指令的逾時時間上限;為
指定時間:timeUnit |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令失敗而導致重試失敗的次數上限,
例外狀況。如果 retryAttempts 發生
卻未成功執行 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
執行 ShellV2Command
public abstract CommandResult executeShellV2Command (String command, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
這個外掛程式能執行 ADB 殼層指令,並使用更多參數控制指令行為。
參數 | |
---|---|
command |
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 abstract CommandResult fastbootWipePartition (String partition)
輔助方法可抹除裝置分區。
如果 getUseFastbootErase()
為 true
,系統會使用 Fastboot 清除內容
分區這樣一來,裝置下次開機時就必須建立檔案系統。
否則,系統會使用 Fastboot 格式,在裝置上建立新的檔案系統。
如果裝置已處於快速啟動模式,就會採用此設定。
參數 | |
---|---|
partition |
String :要抹除的分區 |
傳回 | |
---|---|
CommandResult |
包含指令輸出內容的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getApiLevel
public abstract int getApiLevel ()
取得裝置的 API 級別。預設值為 UNKNOWN_API_LEVEL
。
傳回 | |
---|---|
int |
以整數表示裝置 API 級別 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getBasebandVersion
public abstract String getBasebandVersion ()
取得此裝置基頻 (無線電) 版本的便利方法。正在取得無線電版本
因為裝置不同,所以可能無法傳回所有裝置的正確資訊。這個
方法會利用 gsm.version.baseband 屬性,傳回正確的版本資訊。
對部分 CDMA 裝置而言,這並不正確,且這裡傳回的版本可能不一致
且可能不會傳回 CDMA 無線電的版本,
TL;DR 這個方法只會在 gsm.version.baseband 屬性為
與 fastboot getvar version-baseband
傳回的版本相同。
傳回 | |
---|---|
String |
String 基頻版本;如果無法確定,則使用 null
(裝置沒有無線電,或是「無法讀取」版本字串) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置的連線中斷且無法連結 可能會復原 |
getBattery
public abstract Integer getBattery ()
傳回裝置目前的電池電量,如果沒有電池電量,則傳回空值。
傳回 | |
---|---|
Integer |
getBooleanProperty
public abstract 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
public abstractgetBootHistory ()
輔助方法會收集啟動記錄地圖和啟動時間和啟動原因。
傳回 | |
---|---|
|
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootHistoryBefore
public abstractgetBootHistorySince (long utcEpochTime, TimeUnit timeUnit)
輔助方法會收集啟動記錄地圖,其中包含啟動時間和啟動原因 (自提供的
自 Epoch 紀元時間的裝置和指定時間單位起算的時間。目前裝置的 utcEpochTime in
您可以使用 getDeviceDate()
方法取得毫秒數。
參數 | |
---|---|
utcEpochTime |
long :自 Epoch 紀元時間以來的裝置時間。 |
timeUnit |
TimeUnit :時間單位 TimeUnit 。 |
傳回 | |
---|---|
|
啟動時間地圖 (世界標準時間,從 Epoch 紀元時間起算,以秒為單位) 和啟動原因 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootloaderVersion
public abstract String getBootloaderVersion ()
取得這部裝置的系統啟動載入程式版本的便利方法。
系統會嘗試從裝置目前狀態擷取系統啟動載入程式版本。(亦即 處於快速系統啟動模式時,會嘗試從 Fastboot 擷取版本)
傳回 | |
---|---|
String |
String 系統啟動載入程式版本;如果找不到,請使用 null |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getBuildAlias
public abstract String getBuildAlias ()
擷取裝置目前執行版本的別名。
相較於版本 ID,「建立別名」通常是較容易理解的字串 (通常為 Nexus 版本)。舉例來說,最終的 Android 4.2 版本具有建構別名 JDQ39 和版本 ID 573038
傳回 | |
---|---|
String |
如無法擷取建構別名,或將其改回以建構 ID |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getBuildFlavor
public abstract String getBuildFlavor ()
擷取裝置的建構變種版本。
傳回 | |
---|---|
String |
如無法擷取建構變種版本,則為空值 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getBuildId
public abstract String getBuildId ()
擷取裝置目前執行的版本。
傳回 | |
---|---|
String |
建構 ID;如果無法擷取,則為 IBuildInfo#UNKNOWN_BUILD_ID |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getBuildSigningKeys
public abstract String getBuildSigningKeys ()
傳回用來簽署裝置圖片的金鑰類型
一般來說,Android 裝置可使用測試金鑰 (例如 Android 開放原始碼計畫) 或發布金鑰進行簽署 (由個別裝置製造商控管)
傳回 | |
---|---|
String |
如果有簽署金鑰,則傳回空值。如果沒有,則傳回空值。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getCachedDeviceDescriptor
public abstract DeviceDescriptor getCachedDeviceDescriptor ()
如果裝置已配置,則傳回快取的 DeviceDescriptor
,否則傳回
目前的DeviceDescriptor
。
傳回 | |
---|---|
DeviceDescriptor |
getCachedDeviceDescriptor
public abstract DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)
如果裝置已配置,則傳回快取的 DeviceDescriptor
,否則傳回
目前的DeviceDescriptor
。
參數 | |
---|---|
shortDescriptor |
boolean :是否要將描述元限制為最低限度 |
傳回 | |
---|---|
DeviceDescriptor |
getChildren
public abstract String[] getChildren (String deviceFilePath)
替代 IFileEntry
的替代方案,因為有時會因為權限而無法運作。
參數 | |
---|---|
deviceFilePath |
String :在裝置上執行搜尋的路徑 |
傳回 | |
---|---|
String[] |
字串陣列,包含裝置上路徑中的所有檔案。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getConnection 連結
public abstract AbstractConnection getConnection ()
傳回與裝置相關聯的連線。
傳回 | |
---|---|
AbstractConnection |
取得裝置日期
public abstract long getDeviceDate ()
傳回裝置日期 (自 Epoch 紀元時間起算,以毫秒為單位)。
傳回 | |
---|---|
long |
裝置日期,以 Epoch 紀元時間表示。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getDeviceDescriptor
public abstract DeviceDescriptor getDeviceDescriptor ()
從裝置資訊中傳回 DeviceDescriptor
,即可在沒有需要的情況下取得相關資訊
並傳遞實際的裝置物件
傳回 | |
---|---|
DeviceDescriptor |
getDeviceDescriptor
public abstract DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)
從裝置資訊中傳回 DeviceDescriptor
,即可在沒有需要的情況下取得相關資訊
並傳遞實際的裝置物件
參數 | |
---|---|
shortDescriptor |
boolean :是否要將描述元限制為最低限度 |
傳回 | |
---|---|
DeviceDescriptor |
getDeviceTimeOffset
public abstract long getDeviceTimeOffset (Date date)
協助取得裝置和指定 ERROR(/Date)
的時間差。使用 Epoch 時間
內部。
參數 | |
---|---|
date |
Date |
傳回 | |
---|---|
long |
以毫秒為單位 |
擲回 | |
---|---|
DeviceNotAvailableException |
getEmulatorOutput
public abstract InputStreamSource getEmulatorOutput ()
取得模擬器 stdout 和 stderr 串流
傳回 | |
---|---|
InputStreamSource |
模擬器輸出 |
getExternalStoreFreeSpace
public abstract long getExternalStoreFreeSpace ()
判斷裝置外部儲存空間可用空間的輔助方法。
傳回 | |
---|---|
long |
可用空間 (以 KB 為單位) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
取得 FastbootProductType
public abstract String getFastbootProductType ()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。
這個方法應僅在裝置應採用 Fastboot 時才使用。這類模型的變化版本
而非本例中的通用 getProductType()
方法,因為 ITestDevice
裝置處於 Fastboot 模式時,會知道裝置復原為 Fastboot 且
沒有回應。
傳回 | |
---|---|
String |
String 產品類型名稱;如果無法確定,則提供 null |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getFastbootProductVariant
public abstract String getFastbootProductVariant ()
裝置處於 Fastboot 模式時,取得此裝置產品的便利方法。
這個方法應僅在裝置應採用 Fastboot 時才使用。這類模型的變化版本
而非本例中的通用 getProductType()
方法,因為 ITestDevice
裝置處於 Fastboot 模式時,會知道裝置復原為 Fastboot 且
沒有回應。
傳回 | |
---|---|
String |
String 產品類型名稱;如果無法確定,則提供 null |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getFastbootSerialNumber
public abstract String getFastbootSerialNumber ()
傳回 Quickboot 模式的序號。
傳回 | |
---|---|
String |
getFastbootVariable
public abstract String getFastbootVariable (String variableName)
從裝置擷取指定的 Fastboot 變數值。
參數 | |
---|---|
variableName |
String :變數名稱 |
傳回 | |
---|---|
String |
屬性值;如果不存在,則為 null |
擲回 | |
---|---|
|
不支援作業例外狀況 |
DeviceNotAvailableException |
getFileEntry
public abstract IFileEntry getFileEntry (String path)
擷取裝置上遠端檔案的參照。
參數 | |
---|---|
path |
String :要擷取的檔案路徑。可以是相對於「/」的絕對路徑或路徑。(例如
「/system」和「系統」語法) |
傳回 | |
---|---|
IFileEntry |
IFileEntry 或 null (如果指定 path 中的檔案無法
尋找 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getIDevice
public abstract IDevice getIDevice ()
傳回相關聯 ddmlib IDevice
的參照。
每次裝置中斷連線時,DDM 可能會分配新的 IDevice
重新連線。因此,呼叫端不應保留 IDevice
的參照,
因為該參考檔案可能會過時。
傳回 | |
---|---|
IDevice |
IDevice |
getIntProperty
public abstract long getIntProperty (String name, long defaultValue)
傳回裝置中指定屬性的整數值。
參數 | |
---|---|
name |
String :屬性名稱 |
defaultValue |
long :在屬性為空白或不存在時要傳回的預設值。 |
傳回 | |
---|---|
long |
屬性值;如果屬性為空白、不存在,則為 defaultValue 。
或是沒有整數值 |
擲回 | |
---|---|
DeviceNotAvailableException |
getLast 預期 RebootTimeMillis
public abstract long getLastExpectedRebootTimeMillis ()
傳回 Tradefed API 上次從 EPOCH 至今觸發重新啟動的時間 (單位為毫秒),
由 System.currentTimeMillis()
傳回。
傳回 | |
---|---|
long |
getLaunchApiLevel
public abstract int getLaunchApiLevel ()
取得裝置第一個啟動的 API 級別。預設值為 UNKNOWN_API_LEVEL
。
傳回 | |
---|---|
int |
整數,代表首次啟動的裝置 API 級別 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getLogcat
public abstract InputStreamSource getLogcat ()
取得 Logcat 資料的快照串流。
支援兩種模式:
TestDeviceOptions.getMaxLogcatDataSize()
個位元組的目前背景內容
logcat 擷取
傳回 | |
---|---|
InputStreamSource |
getLogcat
public abstract InputStreamSource getLogcat (int maxBytes)
取得最近 maxBytes
已擷取 Logcat 資料的快照串流。
適合經常擷取已擷取 Logcat 資料的快照
而且不會因取得整個 getLogcat()
快照而產生巨大的磁碟空間費用。
參數 | |
---|---|
maxBytes |
int :要傳回的資料量上限。此金額應可
充斥著記憶體 |
傳回 | |
---|---|
InputStreamSource |
getLogcatDump
public abstract InputStreamSource getLogcatDump ()
取得裝置目前 logcat 的轉儲資料。與 getLogcat()
不同,這個方法
一律傳回 logcat 的靜態傾印
缺點是,無法使用裝置時不會傳回任何物品。
傳回 | |
---|---|
InputStreamSource |
Logcat 資料的 InputStreamSource 。如果失敗,系統會傳回空白串流
擷取 logcat 資料 |
getLogcatcat
public abstract InputStreamSource getLogcatSince (long date)
擷取已擷取 Logcat 資料的快照串流 (從提供的日期開始)。指揮時間
裝置應使用 getDeviceDate()
。
參數 | |
---|---|
date |
long :以毫秒為單位 (自 Epoch 紀元時間起算,直到目前為止) 啟動快照的時間。
(可以使用「日期 +%s」取得) |
傳回 | |
---|---|
InputStreamSource |
getMountPoint
public abstract String getMountPoint (String mountName)
傳回掛接點。
如果沒有可用的 IDevice
中的快取資訊,則直接查詢裝置。
待辦事項:將此行為移至 IDevice#getMountPoint(String)
參數 | |
---|---|
mountName |
String :掛接點名稱 |
傳回 | |
---|---|
String |
掛接點,也就是 null |
getMountPointInfo
public abstract ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)
傳回與指定掛接點路徑相對應的 MountPointInfo
,或
若該路徑未掛接或未顯示在個別路徑中,則傳回 null
/proc/mounts 來處理。
參數 | |
---|---|
mountpoint |
String |
傳回 | |
---|---|
ITestDevice.MountPointInfo |
MountPointInfo 的 ERROR(/List) ,內含「/proc/mounts」中的資訊 |
擲回 | |
---|---|
DeviceNotAvailableException |
另請參閱:
getMountPointInfo
public abstractgetMountPointInfo ()
傳回裝置上 /proc/mounts 內的剖析資訊版本
傳回 | |
---|---|
|
MountPointInfo 的 ERROR(/List) ,內含「/proc/mounts」中的資訊 |
擲回 | |
---|---|
DeviceNotAvailableException |
getPartitionFreeSpace
public abstract long getPartitionFreeSpace (String partition)
決定裝置分區可用空間的輔助方法。
參數 | |
---|---|
partition |
String |
傳回 | |
---|---|
long |
可用空間 (以 KB 為單位) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getProcessByName
public abstract ProcessInfo getProcessByName (String processName)
輔助方法會執行「pidof」以及「統計資料」並傳回 ProcessInfo
物件
指定程序的 PID 和程序開始時間。
參數 | |
---|---|
processName |
String :處理名稱字串。 |
傳回 | |
---|---|
ProcessInfo |
指定 processName 的 ProcessInfo |
擲回 | |
---|---|
DeviceNotAvailableException |
getProcessPid
public abstract String getProcessPid (String process)
傳回服務的 pid,如果發生錯誤,則傳回空值。
參數 | |
---|---|
process |
String :程序名稱字串。 |
傳回 | |
---|---|
String |
擲回 | |
---|---|
DeviceNotAvailableException |
取得產品類型
public abstract String getProductType ()
取得此裝置產品類型的便利方法。
這個方法適用於 ADB 或 Fastboot 模式。
傳回 | |
---|---|
String |
String 產品類型名稱。不是空值 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 復原或無法判斷產品類型時 |
getProductVariant
public abstract String getProductVariant ()
取得此裝置產品子類的便利方法。
這個方法適用於 ADB 或 Fastboot 模式。
傳回 | |
---|---|
String |
String 產品子類名稱或 null (如有)
下定決心 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
getProperty
public abstract String getProperty (String name)
從裝置擷取指定的屬性值。
參數 | |
---|---|
name |
String :屬性名稱 |
傳回 | |
---|---|
String |
屬性值;如果不存在,則為 null |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getRecoveryMode
public abstract ITestDevice.RecoveryMode getRecoveryMode ()
取得裝置目前使用的復原模式。
傳回 | |
---|---|
ITestDevice.RecoveryMode |
裝置目前使用的復原模式。 |
getTombstones
public abstractgetTombstones ()
從裝置擷取並傳回空值標記清單。需要 Root 權限。
方法。因此如果因任何原因而無法提取任何空值標記
只有 DeviceNotAvailableException
會終止方法
從過往經歷來看,Google 在
初期就遇到資料處理方面的難題
傳回 | |
---|---|
|
Tombstone 檔案清單,如果不是空值標記,則為空白。 |
擲回 | |
---|---|
DeviceNotAvailableException |
另請參閱:
getTotalMemory
public abstract long getTotalMemory ()
傳回實體記憶體總大小 (以位元組為單位),如果發生內部錯誤,則傳回 -1
傳回 | |
---|---|
long |
getTrackingSerial
public String getTrackingSerial ()
為進行裝置管理,請取得用於追蹤裝置的序號。
傳回 | |
---|---|
String |
取得快速系統啟動模式 (FastbootErase)
public abstract boolean getUseFastbootErase ()
選擇是否要使用 Fastboot 清除或 Quickboot 格式來清除裝置上的分區。
傳回 | |
---|---|
boolean |
如果使用 Fastboot 清除,則為 true ;如果使用 Fastboot 格式,則為 false
。 |
isAdbRoot
public abstract boolean isAdbRoot ()
傳回 | |
---|---|
boolean |
如果裝置目前具有 ADB 根層級,則為 true ,否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
isAdbTcp
public abstract boolean isAdbTcp ()
傳回 | |
---|---|
boolean |
true :如果裝置已連線至 adb-over-tcp,false
反之。 |
isAppEnumerationSupported
public abstract boolean isAppEnumerationSupported ()
檢查裝置上的平台是否支援應用程式列舉
傳回 | |
---|---|
boolean |
如果支援應用程式列舉,則為 True,否則傳回 false |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isBypassLowTargetSdkBlockSupported
public abstract boolean isBypassLowTargetSdkBlockSupported ()
檢查裝置上的平台是否支援在應用程式安裝時略過目標 SDK 區塊偏低的問題
傳回 | |
---|---|
boolean |
支援略過低目標 SDK 區塊時為 true,否則傳回 false |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isDebugfsMounted
public abstract boolean isDebugfsMounted ()
檢查是否已掛接 debugf。
傳回 | |
---|---|
boolean |
true (如果已掛接 debugf) |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isDeviceEncrypted (已加密)
public abstract boolean isDeviceEncrypted ()
如果裝置已加密,則傳回 。
傳回 | |
---|---|
boolean |
如果裝置已加密,請true 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
isDirectory
public abstract boolean isDirectory (String deviceFilePath)
如果裝置上的路徑是目錄,則傳回 True,否則傳回 false。
參數 | |
---|---|
deviceFilePath |
String |
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isEncryption 支援
public abstract boolean isEncryptionSupported ()
如果裝置支援加密,則傳回 。
傳回 | |
---|---|
boolean |
如果裝置支援加密功能,則為 true 。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
可執行
public abstract boolean isExecutable (String fullPath)
如果裝置上的檔案路徑是可執行的檔案,傳回 True,否則傳回 false。
參數 | |
---|---|
fullPath |
String |
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
無頭
public abstract boolean isHeadless ()
如果裝置為無頭 (無螢幕) 則傳回 true,否則傳回 false。
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
DeviceNotAvailableException |
isRuntimePermissionSupported
public abstract boolean isRuntimePermissionSupported ()
檢查裝置上的平台是否支援授予執行階段權限
傳回 | |
---|---|
boolean |
如果支援執行階段權限,則為「true」,否則傳回「false」。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isStateBootloaderOrFastbootd
public abstract boolean isStateBootloaderOrFastbootd ()
如果裝置位於 TestDeviceState#FASTBOOT
或 TestDeviceState.FASTBOOTD
,則傳回 true。
傳回 | |
---|---|
boolean |
LogAnrs
public abstract boolean logAnrs (ITestLogger logger)
收集並記錄裝置上的 ANR。
參數 | |
---|---|
logger |
ITestLogger :用於記錄 ANR 的 ITestLogger 。 |
傳回 | |
---|---|
boolean |
如果記錄成功,則為「true」,否則傳回「false」。 |
擲回 | |
---|---|
DeviceNotAvailableException |
記錄裝置
public abstract void logOnDevice (String tag, Log.LogLevel level, String format, Object... args)
在裝置的 logcat 中記錄訊息。此為安全呼叫,即使 記錄失敗。
參數 | |
---|---|
tag |
String :在 logcat 中記錄訊息的標記。 |
level |
Log.LogLevel :Logcat 中訊息的偵錯層級。 |
format |
String :訊息格式。 |
args |
Object :要透過 String.format() 替換的引數。 |
mountDebugfs
public abstract void mountDebugfs ()
掛接 debugfs。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
非封鎖重新啟動
public abstract void nonBlockingReboot ()
發出指令來重新啟動裝置,並在指令完成後返回 向 ADB 顯示的時間較長
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postBootSetup
public abstract void postBootSetup ()
執行設定,在每次啟動時測試裝置。
應在裝置完全啟動/可用後呼叫
在一般情況下,您不需要明確呼叫這個方法, 實作應在重新啟動時自動執行這些步驟。
可能需要呼叫,例如裝置因其他事件而重新啟動 (例如 Quickboot 更新指令已完成)
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
postInvocationTearDown
public void postInvocationTearDown ()
此方法已淘汰。
請改用 postInvocationTearDown(Throwable)
。
針對裝置特定需求清除的額外步驟,將在叫用後執行 因此,在執行復原作業
postInvocationTearDown
public abstract void postInvocationTearDown (Throwable invocationException)
針對裝置特定需要清除的額外步驟,將在叫用後執行 因此,在執行復原作業
參數 | |
---|---|
invocationException |
Throwable :如果有,叫用失敗時引發的最終例外狀況。 |
預先叫用設定
public void preInvocationSetup (IBuildInfo info, MultiMap<String, String> attributes)
針對即將在裝置上執行的裝置專屬設定,採取額外步驟 叫用流程
參數 | |
---|---|
info |
IBuildInfo :裝置的 IBuildInfo 。 |
attributes |
MultiMap :儲存在叫用內容中的屬性 |
擲回 | |
---|---|
|
com.android.tradefed.targetprep.TargetSetupError |
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
|
TargetSetupError |
拉克迪爾
public abstract boolean pullDir (String deviceFilePath, File localDir)
以遞迴方式提取裝置上的目錄內容。
參數 | |
---|---|
deviceFilePath |
String :遠端來源的絕對檔案路徑 |
localDir |
File :要提取檔案的本機目錄 |
傳回 | |
---|---|
boolean |
true 表示成功提取檔案。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
拉克迪爾
public abstract boolean pullDir (String deviceFilePath, File localDir, int userId)
以遞迴方式提取裝置上的目錄內容。
參數 | |
---|---|
deviceFilePath |
String :遠端來源的絕對檔案路徑 |
localDir |
File :要提取檔案的本機目錄 |
userId |
int :要提取的使用者 ID |
傳回 | |
---|---|
boolean |
true 表示成功提取檔案。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PullFile
public abstract File pullFile (String remoteFilePath, int userId)
擷取裝置上的檔案並儲存在本機暫存 ERROR(/File)
中,然後傳回
File
。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案絕對路徑。 |
userId |
int :要提取的使用者 ID |
傳回 | |
---|---|
File |
包含裝置檔案內容的 ERROR(/File) ,或 null
因任何原因複製失敗 (包括主機檔案系統發生問題) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PullFile
public abstract File pullFile (String remoteFilePath)
擷取裝置上的檔案並儲存在本機暫存 ERROR(/File)
中,然後傳回
File
。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案絕對路徑。 |
傳回 | |
---|---|
File |
包含裝置檔案內容的 ERROR(/File) ,或 null
因任何原因複製失敗 (包括主機檔案系統發生問題) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PullFile
public abstract boolean pullFile (String remoteFilePath, File localFile)
從裝置擷取檔案。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案絕對路徑。 |
localFile |
File :要儲存內容的本機檔案。如果內容不是空白,則會
會遭到取代。 |
傳回 | |
---|---|
boolean |
true (如果檔案擷取成功)。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PullFile
public abstract boolean pullFile (String remoteFilePath, File localFile, int userId)
從裝置擷取檔案。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案絕對路徑。 |
localFile |
File :要儲存內容的本機檔案。如果內容不是空白,則會
會遭到取代。 |
userId |
int :要提取的使用者 ID |
傳回 | |
---|---|
boolean |
true (如果檔案擷取成功)。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PullFileContents
public abstract String pullFileContents (String remoteFilePath)
從裝置擷取檔案,並傳回內容。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案絕對路徑。 |
傳回 | |
---|---|
String |
包含裝置檔案內容的 String ,或 null
因任何原因複製失敗 (包括主機檔案系統發生問題) |
擲回 | |
---|---|
DeviceNotAvailableException |
從外部提取檔案
public abstract File pullFileFromExternal (String remoteFilePath)
從裝置外部儲存空間擷取檔案的便捷方法,會將檔案儲存在
本機暫時 ERROR(/File)
,然後傳回該 File
的參照。
參數 | |
---|---|
remoteFilePath |
String :裝置上的檔案路徑 (相對於裝置外部儲存空間)
掛接點 |
傳回 | |
---|---|
File |
包含裝置檔案內容的 ERROR(/File) ,或 null
因任何原因複製失敗 (包括主機檔案系統發生問題) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PushDir
public abstract boolean pushDir (File localDir, String deviceFilePath, int userId)
將目錄內容以遞迴方式推送到裝置中。
參數 | |
---|---|
localDir |
File :要推送的本機目錄 |
deviceFilePath |
String :遠端目的地的絕對檔案路徑 |
userId |
int :要推送至哪個使用者 ID |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PushDir
public abstract boolean pushDir (File localDir, String deviceFilePath,excludedDirectories)
以遞迴方式將目錄內容推送至裝置,同時排除某些 遭到篩除。
參數 | |
---|---|
localDir |
File :要推送的本機目錄 |
deviceFilePath |
String :遠端目的地的絕對檔案路徑 |
excludedDirectories |
:不應推送的排除目錄名稱組合。 |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
PushDir
public abstract boolean pushDir (File localDir, String deviceFilePath)
將目錄內容以遞迴方式推送到裝置中。
參數 | |
---|---|
localDir |
File :要推送的本機目錄 |
deviceFilePath |
String :遠端目的地的絕對檔案路徑 |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
推送檔案
public abstract boolean pushFile (File localFile, String deviceFilePath, boolean evaluateContentProviderNeeded)
pushFile(File, String)
的變化版本,可選擇性地評估需求
內容供應器。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地絕對檔案路徑 |
evaluateContentProviderNeeded |
boolean :確認是否需要內容供應器 |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
推送檔案
public abstract boolean pushFile (File localFile, String deviceFilePath)
將檔案推送至裝置。根據預設,系統會使用內容供應器。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地絕對檔案路徑 |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
推送檔案
public abstract boolean pushFile (File localFile, String deviceFilePath, int userId)
將檔案推送至裝置。根據預設,系統會使用內容供應器。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地絕對檔案路徑 |
userId |
int :要推送至哪個使用者 ID |
傳回 | |
---|---|
boolean |
如果檔案已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
推送字串
public abstract boolean pushString (String contents, String deviceFilePath)
將建立自字串的檔案推送至裝置
參數 | |
---|---|
contents |
String :要推送的檔案內容 |
deviceFilePath |
String :遠端目的地絕對檔案路徑 |
傳回 | |
---|---|
boolean |
如果字串已成功推送,則為 true 。否則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
重開。
public abstract void reboot ()
重新啟動裝置,進入 ADB 模式。
直到裝置可供使用為止。
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重開。
public abstract void reboot (String reason)
將裝置重新啟動進入 ADB 模式,指定 reason
在重新啟動後仍維持不變。
直到裝置可供使用為止。
查詢 sys.boot.reason
屬性即可取得上次重新啟動原因。
參數 | |
---|---|
reason |
String :這次重新啟動的原因,或未指定原因 null 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重新啟動 IntoBootloader
public abstract void rebootIntoBootloader ()
重新啟動裝置,並進入系統啟動載入程式模式。
封鎖,直到裝置處於系統啟動載入程式模式為止。
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
重啟 IntoFastbootd
public abstract void rebootIntoFastbootd ()
重新啟動裝置,進入 Fastbootd 模式。
封鎖,直到裝置處於快速啟動模式為止。
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
重新啟動
public abstract void rebootIntoRecovery ()
重新啟動裝置,進入 ADB 復原模式。
維持封鎖狀態,直到裝置恢復為止
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重新啟動 IntoSideload
public abstract void rebootIntoSideload (boolean autoReboot)
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式)
封鎖,直到裝置進入側載模式為止
參數 | |
---|---|
autoReboot |
boolean :是否要在側載後自動重新啟動裝置 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後沒有在側載 |
重新啟動 IntoSideload
public abstract void rebootIntoSideload ()
重新啟動裝置,進入 ADB 側載模式 (請注意,此為復原中的特殊模式)
封鎖,直到裝置進入側載模式為止
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後沒有在側載 |
重新啟動 UntilOnline
public abstract void rebootUntilOnline ()
這是 reboot()
的替代方案,只會在裝置連上網路後才對 ADB 顯示。
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重新啟動 UntilOnline
public abstract void rebootUntilOnline (String reason)
這是 reboot()
的替代方案,只會在裝置連上網路後才對 ADB 顯示。
參數 | |
---|---|
reason |
String :這次重新啟動的原因,或未指定原因 null 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
另請參閱:
重新啟動使用者空間
public abstract void rebootUserspace ()
僅重新啟動裝置上的使用者空間部分。
直到裝置可供使用為止。
警告。使用者空間重新啟動功能目前還在開發中,請自行承擔風險。
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重新啟動 UserspaceUntilOnline
public abstract void rebootUserspaceUntilOnline ()
改用 rebootUserspace()
()} 的替代方式,只會在裝置連上網路後自動封鎖
向 ADB 顯示。
擲回 | |
---|---|
DeviceNotAvailableException |
如果重新啟動裝置後仍無法使用 |
重新掛接系統唯讀
public abstract void remountSystemReadOnly ()
將裝置上的系統分區設為唯讀。重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
重新掛接 SystemWritable
public abstract void remountSystemWritable ()
將裝置上的系統分區設為可寫入。重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
重新掛接供應商 ReadOnly
public abstract void remountVendorReadOnly ()
將裝置上的供應商分區設為唯讀。重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
重新掛接 VendorWritable
public abstract void remountVendorWritable ()
將裝置上的供應商分區設為可寫入。重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
runInstrumentationTests
public abstract boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
使用一或多個以參數傳遞的事件監聽器執行 ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection))
的便利方法。
參數 | |
---|---|
runner |
IRemoteAndroidTestRunner :執行測試的 IRemoteAndroidTestRunner |
listeners |
ITestLifeCycleReceiver :測試結果事件監聽器 |
傳回 | |
---|---|
boolean |
如果測試指令已完成,則為 true 。false 表示失敗
完成,但復原成功 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。ie test 指令無法完成,且無法復原。 |
runInstrumentationTests
public abstract boolean runInstrumentationTests (IRemoteAndroidTestRunner runner,listeners)
執行檢測設備測試並提供裝置復原功能。
如果與裝置在測試執行完成前中斷,且成功復原,則所有 系統會通知 testRunFailed 和 false。測試指令 無法重新執行呼叫端可視需要重試。
如果與裝置在測試執行完成前中斷,但復原失敗,則所有 會接收 testRunFailed 的通知,並擲回 DeviceNotAvailableException。
參數 | |
---|---|
runner |
IRemoteAndroidTestRunner :執行測試的 IRemoteAndroidTestRunner |
listeners |
:測試結果事件監聽器 |
傳回 | |
---|---|
boolean |
如果測試指令已完成,則為 true 。false 表示失敗
因裝置通訊例外狀況而完成,但復原成功 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。ie test 指令無法完成,且無法復原。 |
runInstrumentationTestsAsUser
public abstract boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId,listeners)
參數 | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
|
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
DeviceNotAvailableException |
runInstrumentationTestsAsUser
public abstract boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
與 ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner,
ITestLifeCycleReceiver...)
相同,但為特定使用者執行測試。
參數 | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
ITestLifeCycleReceiver |
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
DeviceNotAvailableException |
設定日期
public abstract void setDate (Date date)
設定裝置上的日期
注意:必須啟用 Root 權限才能設定裝置日期
參數 | |
---|---|
date |
Date :指定特定日期;如果 null ,則會使用主機日期 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
setOptions
public abstract void setOptions (TestDeviceOptions options)
設定裝置的 TestDeviceOptions
參數 | |
---|---|
options |
TestDeviceOptions |
setProperty
public abstract boolean setProperty (String propKey, String propValue)
設定裝置上的指定的屬性值。需要 ADB 根為 true。
參數 | |
---|---|
propKey |
String :要設定的鍵。 |
propValue |
String :要設定的屬性值。 |
傳回 | |
---|---|
boolean |
如果 setprop 指令執行成功,會傳回 True ,否則會傳回 False。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
設定復原
public abstract void setRecovery (IDeviceRecovery recovery)
設定要用於此裝置的 IDeviceRecovery
。應在首次使用裝置時設定
參數 | |
---|---|
recovery |
IDeviceRecovery :IDeviceRecovery |
setRecoveryMode 模式
public abstract void setRecoveryMode (ITestDevice.RecoveryMode mode)
設定裝置目前使用的復原模式。
用於控管裝置通訊問題時的復原方法 。建議您只在必要時才使用這個方法 (例如 架構故障時等情形
參數 | |
---|---|
mode |
ITestDevice.RecoveryMode :是否「僅提供線上訂單」是否開啟模式 |
setTrackingSerial
public abstract void setTrackingSerial (String trackingSerial)
用於裝置管理用途,追蹤我們用來參照裝置的序號。
參數 | |
---|---|
trackingSerial |
String |
設定使用 FastbootErase
public abstract void setUseFastbootErase (boolean useFastbootErase)
設定是否要使用 Fastboot 清除或 Quickboot 格式來抹除裝置上的分區。
參數 | |
---|---|
useFastbootErase |
boolean :如果應使用 Fastboot 清除,則為 true ;如果應使用 Fastboot 清除,則設為 false
且應使用 Quickboot 格式。 |
開始 Logcat
public abstract void startLogcat ()
開始在背景擷取裝置的 Logcat 輸出內容。
如果已擷取 Logcat 輸出內容,就不會有任何作用。 之後可以透過 getLogcat 擷取資料。
如果裝置不再使用,就必須呼叫 stopLogcat()
。
一般情況下,無需呼叫 startLogcat()
和 stopLogcat()
,因為 TF 架構將啟動和停止 logcat。
stopEmulator 輸出
public abstract void stopEmulatorOutput ()
關閉並刪除模擬器輸出內容。
停止 Logcat
public abstract void stopLogcat ()
停止從裝置擷取 Logcat 輸出內容,並捨棄目前儲存的 logcat 資料。
如果未擷取 Logcat 輸出內容,就不會產生任何效果。
SwitchToAdbTcp
public abstract String switchToAdbTcp ()
將裝置切換至 adb-over-tcp 模式。
傳回 | |
---|---|
String |
tcp 序列編號;如果無法切換裝置,則為 null |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
切換至 AdbUsb
public abstract boolean switchToAdbUsb ()
將裝置切換到 ADB 模式。
傳回 | |
---|---|
boolean |
如果切換成功,則為 true ,否則為 false 。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
同步處理檔案
public abstract 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 abstract boolean unlockDevice ()
如果裝置處於加密狀態,就會解鎖裝置。
這個方法可能會重新啟動架構,但不會呼叫postBootSetup()
。因此
這個方法傳回時,裝置可能尚未完全做好測試準備。
傳回 | |
---|---|
boolean |
true 表示成功,或裝置未經加密。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
UnsupportedOperationException |
。 |
卸載 Debugfs
public abstract void unmountDebugfs ()
卸載偵錯 f。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
waitForBootComplete
public abstract boolean waitForBootComplete (long timeOut)
在裝置啟動完成標記設定前封鎖。
參數 | |
---|---|
timeOut |
long :等待標記設定時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置的開機完成標記是在逾時內設定,則為 true |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
waitForDeviceAvailable
public abstract boolean waitForDeviceAvailable ()
等待裝置回應且可供測試。使用預設逾時。
傳回 | |
---|---|
boolean |
如果裝置可以取得,則為 True;如果復原功能已停用且無法使用,則為 False。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
waitForDeviceAvailable
public abstract boolean waitForDeviceAvailable (long waitTime)
等待裝置回應且可供測試。
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置可以取得,則為 True;如果復原功能已停用且無法使用,則為 False。 |
擲回 | |
---|---|
DeviceNotAvailableException |
(等待時間過後,裝置仍未回應)。 |
waitForDeviceAvailableInRecoveryPath
public abstract boolean waitForDeviceAvailableInRecoverPath (long waitTime)
等待裝置回應且可正常使用,而不考慮復原路徑。
參數 | |
---|---|
waitTime |
long |
傳回 | |
---|---|
boolean |
如果裝置可供使用,則為 True;如果無法使用,則為 False。 |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
waitForDeviceBootloader
public abstract void waitForDeviceBootloader ()
封鎖,直到裝置透過 Fastboot 看見為止。使用預設逾時設定。
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
waitForDeviceInRecovery
public abstract boolean waitForDeviceInRecovery (long waitTime)
封鎖設為「ADB 復原」的裝置(請注意,這與
IDeviceRecovery
)。
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置在時間到期前啟動還原程序,則true 。
另有 false |
waitForDeviceInSideload
public abstract boolean waitForDeviceInSideload (long waitTime)
裝置位於 ADB 側載州
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置在時間到期前啟動並側載,則為 true 。另有 false
|
waitForDeviceNotAvailable
public abstract boolean waitForDeviceNotAvailable (long waitTime)
因 ADB 缺少裝置而無法使用的裝置
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置未在時間到期前推出,請true 。
另有 false |
waitForDeviceOnline
public abstract void waitForDeviceOnline ()
封鎖,直到透過 ADB 顯示裝置為止。使用預設逾時設定
請注意,裝置在執行完成後不一定能回應指令。使用
請改為使用「waitForDeviceAvailable()
」。
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
waitForDeviceOnline
public abstract void waitForDeviceOnline (long waitTime)
封鎖,直到透過 ADB 顯示裝置為止。
請注意,裝置在執行完成後不一定能回應指令。使用
請改為使用「waitForDeviceAvailable()
」。
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
擲回 | |
---|---|
DeviceNotAvailableException |
導致與裝置之間的連線中斷且無法 已復原。 |
waitForDeviceShell
public abstract boolean waitForDeviceShell (long waitTime)
等待裝置回應基本 ADB 殼層指令。
參數 | |
---|---|
waitTime |
long :等待時間 (毫秒) |
傳回 | |
---|---|
boolean |
如果裝置在 waitTime 前回應,則為 true 。 |