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)
輔助方法,用於檢查裝置是否在裝置和其 |
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)
輔助方法,可執行 ADB 殼層指令,並將結果傳回為 |
abstract
CommandResult
|
executeShellV2Command(String command, OutputStream pipeToOutput)
輔助方法,可執行 ADB 殼層指令,並將結果傳回為 |
abstract
CommandResult
|
executeShellV2Command(String command, File pipeAsInput)
輔助方法,可執行 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()
傳回裝置目前的電池電量,如果無法取得電池電量,則傳回 Null。 |
abstract
boolean
|
getBooleanProperty(String name, boolean defaultValue)
傳回指定屬性的布林值。 |
abstract
|
getBootHistory()
輔助方法會收集啟動時間和啟動原因的啟動記錄地圖。 |
abstract
|
getBootHistorySince(long utcEpochTime, TimeUnit timeUnit)
輔助方法會收集啟動歷史地圖,其中包含從裝置的指定時間起算,自紀元起算的時間和時間單位,以及啟動時間和啟動原因。 |
abstract
String
|
getBootloaderVersion()
取得此裝置的系統啟動載入程式版本的便利方法。 |
abstract
String
|
getBuildAlias()
擷取裝置目前執行的版本別名。 |
abstract
String
|
getBuildFlavor()
擷取裝置的版本風味。 |
abstract
String
|
getBuildId()
擷取裝置目前執行的版本。 |
abstract
String
|
getBuildSigningKeys()
傳回用於簽署裝置映像檔的金鑰類型 一般而言,Android 裝置可能會使用測試金鑰 (例如 AOSP) 或發布金鑰 (由個別裝置製造商控制) 進行簽署 |
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()
在快速系統啟動模式下,取得裝置產品類型的便利方法。 |
abstract
String
|
getFastbootProductVariant()
在快速系統啟動模式下,取得裝置產品類型的便利方法。 |
abstract
String
|
getFastbootSerialNumber()
傳回快速啟動模式序號。 |
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 上次觸發重新啟動作業的時間,以自 |
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」和「stat」指令,並傳回 |
abstract
String
|
getProcessPid(String process)
傳回服務的 pid,如果發生錯誤則傳回 null。 |
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 erase 或 fastboot format 來清除裝置上的分區。 |
abstract
boolean
|
isAdbRoot()
|
abstract
boolean
|
isAdbTcp()
|
abstract
boolean
|
isAppEnumerationSupported()
檢查裝置上的平台是否支援應用程式列舉 |
abstract
boolean
|
isBypassLowTargetSdkBlockSupported()
檢查裝置平台是否支援在應用程式安裝時略過低目標 SDK 封鎖機制 |
abstract
boolean
|
isDebugfsMounted()
檢查是否已掛載 debugfs。 |
abstract
boolean
|
isDeviceEncrypted()
傳回裝置是否受到加密保護。 |
abstract
boolean
|
isDirectory(String deviceFilePath)
如果裝置上的路徑是目錄,則傳回 True,否則傳回 false。 |
abstract
boolean
|
isEncryptionSupported()
傳回裝置是否支援加密功能。 |
abstract
boolean
|
isExecutable(String fullPath)
如果裝置上的檔案路徑是可執行檔案,則傳回「是」;否則傳回「否」。 |
abstract
boolean
|
isHeadless()
如果裝置是無頭裝置 (沒有螢幕),則傳回「是」,否則傳回「否」。 |
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()
將裝置重新啟動為快速系統啟動模式。 |
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 erase 或 fastboot format 來清除裝置上的分區。 |
abstract
void
|
startLogcat()
開始在背景擷取裝置的 Logcat 輸出內容。 |
abstract
boolean
|
startTradeInModeTesting(int timeoutMs)
啟用測試換購模式。 |
abstract
void
|
stopEmulatorOutput()
關閉並刪除模擬器輸出內容。 |
abstract
void
|
stopLogcat()
停止擷取裝置的 Logcat 輸出內容,並捨棄目前儲存的 Logcat 資料。 |
abstract
void
|
stopTradeInModeTesting()
停止測試換購模式。 |
abstract
String
|
switchToAdbTcp()
將裝置切換至 ADB-over-TCP 模式。 |
abstract
boolean
|
switchToAdbUsb()
將裝置切換至透過 USB 的 ADB 模式。 |
abstract
boolean
|
syncFiles(File localFileDir, String deviceFilePath)
將本機檔案目錄的內容以遞增方式同步至裝置。 |
abstract
boolean
|
unlockDevice()
如果裝置處於加密狀態,則解鎖裝置。 |
abstract
void
|
unmountDebugfs()
卸載 debugfs。 |
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 recovery」狀態才能執行的區塊 (請注意,這與 |
abstract
boolean
|
waitForDeviceInSideload(long waitTime)
裝置必須處於「adb sideload」狀態才能進行封鎖 |
abstract
boolean
|
waitForDeviceNotAvailable(long waitTime)
無法使用的裝置區塊,例如 ADB 中缺少的區塊 |
abstract
void
|
waitForDeviceOnline()
直到裝置可透過 ADB 查看為止。 |
abstract
void
|
waitForDeviceOnline(long waitTime)
直到裝置可透過 ADB 查看為止。 |
abstract
boolean
|
waitForDeviceShell(long waitTime)
等待裝置回應基本 ADB 殼層指令。 |
常數
UNKNOWN_API_LEVEL
public static final int UNKNOWN_API_LEVEL
無法偵測 API 級別時的預設值
常數值:-1 (0xffffffff)
公用方法
checkApiLevelAgainstNextRelease
public abstract boolean checkApiLevelAgainstNextRelease (int strictMinLevel)
確認某項功能目前是否支援最小支援級別。這個方法會在 API 級別提升前,考量尚未發布的功能。
參數 | |
---|---|
strictMinLevel |
int :支援該功能的嚴格最小可能版本。 |
傳回 | |
---|---|
boolean |
如果系統支援該等級,則為 True。否則為 False。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
clearLogcat
public abstract void clearLogcat ()
刪除所有累積的 Logcat 資料。
這在您想確保 ITestDevice.getLogcat()
只會傳回特定時間點後產生的記錄資料 (例如刷新新裝置版本後) 時很有用。
deleteFile
public abstract void deleteFile (String deviceFilePath)
用於刪除裝置上檔案或目錄的輔助方法。
參數 | |
---|---|
deviceFilePath |
String :裝置上檔案的絕對路徑。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
deleteFile
public abstract void deleteFile (String deviceFilePath, int userId)
用於刪除裝置上檔案或目錄的輔助方法。
參數 | |
---|---|
deviceFilePath |
String :裝置上檔案的絕對路徑。 |
userId |
int :要從中刪除的使用者 ID |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
deviceSoftRestarted
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 |
deviceSoftRestartedSince
public abstract boolean deviceSoftRestartedSince (long utcEpochTime, TimeUnit timeUnit)
輔助方法,用於檢查裝置和其 ERROR(/TimeUnit)
自 Epoch 紀元時間起算的 UTC 時間是否已軟重啟。軟重啟是指在裝置強制重啟 (例如:要求重啟) 之外重新啟動 system_server。您可以使用 getDeviceDate()
方法,取得目前裝置的 utcEpochTime 以毫秒為單位。
參數 | |
---|---|
utcEpochTime |
long :裝置時間,從紀元時間起算的秒數。 |
timeUnit |
TimeUnit :指定 utcEpochTime 的時間單位 TimeUnit 。 |
傳回 | |
---|---|
boolean |
true 裝置是否已軟體重新啟動 |
擲回 | |
---|---|
RuntimeException |
裝置是否有異常的啟動原因 |
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
disableAdbRoot
public abstract boolean disableAdbRoot ()
關閉 ADB 根目錄。
停用 ADB 根目錄可能會導致裝置與 ADB 斷開連線。這個方法會在裝置可用之前阻斷。
傳回 | |
---|---|
boolean |
成功時會傳回 true 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
doesFileExist
public abstract boolean doesFileExist (String deviceFilePath)
輔助方法,用於判斷裝置上是否有檔案。
參數 | |
---|---|
deviceFilePath |
String :要檢查的裝置檔案絕對路徑 |
傳回 | |
---|---|
boolean |
如果檔案存在,則傳回 true ;否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
enableAdbRoot
public abstract boolean enableAdbRoot ()
開啟 ADB 根目錄。如果「enable-root」設定為「false」,系統會記錄訊息,並在不啟用 root 的情況下傳回。
啟用 ADB 根目錄可能會導致裝置與 ADB 中斷連線。這個方法會在裝置可用之前阻斷。
傳回 | |
---|---|
boolean |
成功時會傳回 true 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeAdbCommand
public abstract String executeAdbCommand (long timeout, String... commandArgs)
輔助方法,可將 ADB 指令做為系統指令執行,並設有指定的逾時期限。
盡可能使用 executeShellCommand(String)
,因為該方法可提供更佳的失敗偵測和效能。
參數 | |
---|---|
timeout |
long :裝置被視為無回應之前的時間 (以毫秒為單位),如果沒有逾時時間,則為 0L |
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
指令的 stdout。null ,如果指令無法執行。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeAdbCommand
public abstract String executeAdbCommand (String... commandArgs)
輔助方法,可將 ADB 指令做為系統指令執行。
盡可能使用 executeShellCommand(String)
,因為該方法可提供更佳的失敗偵測和效能。
參數 | |
---|---|
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
指令的 stdout。null ,如果指令無法執行。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeAdbCommand
public abstract String executeAdbCommand (long timeout,envMap, String... commandArgs)
輔助方法,可將 ADB 指令做為系統指令執行,並設有指定的逾時期限。
盡可能使用 executeShellCommand(String)
,因為該方法可提供更佳的失敗偵測和效能。
參數 | |
---|---|
timeout |
long :裝置被視為無回應之前的時間 (以毫秒為單位),如果沒有逾時時間,則為 0L |
envMap |
:要為指令設定的環境 |
commandArgs |
String :要執行的 ADB 指令和引數 |
傳回 | |
---|---|
String |
指令的 stdout。null ,如果指令無法執行。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeFastbootCommand
public abstract CommandResult executeFastbootCommand (long timeout, String... commandArgs)
輔助方法,可將 fastboot 指令做為系統指令執行。
應在裝置已進入快速系統啟動模式時使用。
參數 | |
---|---|
timeout |
long :指令到期前剩餘的時間 (以毫秒為單位) |
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeFastbootCommand
public abstract CommandResult executeFastbootCommand (String... commandArgs)
輔助方法,可將 fastboot 指令做為系統指令執行,預設逾時時間為 2 分鐘。
應在裝置已進入快速系統啟動模式時使用。
參數 | |
---|---|
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeLongFastbootCommand
public abstract CommandResult executeLongFastbootCommand (String... commandArgs)
輔助方法,可將長時間執行的 fastboot 指令視為系統指令執行。
與 executeFastbootCommand(String)
相同,但使用較長的逾時時間。
參數 | |
---|---|
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeLongFastbootCommand
public abstract CommandResult executeLongFastbootCommand (envVarMap, String... commandArgs)
輔助方法,可將長時間執行的 fastboot 指令做為系統指令,並搭配系統環境變數執行。
與 executeFastbootCommand(String)
相同,但使用較長的逾時時間。
參數 | |
---|---|
envVarMap |
:fastboot 指令執行時使用的系統環境變數 |
commandArgs |
String :要執行的 Fastboot 指令和引數 |
傳回 | |
---|---|
CommandResult |
包含指令輸出的 CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellCommand
public abstract String executeShellCommand (String command)
執行 ADB 殼層指令並以 String
格式傳回輸出的輔助方法。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
傳回 | |
---|---|
String |
殼層輸出 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellCommand
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 失敗,系統會擲回 DeviceNotResponsiveException。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellCommand
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 失敗,系統會擲回 DeviceNotResponsiveException。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellCommand
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 |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
public abstract CommandResult executeShellV2Command (String command)
輔助方法,可執行 ADB 殼層指令,並將結果傳回為 CommandResult
,並以適當方式填入指令狀態輸出內容、stdout 和 stderr。
參數 | |
---|---|
command |
String :應執行的指令。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
public abstract CommandResult executeShellV2Command (String command, OutputStream pipeToOutput)
輔助方法,可執行 ADB 殼層指令,並將結果傳回為 CommandResult
,並以適當方式填入指令狀態輸出內容和 stderr。stdout 會導向至指定的串流。
參數 | |
---|---|
command |
String :應執行的指令。 |
pipeToOutput |
OutputStream :ERROR(/OutputStream) 會重新導向 std 輸出內容,或為空值。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
public abstract CommandResult executeShellV2Command (String command, File pipeAsInput)
輔助方法,可執行 ADB 殼層指令,並將結果傳回為 CommandResult
,並以適當方式填入指令狀態輸出內容、stdout 和 stderr。
參數 | |
---|---|
command |
String :應執行的指令。 |
pipeAsInput |
File :會以管道輸送至指令做為輸入內容的 ERROR(/File) ,或空值。 |
傳回 | |
---|---|
CommandResult |
CommandResult 中的結果。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
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 失敗,系統會擲回 DeviceNotResponsiveException。 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
public abstract CommandResult executeShellV2Command (String command, long maxTimeoutForCommand, TimeUnit timeUnit)
執行 ADB 殼層指令,並提供更多參數來控制指令行為。
參數 | |
---|---|
command |
String :要執行的 ADB 殼層指令 |
maxTimeoutForCommand |
long :指令完成的最大逾時時間;單位為 timeUnit 中指定的單位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
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 :ERROR(/OutputStream) 會重新導向 std 輸出內容,或為空值。 |
maxTimeoutForCommand |
long :指令完成的最大逾時時間;單位為 timeUnit 中指定的單位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令因例外狀況而失敗,則重試指令的次數上限。如果執行 retryAttempts 失敗,系統會擲回 DeviceNotResponsiveException。 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
executeShellV2Command
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 :ERROR(/OutputStream) 會重新導向 std 輸出內容,或為空值。 |
pipeToError |
OutputStream :ERROR(/OutputStream) ,其中 std 錯誤會重新導向,或為空值。 |
maxTimeoutForCommand |
long :指令完成的最大逾時時間;單位為 timeUnit 中指定的單位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的單位 |
retryAttempts |
int :如果指令因例外狀況而失敗,則重試指令的次數上限。如果執行 retryAttempts 失敗,系統會擲回 DeviceNotResponsiveException。 |
傳回 | |
---|---|
CommandResult |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
fastbootWipePartition
public abstract CommandResult fastbootWipePartition (String partition)
裝置分區的輔助方法。
如果 getUseFastbootErase()
是 true
,則會使用 fastboot erase 來清除分區。裝置必須在下次啟動時建立檔案系統。否則,系統會使用 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 裝置來說並不準確,且此處傳回的版本可能與 fastboot 回報的版本不符,也可能不會傳回 CDMA 無線電的版本。簡而言之,只有在 gsm.version.baseband 屬性與 fastboot getvar version-baseband
傳回的版本相同時,這個方法才會回報正確的版本。
傳回 | |
---|---|
String |
String 基頻版本或 null (如果無法判斷)
(裝置沒有無線電或無法讀取版本字串) |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
getBattery
public abstract Integer getBattery ()
傳回裝置目前的電池電量,如果無法取得電池電量,則傳回 Null。
傳回 | |
---|---|
Integer |
getBooleanProperty
public abstract boolean getBooleanProperty (String name, boolean defaultValue)
傳回指定屬性的布林值。
參數 | |
---|---|
name |
String :屬性名稱 |
defaultValue |
boolean :如果屬性為空白或不存在,則傳回預設值。 |
傳回 | |
---|---|
boolean |
如果屬性值為 "1" 、"y" 、"yes" 、"on" 或 "true" ,則為 true ;如果屬性值為 "0" 、"n" 、"no" 、"off" 、"false" 或 defaultValue ,則為 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootHistory
public abstractgetBootHistory ()
輔助方法會收集啟動時間和啟動原因的啟動記錄地圖。
傳回 | |
---|---|
|
開機時間 (從 Epoch 紀元時間起算,以世界標準時間秒為單位) 和開機原因對照表 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootHistorySince
public abstractgetBootHistorySince (long utcEpochTime, TimeUnit timeUnit)
輔助方法會收集啟動歷史地圖,其中包含從裝置的紀元起算的指定時間,以及指定的時間單位和啟動時間和啟動原因。您可以使用 getDeviceDate()
方法,取得目前裝置的 utcEpochTime 以毫秒為單位。
參數 | |
---|---|
utcEpochTime |
long :自 Epoch 起算的裝置時間。 |
timeUnit |
TimeUnit :時間單位 TimeUnit 。 |
傳回 | |
---|---|
|
開機時間 (從 Epoch 紀元時間起算,以世界標準時間秒為單位) 和開機原因對照表 |
擲回 | |
---|---|
DeviceNotAvailableException |
getBootloaderVersion
public abstract String getBootloaderVersion ()
取得此裝置的系統啟動載入程式版本的便利方法。
會嘗試從裝置目前狀態中擷取 Bootloader 版本。(例如,如果裝置處於快速系統啟動模式,則會嘗試從快速系統啟動模式擷取版本)
傳回 | |
---|---|
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 裝置會使用測試金鑰 (例如 AOSP) 或發布金鑰 (由個別裝置製造商控制) 進行簽署
傳回 | |
---|---|
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 |
getDeviceDate
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 |
如果與裝置的連線中斷且無法復原。 |
getFastbootProductType
public abstract String getFastbootProductType ()
在快速系統啟動模式下,取得裝置產品類型的便利方法。
只有在裝置處於快速啟動狀態時,才應使用此方法。在這種情況下,這個變化版本比一般 getProductType()
方法安全一些,因為如果裝置處於不正確狀態或無回應,ITestDevice 就會知道要將裝置復原為 fastboot。
傳回 | |
---|---|
String |
String 產品類型名稱,如果無法判斷,則為 null |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
getFastbootProductVariant
public abstract String getFastbootProductVariant ()
在快速系統啟動模式下,取得裝置產品類型的便利方法。
只有在裝置處於快速啟動狀態時,才應使用此方法。在這種情況下,這個變化版本比一般 getProductType()
方法安全一些,因為如果裝置處於不正確狀態或無回應,ITestDevice 就會知道要將裝置復原為 fastboot。
傳回 | |
---|---|
String |
String 產品類型名稱,如果無法判斷,則為 null |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
getFastbootSerialNumber
public abstract String getFastbootSerialNumber ()
傳回快速啟動模式序號。
傳回 | |
---|---|
String |
getFastbootVariable
public abstract String getFastbootVariable (String variableName)
從裝置擷取指定的 fastboot 變數值。
參數 | |
---|---|
variableName |
String :變數名稱 |
傳回 | |
---|---|
String |
屬性值,如果不存在則為 null |
擲回 | |
---|---|
|
UnsupportedOperationException |
DeviceNotAvailableException |
getFileEntry
public abstract IFileEntry getFileEntry (String path)
擷取裝置上遠端檔案的參照。
參數 | |
---|---|
path |
String :要擷取的檔案路徑。可以是絕對路徑或相對於「/」的路徑 (也就是說,系統支援「/system」和「system」兩種語法) |
傳回 | |
---|---|
IFileEntry |
如果找不到指定 path 的檔案,則為 IFileEntry 或 null |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getIDevice
public abstract IDevice getIDevice ()
傳回相關 ddmlib IDevice
的參照。
每次裝置從 ADB 中斷連線並重新連線時,DDMS 都可能會分配新的 IDevice
。因此,呼叫端不應保留 IDevice
的參照,因為該參照可能會失效。
傳回 | |
---|---|
IDevice |
IDevice |
getIntProperty
public abstract long getIntProperty (String name, long defaultValue)
傳回裝置中指定屬性的整數值。
參數 | |
---|---|
name |
String :屬性名稱 |
defaultValue |
long :如果屬性為空白或不存在,則傳回預設值。 |
傳回 | |
---|---|
long |
屬性值或 defaultValue (如果屬性為空白、不存在或沒有整數值)。 |
擲回 | |
---|---|
DeviceNotAvailableException |
getLastExpectedRebootTimeMillis
public abstract long getLastExpectedRebootTimeMillis ()
傳回 Tradefed API 上次觸發重新啟動作業的時間,以 System.currentTimeMillis()
傳回的 EPOCH 為基準,以毫秒為單位。
傳回 | |
---|---|
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()
個位元組傳回 | |
---|---|
InputStreamSource |
getLogcat
public abstract InputStreamSource getLogcat (int maxBytes)
擷取最後 maxBytes
個擷取的 Logcat 資料的快照串流。
適用於您想經常擷取擷取的 logcat 資料快照,但又不想因擷取整個 getLogcat()
快照而耗用大量磁碟空間的情況。
參數 | |
---|---|
maxBytes |
int :傳回的資料數量上限。應為可輕鬆放入記憶體的數量 |
傳回 | |
---|---|
InputStreamSource |
getLogcatDump
public abstract InputStreamSource getLogcatDump ()
取得裝置目前的 Logcat 轉儲檔案。與 getLogcat()
不同,此方法一律會傳回 logcat 的靜態傾印。
缺點是,如果無法連線到裝置,就不會傳回任何內容。
傳回 | |
---|---|
InputStreamSource |
InputStreamSource 的 Logcat 資料。如果擷取 logcat 資料失敗,系統會傳回空白串流。 |
getLogcatSince
public abstract InputStreamSource getLogcatSince (long date)
擷取擷取的 Logcat 資料快照串流,從指定日期開始。應使用裝置上的時間 getDeviceDate()
。
參數 | |
---|---|
date |
long :以 Epoch 格式表示的毫秒數,代表從何時開始擷取快照到目前的時間。(可使用「date +%s」取得) |
傳回 | |
---|---|
InputStreamSource |
getMountPoint
public abstract String getMountPoint (String mountName)
傳回掛接點。
如果 IDevice
中的快取資訊無法使用,則直接查詢裝置。
TODO:將此行為移至 IDevice.getMountPoint(String)
參數 | |
---|---|
mountName |
String :掛接點的名稱 |
傳回 | |
---|---|
String |
掛接點或 null |
getMountPointInfo
public abstract ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)
傳回與指定掛載點路徑相對應的 MountPointInfo
,如果該路徑沒有任何掛載項目,或未以掛載點的形式顯示在 /proc/mounts 中,則傳回 null
。
參數 | |
---|---|
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」和「stat」指令,並傳回 ProcessInfo
物件,其中包含 PID 和指定程序的程序開始時間。
參數 | |
---|---|
processName |
String :程序名稱字串。 |
傳回 | |
---|---|
ProcessInfo |
指定的 processName 的 ProcessInfo |
擲回 | |
---|---|
DeviceNotAvailableException |
getProcessPid
public abstract String getProcessPid (String process)
傳回服務的 pid,如果發生錯誤則傳回 null。
參數 | |
---|---|
process |
String :程序名稱字串。 |
傳回 | |
---|---|
String |
擲回 | |
---|---|
DeviceNotAvailableException |
getProductType
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
會提早終止方法。
傳回 | |
---|---|
|
墓碑檔案清單,如果沒有墓碑,則為空白。 |
擲回 | |
---|---|
DeviceNotAvailableException |
另請參閱:
getTotalMemory
public abstract long getTotalMemory ()
以位元組為單位傳回實體記憶體總大小,或在發生內部錯誤時傳回 -1
傳回 | |
---|---|
long |
getTrackingSerial
public String getTrackingSerial ()
為了裝置管理目的,請取得用於追蹤裝置的序號。
傳回 | |
---|---|
String |
getUseFastbootErase
public abstract boolean getUseFastbootErase ()
取得是否要使用 fastboot erase 或 fastboot format 來清除裝置上的分區。
傳回 | |
---|---|
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 |
如果支援應用程式列舉,則傳回「是」;否則傳回「否」 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isBypassLowTargetSdkBlockSupported
public abstract boolean isBypassLowTargetSdkBlockSupported ()
檢查裝置平台是否支援在應用程式安裝時略過低目標 SDK 封鎖
傳回 | |
---|---|
boolean |
如果支援略過低目標 SDK 區塊,則傳回「是」,否則傳回「否」 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isDebugfsMounted
public abstract boolean isDebugfsMounted ()
檢查是否已掛載 debugfs。
傳回 | |
---|---|
boolean |
true (如果已掛載 debugfs) |
擲回 | |
---|---|
|
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 |
isEncryptionSupported
public abstract boolean isEncryptionSupported ()
傳回裝置是否支援加密功能。
傳回 | |
---|---|
boolean |
true (如果裝置支援加密功能)。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isExecutable
public abstract boolean isExecutable (String fullPath)
如果裝置上的檔案路徑是可執行檔案,則傳回「True」;否則傳回「false」。
參數 | |
---|---|
fullPath |
String |
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
isHeadless
public abstract boolean isHeadless ()
如果裝置為無頭裝置 (沒有螢幕),則傳回 true,否則傳回 false。
傳回 | |
---|---|
boolean |
擲回 | |
---|---|
DeviceNotAvailableException |
isRuntimePermissionSupported
public abstract boolean isRuntimePermissionSupported ()
檢查裝置上的平台是否支援執行階段權限授予
傳回 | |
---|---|
boolean |
如果支援執行階段權限,則傳回「是」;否則傳回「否」。 |
擲回 | |
---|---|
|
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 |
logOnDevice
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() 取代的 args。 |
mountDebugfs
public abstract void mountDebugfs ()
掛接 debugfs。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
nonBlockingReboot
public abstract void nonBlockingReboot ()
發出指令重新啟動裝置,並在指令完成及裝置不再對 ADB 可見時傳回。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postBootSetup
public abstract void postBootSetup ()
執行操作說明,設定裝置以便每次啟動後進行測試。
應在裝置完全啟動/可用後呼叫
在一般情況下,您不需要明確呼叫這個方法,因為實作項目應在重新啟動時自動執行這些步驟。
當裝置因其他事件 (例如 fastboot 更新指令完成) 而重新啟動時,可能需要呼叫此方法。
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
postInvocationTearDown
public void postInvocationTearDown ()
This method is deprecated.
請改用 postInvocationTearDown(Throwable)
。
針對裝置特定的必要清理作業,在叫用完成後執行額外步驟。
postInvocationTearDown
public abstract void postInvocationTearDown (Throwable invocationException)
針對裝置特定的必要清理作業,在叫用完成後執行額外步驟。
參數 | |
---|---|
invocationException |
Throwable :如果有,則為叫用失敗所引發的最終例外狀況。 |
preInvocationSetup
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 |
pullDir
public abstract boolean pullDir (String deviceFilePath, File localDir)
遞迴式從裝置中提取目錄內容。
參數 | |
---|---|
deviceFilePath |
String :遠端來源的絕對檔案路徑 |
localDir |
File :要將檔案拉入的本機目錄 |
傳回 | |
---|---|
boolean |
true ,如果檔案已成功拉取。否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
pullDir
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 |
pullFileFromExternal
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 |
如果與裝置的連線中斷且無法復原。 |
pushFile
public abstract boolean pushFile (File localFile, String deviceFilePath, boolean evaluateContentProviderNeeded)
pushFile(File, String)
的變化版本,可視需要評估內容供應者的需要。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地檔案的絕對路徑 |
evaluateContentProviderNeeded |
boolean :是否要檢查是否需要內容供應器 |
傳回 | |
---|---|
boolean |
true :如果檔案已成功推送。否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
pushFile
public abstract boolean pushFile (File localFile, String deviceFilePath)
將檔案推送至裝置。預設使用內容供應器。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地檔案的絕對路徑 |
傳回 | |
---|---|
boolean |
true :如果檔案已成功推送。否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
pushFile
public abstract boolean pushFile (File localFile, String deviceFilePath, int userId)
將檔案推送至裝置。預設使用內容供應器。
參數 | |
---|---|
localFile |
File :要推送的本機檔案 |
deviceFilePath |
String :遠端目的地檔案的絕對路徑 |
userId |
int :要推送至的 userId |
傳回 | |
---|---|
boolean |
true :如果檔案已成功推送。否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
pushString
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 |
如果裝置在重新啟動後無法使用 |
rebootIntoBootloader
public abstract void rebootIntoBootloader ()
重新啟動裝置並進入系統啟動載入程式模式。
阻斷裝置,直到裝置進入系統啟動載入程式模式。
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
rebootIntoFastbootd
public abstract void rebootIntoFastbootd ()
將裝置重新啟動至快速系統啟動模式。
直到裝置進入快速系統啟動模式為止。
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
rebootIntoRecovery
public abstract void rebootIntoRecovery ()
重新啟動裝置,進入 ADB 復原模式。
阻斷裝置進入復原模式
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後無法使用 |
rebootIntoSideload
public abstract void rebootIntoSideload (boolean autoReboot)
將裝置重新啟動至 ADB 側載模式 (請注意,這是復原模式下的特殊模式)
阻斷裝置進入側載模式
參數 | |
---|---|
autoReboot |
boolean :側載後是否自動重新啟動裝置 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後未處於側載狀態 |
rebootIntoSideload
public abstract void rebootIntoSideload ()
將裝置重新啟動至 ADB 側載模式 (請注意,這是復原模式下的特殊模式)
阻斷裝置進入側載模式
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後未處於側載狀態 |
rebootUntilOnline
public abstract void rebootUntilOnline ()
reboot()
的替代方案,只會在裝置連上網路 (即對 adb 可見) 時阻斷。
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後無法使用 |
rebootUntilOnline
public abstract void rebootUntilOnline (String reason)
reboot()
的替代方案,只會在裝置連上網路 (即對 adb 可見) 時阻斷。
參數 | |
---|---|
reason |
String :重新啟動的原因,如果未指定原因,則為 null 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後無法使用 |
另請參閱:
rebootUserspace
public abstract void rebootUserspace ()
僅重新啟動裝置的使用者空間部分。
直到裝置可供使用為止。
警告!使用者空間重新啟動功能目前仍在積極開發中,請自行承擔使用風險。
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後無法使用 |
rebootUserspaceUntilOnline
public abstract void rebootUserspaceUntilOnline ()
rebootUserspace()
()} 的替代方案,只會在裝置上線 (即可供 ADB 查看) 時阻斷。
擲回 | |
---|---|
DeviceNotAvailableException |
如果裝置在重新啟動後無法使用 |
remountSystemReadOnly
public abstract void remountSystemReadOnly ()
將裝置上的系統分區設為唯讀。可能會重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
remountSystemWritable
public abstract void remountSystemWritable ()
讓裝置上的系統分區可供寫入。可能會重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
remountVendorReadOnly
public abstract void remountVendorReadOnly ()
將裝置上的供應商分區設為唯讀。可能會重新啟動裝置。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
remountVendorWritable
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 |
如果與裝置的連線中斷且無法復原,例如測試指令無法完成且復原失敗。 |
runInstrumentationTests
public abstract boolean runInstrumentationTests (IRemoteAndroidTestRunner runner,listeners)
執行檢測設備測試,並提供裝置復原功能。
如果在測試執行完成前與裝置的連線中斷,且復原作業成功,則所有事件監聽器都會收到 testRunFailed 通知,並傳回「false」。系統不會重新執行測試指令。如有必要,呼叫端可重試。
如果在測試執行完成前與裝置的連線中斷,且復原作業失敗,則所有事件監聽器都會收到 testRunFailed 通知,並擲回 DeviceNotAvailableException。
參數 | |
---|---|
runner |
IRemoteAndroidTestRunner :執行測試的 IRemoteAndroidTestRunner |
listeners |
:測試結果事件監聽器 |
傳回 | |
---|---|
boolean |
true ,表示測試指令已完成。false :如果因裝置通訊例外狀況而無法完成,但復原作業成功 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原,例如測試指令無法完成且復原失敗。 |
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 |
setDate
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 root 為 true。
參數 | |
---|---|
propKey |
String :要設定的目標鍵。 |
propValue |
String :要設定的屬性值。 |
傳回 | |
---|---|
boolean |
如果 setprop 指令成功,則會傳回 True ,否則傳回 False。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
setRecovery
public abstract void setRecovery (IDeviceRecovery recovery)
設定要用於這部裝置的 IDeviceRecovery
。應在裝置首次分配時設定。
參數 | |
---|---|
recovery |
IDeviceRecovery :IDeviceRecovery |
setRecoveryMode
public abstract void setRecoveryMode (ITestDevice.RecoveryMode mode)
設定裝置目前要使用的復原模式。
用於控制在發生裝置通訊問題時,要使用的復原方法。建議您只在必要時才使用此方法 (例如架構發生故障時)。
參數 | |
---|---|
mode |
ITestDevice.RecoveryMode :是否應開啟「recover till online only」模式。 |
setTrackingSerial
public abstract void setTrackingSerial (String trackingSerial)
為了管理裝置,請追蹤我們用於參照裝置的序號。
參數 | |
---|---|
trackingSerial |
String |
setUseFastbootErase
public abstract void setUseFastbootErase (boolean useFastbootErase)
設定是否要使用 fastboot erase 或 fastboot format 來清除裝置上的分區。
參數 | |
---|---|
useFastbootErase |
boolean :如果應使用 fastboot 擦除功能,請使用 true ;如果應使用 fastboot 格式功能,請使用 false 。 |
startLogcat
public abstract void startLogcat ()
開始在背景擷取裝置的 Logcat 輸出內容。
如果 logcat 輸出內容已擷取,則不會產生任何影響。您之後可以透過 getLogcat 擷取資料。
當裝置不再使用時,必須呼叫 stopLogcat()
。
在 TF 叫用內容中,通常不需要呼叫 startLogcat()
和 stopLogcat()
,因為 TF 架構會啟動及停止 logcat。
startTradeInModeTesting
public abstract boolean startTradeInModeTesting (int timeoutMs)
啟用測試換購模式。裝置會完成資料清除並重新啟動。
參數 | |
---|---|
timeoutMs |
int |
傳回 | |
---|---|
boolean |
如果成功,則傳回 True,否則傳回 false |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
stopEmulatorOutput
public abstract void stopEmulatorOutput ()
關閉並刪除模擬器輸出內容。
stopLogcat
public abstract void stopLogcat ()
停止擷取裝置的 Logcat 輸出內容,並捨棄目前儲存的 Logcat 資料。
如果未擷取 Logcat 輸出內容,這個選項就不會生效。
stopTradeInModeTesting
public abstract void stopTradeInModeTesting ()
停止測試換購模式。裝置會重新啟動。
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
switchToAdbTcp
public abstract String switchToAdbTcp ()
將裝置切換至 ADB-over-TCP 模式。
傳回 | |
---|---|
String |
裝置無法切換時,請提供 TCP 序號或 null |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
switchToAdbUsb
public abstract boolean switchToAdbUsb ()
將裝置切換至透過 USB 的 ADB 模式。
傳回 | |
---|---|
boolean |
如果切換成功,則為 true ,否則為 false 。 |
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
syncFiles
public abstract boolean syncFiles (File localFileDir, String deviceFilePath)
將本機檔案目錄的內容以遞增方式同步至裝置。
比較本機檔案與遠端檔案的時間戳記,決定要推送哪些檔案。系統只會將「較新的」或不存在的檔案推送至裝置。因此,如果裝置上的檔案集已更新,則額外負擔應會相對較小。
系統會忽略隱藏檔案 (名稱開頭為「.」)。
使用方式範例:syncFiles("/tmp/files", "/sdcard") 會在 /sdcard/files 目錄不存在時建立該目錄,並遞迴將 /tmp/files 內容推送至 /sdcard/files。
參數 | |
---|---|
localFileDir |
File :本機檔案目錄,其中包含要遞迴推送的檔案。 |
deviceFilePath |
String :遠端目的地檔案的絕對路徑根目錄。這些檔案路徑中的所有目錄都必須可讀取。舉例來說,如果 ADB 不是根目錄,則推送至 /data/local/tmp 會失敗 |
傳回 | |
---|---|
boolean |
true ,如果檔案已成功同步處理。否則傳回 false 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
unlockDevice
public abstract boolean unlockDevice ()
如果裝置處於加密狀態,則解鎖裝置。
這個方法可能會重新啟動架構,但不會呼叫postBootSetup()
。因此,在這個方法傳回時,裝置可能尚未完全就緒,無法進行測試。
傳回 | |
---|---|
boolean |
true (如果成功或裝置未加密)。 |
擲回 | |
---|---|
DeviceNotAvailableException |
如果與裝置的連線中斷且無法復原。 |
UnsupportedOperationException |
裝置不支援加密功能。 |
unmountDebugfs
public abstract void unmountDebugfs ()
卸載 debugfs。
擲回 | |
---|---|
|
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 |
如果裝置在 waitTime 到期後仍未回應。 |
waitForDeviceAvailableInRecoverPath
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 recovery」狀態才能執行的區塊 (請注意,這與 IDeviceRecovery
不同)。
參數 | |
---|---|
waitTime |
long :等待時間 (以毫秒為單位) |
傳回 | |
---|---|
boolean |
true 如果裝置在時間到期前啟動至復原模式。其他情況則為 false |
waitForDeviceInSideload
public abstract boolean waitForDeviceInSideload (long waitTime)
裝置處於「adb sideload」狀態時的區塊
參數 | |
---|---|
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 。 |