IDevice

public interface IDevice
implements IShellEnabledDevice

com.android.ddmlib.IDevice


裝置。可以是實體裝置或模擬器。

摘要

常數

int CHANGE_BUILD_INFO

裝置變更位元遮罩:建構資訊變更。

int CHANGE_CLIENT_LIST

裝置變更位元遮罩:Client 清單變更。

int CHANGE_PROFILEABLE_CLIENT_LIST

裝置變更位元遮罩:ProfileableClient 清單變更。

int CHANGE_STATE

裝置變更位元遮罩:DeviceState 變更。

String FIRST_EMULATOR_SN

第一個連線模擬器的序號。

String MNT_DATA

String MNT_EXTERNAL_STORAGE

String MNT_ROOT

String PROP_BUILD_API_LEVEL

String PROP_BUILD_CHARACTERISTICS

String PROP_BUILD_CODENAME

String PROP_BUILD_TAGS

String PROP_BUILD_TYPE

String PROP_BUILD_VERSION

String PROP_BUILD_VERSION_NUMBER

這個常數已淘汰。 使用 PROP_BUILD_API_LEVEL

String PROP_DEBUGGABLE

String PROP_DEVICE_CPU_ABI

String PROP_DEVICE_CPU_ABI2

String PROP_DEVICE_CPU_ABI_LIST

String PROP_DEVICE_DENSITY

String PROP_DEVICE_EMULATOR_DENSITY

String PROP_DEVICE_LANGUAGE

String PROP_DEVICE_MANUFACTURER

String PROP_DEVICE_MODEL

String PROP_DEVICE_REGION

String RE_EMULATOR_SN

模擬器序號的 Regexp。

String UNKNOWN_PACKAGE

公用方法

abstract boolean arePropertiesSet()

如果屬性已快取,則傳回 true

abstract void createForward(int localPort, String remoteSocketName, IDevice.DeviceUnixSocketNamespace namespace)

在本地 TCP 連接埠和遠端 Unix 網域通訊端之間建立連接埠轉送。

abstract void createForward(int localPort, int remotePort)

在本地和遠端通訊埠之間建立通訊埠轉送。

default void createReverse(int remotePort, int localPort)

在遠端和本機通訊埠之間建立通訊埠反向。

default void executeBinderCommand(String[] parameters, IShellOutputReceiver receiver, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)

在裝置上執行 Binder 指令,並將結果傳送至 receiver

如果裝置 OS 和主機 ADB 伺服器都支援 Android Binder Bridge 執行功能,這會使用 exec:cmd 呼叫或更快的 abb_exec:

default void executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)

executeShell 指令的版本,可接收輸入串流並透過 stdin 傳送。

abstract void executeShellCommand(String command, IShellOutputReceiver receiver)

在裝置上執行殼層指令,並將結果傳送至 receiver

這類似於呼叫 executeShellCommand(command, receiver, DdmPreferences.getTimeOut())

abstract void executeShellCommand(String command, IShellOutputReceiver receiver, int maxTimeToOutputResponse)

這個方法已淘汰。 使用 IShellEnabledDevice.executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit)

default void forceStop(String applicationName)

依應用程式名稱強制停止應用程式。

abstract getAbis()

傳回這部裝置支援的 ABI。

default ListenableFuture<AvdData> getAvdData()

傳回模擬器執行的 AVD 相關資訊。

abstract String getAvdName()

傳回模擬器執行的 AVD 名稱。

abstract String getAvdPath()

傳回檔案系統中虛擬裝置的絕對路徑。

abstract getBattery(long freshnessTime, TimeUnit timeUnit)

傳回裝置的電量,範圍為 0 到 100%。

abstract getBattery()

傳回裝置的電量,範圍為 0 到 100%。

abstract Integer getBatteryLevel(long freshnessMs)

這個方法已淘汰。 使用 getBattery(long, TimeUnit)

abstract Integer getBatteryLevel()

這個方法已淘汰。 使用 getBattery()

abstract Client getClient(String applicationName)

依應用程式名稱傳回 Client

abstract String getClientName(int pid)

傳回用戶端名稱 (依據 PID),如果 PID 不明,則傳回 null

abstract Client[] getClients()

傳回用戶端陣列。

abstract int getDensity()

讀取系統屬性 PROP_DEVICE_DENSITY 的值,傳回裝置螢幕的密度值區間。

abstract FileListingService getFileListingService()

傳回這部裝置的 FileListingService

default getHardwareCharacteristics()

傳回透過讀取建構特徵屬性取得的特徵。

abstract String getLanguage()

傳回使用者的語言。

default InstallMetrics getLastInstallMetrics()

取得這部裝置上最近一次安裝的相關資訊。

abstract String getMountPoint(String name)

傳回掛接點。

default ProfileableClient[] getProfileableClients()

傳回可設定檔的用戶端陣列。

abstract getProperties()

這個方法已淘汰。 請改用 IShellEnabledDevice.getSystemProperty(String)

abstract String getProperty(String name)

便利方法,會嘗試透過 IShellEnabledDevice.getSystemProperty(String) 擷取屬性,等待時間非常短,並會忽略例外狀況。

abstract String getPropertyCacheOrSync(String name)

這個方法已淘汰。 請改用 IShellEnabledDevice.getSystemProperty(String)

abstract int getPropertyCount()

這個方法已淘汰。 實作詳細資料

abstract String getPropertySync(String name)

這個方法已淘汰。 使用 IShellEnabledDevice.getSystemProperty(String)

abstract String getRegion()

傳回使用者的區域。

abstract RawImage getScreenshot()

擷取裝置螢幕截圖,並以 RawImage 形式傳回。

abstract RawImage getScreenshot(long timeout, TimeUnit unit)
abstract String getSerialNumber()

傳回裝置的序號。

abstract IDevice.DeviceState getState()

傳回裝置的狀態。

abstract SyncService getSyncService()

傳回 SyncService 物件,用於將檔案推送至裝置或從裝置拉取檔案。

abstract boolean hasClients()

傳回 IDevice 是否有 Client

abstract void installPackage(String packageFilePath, boolean reinstall, InstallReceiver receiver, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, String... extraArgs)

在裝置上安裝 Android 應用程式。

abstract void installPackage(String packageFilePath, boolean reinstall, InstallReceiver receiver, String... extraArgs)

在裝置上安裝 Android 應用程式。

abstract void installPackage(String packageFilePath, boolean reinstall, String... extraArgs)

在裝置上安裝 Android 應用程式。

default void installPackages( apks, boolean reinstall, installOptions)

安裝由多個 APK 檔案 (一個主要檔案和 0..n 個分割套件) 組成的 Android 應用程式,並使用預設逾時

abstract void installPackages( apks, boolean reinstall, installOptions, long timeout, TimeUnit timeoutUnit)

Installs an Android application made of several APK files (one main and 0..n split packages)

abstract void installRemotePackage(String remoteFilePath, boolean reinstall, InstallReceiver receiver, String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

abstract void installRemotePackage(String remoteFilePath, boolean reinstall, String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

abstract void installRemotePackage(String remoteFilePath, boolean reinstall, InstallReceiver receiver, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

default void installRemotePackages( remoteApks, boolean reinstall, installOptions)

在裝置上安裝由多個 APK 檔案組成的 Android 應用程式,並使用預設逾時時間

default void installRemotePackages( remoteApks, boolean reinstall, installOptions, long timeout, TimeUnit timeoutUnit)

安裝由多個 APK 檔案組成的 Android 應用程式,這些檔案位於裝置本機

abstract boolean isBootLoader()

傳回裝置是否處於系統啟動載入程式模式。

abstract boolean isEmulator()

如果裝置是模擬器,就會傳回 true

abstract boolean isOffline()

傳回裝置是否離線。

abstract boolean isOnline()

傳回裝置是否已準備就緒。

abstract boolean isRoot()

查詢裝置目前的 Root 狀態。

default void kill(String applicationName)

依應用程式名稱終止應用程式。

abstract void pullFile(String remote, String local)

提取單一檔案。

default void push(String[] local, String remote)

推送多個檔案或目錄。

abstract void pushFile(String local, String remote)

推送單一檔案。

default SocketChannel rawBinder(String service, String[] parameters)

在遠端裝置上叫用 Android Binder Bridge 服務。

default SocketChannel rawExec(String executable, String[] parameters)

在遠端裝置上叫用 host:exec 服務。

abstract void reboot(String into)

重新啟動裝置。

default void removeForward(int localPort)

移除本機通訊埠與遠端通訊埠之間的通訊埠轉送。

default void removeForward(int localPort, int remotePort)

這個方法已淘汰。 使用 removeForward(int)

default void removeForward(int localPort, String remoteSocketName, IDevice.DeviceUnixSocketNamespace namespace)

這個方法已淘汰。 使用 removeForward(int)

abstract void removeRemotePackage(String remoteFilePath)

從裝置中移除檔案。

default void removeReverse(int remotePort)

移除遠端通訊埠與本機通訊埠之間的通訊埠反向轉送。

abstract boolean root()

要求 adb daemon 在裝置上成為根使用者。

abstract void startScreenRecorder(String remoteFilePath, ScreenRecorderOptions options, IShellOutputReceiver receiver)

如果裝置支援 IDevice.Feature.SCREEN_RECORD,就會啟動螢幕錄影功能。

abstract boolean supportsFeature(IDevice.HardwareFeature feature)

傳回這個裝置是否支援指定的硬體功能。

abstract boolean supportsFeature(IDevice.Feature feature)

傳回這個裝置是否支援指定的軟體功能。

abstract String syncPackageToDevice(String localFilePath)

將檔案推送至裝置

abstract String uninstallApp(String applicationID, String... extraArgs)

從裝置解除安裝應用程式。

abstract String uninstallPackage(String packageName)

從裝置解除安裝套件。

常數

CHANGE_BUILD_INFO

public static final int CHANGE_BUILD_INFO

裝置變更位元遮罩:建構資訊變更。

常數值: 4 (0x00000004)

CHANGE_CLIENT_LIST

public static final int CHANGE_CLIENT_LIST

裝置變更位元遮罩:Client 清單變更。

常數值: 2 (0x00000002)

CHANGE_PROFILEABLE_CLIENT_LIST

public static final int CHANGE_PROFILEABLE_CLIENT_LIST

裝置變更位元遮罩:ProfileableClient 清單變更。

常數值: 8 (0x00000008)

CHANGE_STATE

public static final int CHANGE_STATE

裝置變更位元遮罩:DeviceState 變更。

常數值: 1 (0x00000001)

FIRST_EMULATOR_SN

public static final String FIRST_EMULATOR_SN

第一個連線模擬器的序號。

常數值: "emulator-5554"

MNT_DATA

public static final String MNT_DATA

常數值: "ANDROID_DATA"

MNT_EXTERNAL_STORAGE

public static final String MNT_EXTERNAL_STORAGE

常數值: "EXTERNAL_STORAGE"

MNT_ROOT

public static final String MNT_ROOT

常數值: "ANDROID_ROOT"

PROP_BUILD_API_LEVEL

public static final String PROP_BUILD_API_LEVEL

常數值: "ro.build.version.sdk"

PROP_BUILD_CHARACTERISTICS

public static final String PROP_BUILD_CHARACTERISTICS

常數值: "ro.build.characteristics"

PROP_BUILD_CODENAME

public static final String PROP_BUILD_CODENAME

常數值: "ro.build.version.codename"

PROP_BUILD_TAGS

public static final String PROP_BUILD_TAGS

常數值: "ro.build.tags"

PROP_BUILD_TYPE

public static final String PROP_BUILD_TYPE

常數值: "ro.build.type"

PROP_BUILD_VERSION

public static final String PROP_BUILD_VERSION

常數值: "ro.build.version.release"

PROP_BUILD_VERSION_NUMBER

public static final String PROP_BUILD_VERSION_NUMBER

這個常數已淘汰。
使用 PROP_BUILD_API_LEVEL

常數值: "ro.build.version.sdk"

PROP_DEBUGGABLE

public static final String PROP_DEBUGGABLE

常數值: "ro.debuggable"

PROP_DEVICE_CPU_ABI

public static final String PROP_DEVICE_CPU_ABI

常數值: "ro.product.cpu.abi"

PROP_DEVICE_CPU_ABI2

public static final String PROP_DEVICE_CPU_ABI2

常數值: "ro.product.cpu.abi2"

PROP_DEVICE_CPU_ABI_LIST

public static final String PROP_DEVICE_CPU_ABI_LIST

常數值: "ro.product.cpu.abilist"

PROP_DEVICE_DENSITY

public static final String PROP_DEVICE_DENSITY

常數值: "ro.sf.lcd_density"

PROP_DEVICE_EMULATOR_DENSITY

public static final String PROP_DEVICE_EMULATOR_DENSITY

常數值: "qemu.sf.lcd_density"

PROP_DEVICE_LANGUAGE

public static final String PROP_DEVICE_LANGUAGE

常數值: "persist.sys.language"

PROP_DEVICE_MANUFACTURER

public static final String PROP_DEVICE_MANUFACTURER

常數值: "ro.product.manufacturer"

PROP_DEVICE_MODEL

public static final String PROP_DEVICE_MODEL

常數值: "ro.product.model"

PROP_DEVICE_REGION

public static final String PROP_DEVICE_REGION

常數值: "persist.sys.country"

RE_EMULATOR_SN

public static final String RE_EMULATOR_SN

模擬器序號的規則運算式。

常數值: "emulator-(\d+)"

UNKNOWN_PACKAGE

public static final String UNKNOWN_PACKAGE

常數值: ""

公用方法

arePropertiesSet

public abstract boolean arePropertiesSet ()

如果已快取屬性,則傳回 true

傳回
boolean

createForward

public abstract void createForward (int localPort, 
                String remoteSocketName, 
                IDevice.DeviceUnixSocketNamespace namespace)

在本地 TCP 連接埠和遠端 Unix 網域通訊端之間建立連接埠轉送。

參數
localPort int:要轉送的本機通訊埠

remoteSocketName String:在裝置上建立的 Unix 網域通訊端名稱

namespace IDevice.DeviceUnixSocketNamespace:建立 Unix 網域通訊端的命名空間

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

createForward

public abstract void createForward (int localPort, 
                int remotePort)

在本地和遠端通訊埠之間建立通訊埠轉送。

參數
localPort int:要轉送的本機通訊埠

remotePort int:遠端通訊埠。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

createReverse

public void createReverse (int remotePort, 
                int localPort)

在遠端和本機通訊埠之間建立通訊埠反向。

參數
remotePort int:要反向的遠端通訊埠。

localPort int:本機通訊埠

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

executeBinderCommand

public void executeBinderCommand (String[] parameters, 
                IShellOutputReceiver receiver, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                InputStream is)

在裝置上執行 Binder 指令,並將結果傳送至 receiver

如果裝置 OS 和主機 ADB 伺服器都支援 Android Binder Bridge 執行功能,這會使用 exec:cmd 呼叫或更快的 abb_exec:

參數
parameters String:要執行的繫結器指令

receiver IShellOutputReceiver:將接收繫結器指令輸出的 IShellOutputReceiver

maxTimeToOutputResponse long

maxTimeUnits TimeUnit

is InputStream:透過 stdin 傳送的選用輸入串流

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
ShellCommandUnresponsiveException 以防繫結器指令在特定時間內未傳送輸出內容。
如果連線發生 I/O 錯誤。

另請參閱:

executeShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                InputStream is)

executeShell 指令的版本,可接收輸入串流並透過 stdin 傳送。

參數
command String

receiver IShellOutputReceiver

maxTimeToOutputResponse long

maxTimeUnits TimeUnit

is InputStream

擲回
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

executeShellCommand

public abstract void executeShellCommand (String command, 
                IShellOutputReceiver receiver)

在裝置上執行殼層指令,並將結果傳送至 receiver

這類似於呼叫 executeShellCommand(command, receiver, DdmPreferences.getTimeOut())

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

receiver IShellOutputReceiver:接收殼層指令輸出的 IShellOutputReceiver

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
ShellCommandUnresponsiveException 如果殼層指令在指定時間內未傳送輸出內容,就會發生這種情況。
如果連線發生 I/O 錯誤。

executeShellCommand

public abstract void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                int maxTimeToOutputResponse)

這個方法已淘汰。
使用 IShellEnabledDevice.executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit)

參數
command String

receiver IShellOutputReceiver

maxTimeToOutputResponse int

擲回
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

forceStop

public void forceStop (String applicationName)

依應用程式名稱強制停止應用程式。這項操作會移除所有待處理的鬧鐘和排隊等候的運算作業。

參數
applicationName String:應用程式名稱

getAbis

public abstract  getAbis ()

傳回這部裝置支援的 ABI。ABI 會依偏好順序排序,第一個 ABI 是最偏好的。

傳回
ABI 清單。

getAvdData

public ListenableFuture<AvdData> getAvdData ()

傳回模擬器執行的 AVD 相關資訊。

AvdData.getName 是 AVD 的名稱,如果沒有名稱,則為 null

AvdData.getPath 是 AVD 路徑,如果是實體裝置、模擬器控制台子指令失敗,或模擬器版本舊於 30.0.18,則為空值

傳回
ListenableFuture<AvdData> 裝置的 AvdData

getAvdName

public abstract String getAvdName ()

傳回模擬器執行的 AVD 名稱。

只有在 isEmulator() 傳回 true 時,這項設定才會生效。

如果模擬器未執行任何 AVD (例如從 Android 來源樹狀結構建構執行),這個方法會傳回「<build>」。

注意:如要控管逾時時間,建議使用 getAvdData()

傳回
String AVD 的名稱,或沒有名稱時為 null

getAvdPath

public abstract String getAvdPath ()

傳回檔案系統中虛擬裝置的絕對路徑。路徑取決於作業系統,Linux 使用「/」做為名稱分隔符,Windows 則使用「\」。

注意:如要控管逾時時間,建議使用 getAvdData()

傳回
String AVD 路徑,如果這是實體裝置、模擬器控制台子指令失敗,或模擬器版本舊於 30.0.18,則為空值

getBattery

public abstract  getBattery (long freshnessTime, 
                TimeUnit timeUnit)

傳回裝置的電量,範圍為 0 到 100%。

系統可能會快取電池電量,只有在上次成功查詢後, freshnessTime 已過期時,才會查詢裝置的電池電量。

參數
freshnessTime long:電池電量的期望近期程度

timeUnit TimeUnitERROR(/TimeUnit)ERROR(/TimeUnit) freshnessTime

傳回
可查詢電池電量的 ERROR(/Future)。如果無法擷取電池電量,Future 會傳回 ERROR(/ExecutionException)

getBattery

public abstract  getBattery ()

傳回裝置的電量,範圍為 0 到 100%。

系統可能會快取電池電量,如果自上次成功查詢後已過 5 分鐘,系統才會查詢裝置的電池電量。

傳回
可查詢電池電量的 ERROR(/Future)。如果無法擷取電池電量,Future 會傳回 ERROR(/ExecutionException)

getBatteryLevel

public abstract Integer getBatteryLevel (long freshnessMs)

這個方法已淘汰。
使用 getBattery(long, TimeUnit)

傳回裝置的電量,範圍為 0 到 100%。

系統可能會快取電池電量,只有在上次成功查詢後經過 freshnessMs 毫秒時,才會查詢裝置的電池電量。

傳回
Integer 電池電量,或null (如果無法擷取)

擲回
com.android.ddmlib.ShellCommandUnresponsiveException
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

getBatteryLevel

public abstract Integer getBatteryLevel ()

這個方法已淘汰。
使用 getBattery()

傳回裝置的電量,範圍為 0 到 100%。

系統可能會快取電池電量,如果自上次成功查詢後已過 5 分鐘,系統才會查詢裝置的電池電量。

傳回
Integer 電池電量,或null (如果無法擷取)

擲回
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

getClient

public abstract Client getClient (String applicationName)

依應用程式名稱傳回 Client

參數
applicationName String:應用程式名稱

傳回
Client Client 物件或 null (如果找不到相符項目)。

getClientName

public abstract String getClientName (int pid)

依據 PID 傳回用戶端名稱,如果 PID 不明則傳回 null

參數
pid int:用戶端的 PID。

傳回
String

getClients

public abstract Client[] getClients ()

傳回用戶端陣列。

傳回
Client[]

getDensity

public abstract int getDensity ()

讀取系統屬性 PROP_DEVICE_DENSITY 的值,傳回裝置螢幕的密度值區。

傳回
int 密度,如果無法判斷,則為 -1。

getFileListingService

public abstract FileListingService getFileListingService ()

傳回這部裝置的 FileListingService

傳回
FileListingService

getHardwareCharacteristics

public  getHardwareCharacteristics ()

傳回透過讀取建構特徵屬性取得的特徵。

傳回

getLanguage

public abstract String getLanguage ()

傳回使用者的語言。

傳回
String 使用者的語言,如果不明則為空值

getLastInstallMetrics

public InstallMetrics getLastInstallMetrics ()

取得這部裝置上最近一次安裝的相關資訊。

傳回
InstallMetrics InstallMetrics 說明安裝作業的指標。

getMountPoint

public abstract String getMountPoint (String name)

傳回掛接點。

參數
name String:要傳回的掛接點名稱

傳回
String

getProfileableClients

public ProfileableClient[] getProfileableClients ()

傳回可設定檔的用戶端陣列。

傳回
ProfileableClient[]

getProperties

public abstract  getProperties ()

這個方法已淘汰。
請改用 IShellEnabledDevice.getSystemProperty(String)

傳回快取的裝置屬性。其中包含「getprop」的完整輸出內容

傳回

getProperty

public abstract String getProperty (String name)

便利方法,會嘗試透過 IShellEnabledDevice.getSystemProperty(String) 擷取屬性,等待時間非常短,並會忽略例外狀況。

注意:如要控管逾時時間,建議使用 IShellEnabledDevice.getSystemProperty(String)

參數
name String:要傳回的值名稱。

傳回
String 值,或 null (如果屬性值無法立即取得)

getPropertyCacheOrSync

public abstract String getPropertyCacheOrSync (String name)

這個方法已淘汰。
請改用 IShellEnabledDevice.getSystemProperty(String)

getProperty(String)getPropertySync(String) 的組合,會嘗試從快取中擷取屬性。如果找不到,系統會嘗試直接查詢裝置,並在成功時重新填入快取。

參數
name String:要傳回的值名稱。

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

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
ShellCommandUnresponsiveException 如果殼層指令在指定時間內未傳送輸出內容,就會發生這種情況。
如果連線發生 I/O 錯誤。

getPropertyCount

public abstract int getPropertyCount ()

這個方法已淘汰。
實作詳細資料

傳回這部裝置的屬性數量。

傳回
int

getPropertySync

public abstract String getPropertySync (String name)

這個方法已淘汰。
使用 IShellEnabledDevice.getSystemProperty(String)

getProperty(String) 的變體,會嘗試直接從裝置擷取指定屬性,而不使用快取。這個方法「只能」用於任何不穩定的屬性。

參數
name String:要傳回的值名稱。

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

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
ShellCommandUnresponsiveException 如果殼層指令在指定時間內未傳送輸出內容,就會發生這種情況。
如果連線發生 I/O 錯誤。

getRegion

public abstract String getRegion ()

傳回使用者的區域。

傳回
String 使用者的區域,如果不明則為空值

getScreenshot

public abstract RawImage getScreenshot ()

擷取裝置螢幕截圖,並以 RawImage 形式傳回。

傳回
RawImage 如果發生錯誤,請提供螢幕截圖 (RawImagenull)。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

getScreenshot

public abstract RawImage getScreenshot (long timeout, 
                TimeUnit unit)

參數
timeout long

unit TimeUnit

傳回
RawImage

擲回
AdbCommandRejectedException
TimeoutException

getSerialNumber

public abstract String getSerialNumber ()

傳回裝置的序號。

傳回
String

getState

public abstract IDevice.DeviceState getState ()

傳回裝置狀態。

傳回
IDevice.DeviceState

getSyncService

public abstract SyncService getSyncService ()

傳回 SyncService 物件,用於將檔案推送/拉取至裝置或從裝置推送/拉取檔案。

傳回
SyncService null (如果無法建立 SyncService)。如果 adb 拒絕開啟連線,可能是因為 IDevice 無效 (或已中斷連線)。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果與 adb 的連線失敗。

hasClients

public abstract boolean hasClients ()

傳回 IDevice 是否有 Client

傳回
boolean

installPackage

public abstract void installPackage (String packageFilePath, 
                boolean reinstall, 
                InstallReceiver receiver, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                String... extraArgs)

在裝置上安裝 Android 應用程式。這是輔助方法,可合併 syncPackageToDevice、installRemotePackage 和 removePackage 步驟

參數
packageFilePath String:本機主機上要安裝的檔案的絕對檔案系統路徑

reinstall boolean:如果應重新安裝應用程式,請設為 true

receiver InstallReceiver:用於監控安裝作業並取得最終狀態的 InstallReceiver

maxTimeout long:指令傳回的逾時時間上限。如果值為 0,表示不會套用逾時上限。

maxTimeToOutputResponse long:指令在沒有任何回應的情況下,允許的最長時間。如果值為 0,方法會無限期等待指令輸出內容 (直到 receiver 取消執行),且絕不會擲回。

maxTimeUnits TimeUnit:非零 maxTimeoutmaxTimeToOutputResponse 值的單位。

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

擲回
InstallException 如果安裝失敗。

installPackage

public abstract void installPackage (String packageFilePath, 
                boolean reinstall, 
                InstallReceiver receiver, 
                String... extraArgs)

在裝置上安裝 Android 應用程式。這是輔助方法,可合併 syncPackageToDevice、installRemotePackage 和 removePackage 步驟

參數
packageFilePath String:本機主機上要安裝的檔案的絕對檔案系統路徑

reinstall boolean:如果應重新安裝應用程式,請設為 true

receiver InstallReceiver:用於監控安裝作業並取得最終狀態的 InstallReceiver

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

擲回
InstallException 如果安裝失敗。

installPackage

public abstract void installPackage (String packageFilePath, 
                boolean reinstall, 
                String... extraArgs)

在裝置上安裝 Android 應用程式。這是輔助方法,可合併 syncPackageToDevice、installRemotePackage 和 removePackage 步驟

參數
packageFilePath String:本機主機上要安裝的檔案的絕對檔案系統路徑

reinstall boolean:如果應重新安裝應用程式,請設為 true

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

擲回
InstallException 如果安裝失敗。

installPackages

public void installPackages ( apks, 
                boolean reinstall, 
                 installOptions)

安裝由多個 APK 檔案 (一個主要檔案和 0..n 個分割套件) 組成的 Android 應用程式,並使用預設逾時

參數
apks :要安裝的 APK 清單 (1 個主要 APK + 0 到 n 個分割 APK)

reinstall boolean:如果應重新安裝應用程式,請設為 true

installOptions :要傳遞的選用額外引數。如要瞭解可用選項,請參閱「adb shell pm install --help」。

擲回
InstallException 如果安裝失敗。

installPackages

public abstract void installPackages ( apks, 
                boolean reinstall, 
                 installOptions, 
                long timeout, 
                TimeUnit timeoutUnit)

安裝由多個 APK 檔案組成的 Android 應用程式 (一個主要套件和 0..n 個分割套件)

參數
apks :要安裝的 APK 清單 (1 個主要 APK + 0 到 n 個分割 APK)

reinstall boolean:如果應重新安裝應用程式,請設為 true

installOptions :要傳遞的選用額外引數。如要瞭解可用選項,請參閱「adb shell pm install --help」。

timeout long:安裝逾時

timeoutUnit TimeUnit:與逾時參數對應的 ERROR(/TimeUnit)

擲回
InstallException 如果安裝失敗。

installRemotePackage

public abstract void installRemotePackage (String remoteFilePath, 
                boolean reinstall, 
                InstallReceiver receiver, 
                String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

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

reinstall boolean:如果應重新安裝應用程式,請設為 true

receiver InstallReceiver:用於監控安裝作業並取得最終狀態的 InstallReceiver

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

擲回
InstallException 如果安裝失敗。

installRemotePackage

public abstract void installRemotePackage (String remoteFilePath, 
                boolean reinstall, 
                String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

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

reinstall boolean:如果應重新安裝應用程式,請設為 true

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

擲回
InstallException 如果安裝失敗。

installRemotePackage

public abstract void installRemotePackage (String remoteFilePath, 
                boolean reinstall, 
                InstallReceiver receiver, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                String... extraArgs)

安裝已推送至裝置暫時位置的應用程式套件。

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

reinstall boolean:如果應重新安裝應用程式,請設為 true

receiver InstallReceiver:用於監控安裝作業並取得最終狀態的 InstallReceiver

maxTimeout long:指令傳回的逾時時間上限。如果值為 0,表示不會套用逾時上限。

maxTimeToOutputResponse long:指令在沒有任何回應的情況下,允許的最長時間。如果值為 0,方法會無限期等待指令輸出內容 (直到 receiver 取消執行),且絕不會擲回。

maxTimeUnits TimeUnit:非零 maxTimeoutmaxTimeToOutputResponse 值的單位。

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

擲回
InstallException 如果安裝失敗。

installRemotePackages

public void installRemotePackages ( remoteApks, 
                boolean reinstall, 
                 installOptions)

在裝置上安裝由多個 APK 檔案組成的 Android 應用程式,並使用預設逾時

參數
remoteApks :要在裝置上安裝的 APK 檔案路徑清單

reinstall boolean:如果應重新安裝應用程式,請設為 true

installOptions :要傳遞的選用額外引數。如要瞭解可用選項,請參閱「adb shell pm install --help」。

擲回
InstallException 如果安裝失敗。

installRemotePackages

public void installRemotePackages ( remoteApks, 
                boolean reinstall, 
                 installOptions, 
                long timeout, 
                TimeUnit timeoutUnit)

安裝由多個 APK 檔案組成的 Android 應用程式 (這些檔案位於裝置本機)

參數
remoteApks :要安裝的裝置上 APK 檔案路徑清單

reinstall boolean:如果應重新安裝應用程式,請設為 true

installOptions :要傳遞的選用額外引數。如要瞭解可用選項,請參閱「adb shell pm install --help」。

timeout long:安裝逾時

timeoutUnit TimeUnit:與逾時參數對應的 ERROR(/TimeUnit)

擲回
InstallException 如果安裝失敗。

isBootLoader

public abstract boolean isBootLoader ()

傳回裝置是否處於系統啟動載入程式模式。

傳回
boolean 如果 getState() 傳回 DeviceState.BOOTLOADER,則為 true

isEmulator

public abstract boolean isEmulator ()

如果裝置是模擬器,則傳回 true

傳回
boolean

isOffline

public abstract boolean isOffline ()

傳回裝置是否離線。

傳回
boolean 如果 getState() 傳回 DeviceState.OFFLINE,則為 true

isOnline

public abstract boolean isOnline ()

傳回裝置是否已準備就緒。

傳回
boolean 如果 getState() 傳回 DeviceState.ONLINE,則為 true

isRoot

public abstract boolean isRoot ()

查詢裝置目前的 Root 狀態。詳情請參閱「adb root」。

傳回
boolean 如果 adb daemon 以根身分執行,則為 true,否則為 false。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕該指令。
ShellCommandUnresponsiveException

kill

public void kill (String applicationName)

依應用程式名稱終止應用程式。這只會刪除活動,將其狀態留在 Android 系統中。

參數
applicationName String:應用程式名稱

pullFile

public abstract void pullFile (String remote, 
                String local)

提取單一檔案。

參數
remote String:遠端檔案的完整路徑

local String:當地目的地。

擲回
發生 IO 例外狀況時。
AdbCommandRejectedException 如果 adb 拒絕指令
TimeoutException 如果從裝置讀取回應時發生逾時情況,就會發生這種情形。
SyncException 發生同步例外狀況時。

推播

public void push (String[] local, 
                String remote)

推送多個檔案或目錄。

參數
local String:要推送的本機檔案

remote String:代表目錄的遠端路徑

擲回
如果連線發生 I/O 錯誤
AdbCommandRejectedException 如果 adb 拒絕指令
TimeoutException 如果讀取裝置的回應時發生逾時
SyncException 如果無法推送部分檔案

pushFile

public abstract void pushFile (String local, 
                String remote)

推送單一檔案。

參數
local String:本機檔案路徑。

remote String:遠端檔案路徑

擲回
如果連線發生 I/O 錯誤
AdbCommandRejectedException 如果 adb 拒絕指令
TimeoutException 如果讀取裝置的回應時發生逾時
SyncException 如果無法推送檔案

rawBinder

public SocketChannel rawBinder (String service, 
                String[] parameters)

在遠端裝置上叫用 Android Binder Bridge 服務。傳回連線至裝置繫結器指令的通訊端管道。

SocketChannel 的擁有權會轉移給呼叫端,使用後必須明確關閉。

參數
service String:要連線的 Android 服務名稱

parameters String:繫結器指令的參數

傳回
SocketChannel 與裝置上執行程序連線的 SocketChannel。使用後。

擲回
AdbCommandRejectedException
TimeoutException

rawExec

public SocketChannel rawExec (String executable, 
                String[] parameters)

在遠端裝置上叫用 host:exec 服務。傳回已連線至執行中程序的 Socket 管道。請注意,exec 服務不會區分 stdout 和 stderr,因此從通訊端讀取的任何內容都可能來自任一輸出,且可能會交錯。

SocketChannel 的擁有權會轉移給呼叫端,使用後必須明確關閉。

參數
executable String

parameters String

傳回
SocketChannel 與裝置上執行程序連線的 SocketChannel。使用後。

擲回
AdbCommandRejectedException
TimeoutException

重開。

public abstract void reboot (String into)

重新啟動裝置。

參數
into String:要重新啟動的開機載入程式名稱,或設為空值以重新啟動裝置。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
IOException

removeForward

public void removeForward (int localPort)

移除本機通訊埠與遠端通訊埠之間的通訊埠轉送。

參數
localPort int:要轉送的本機通訊埠

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

removeForward

public void removeForward (int localPort, 
                int remotePort)

這個方法已淘汰。
使用 removeForward(int)

參數
localPort int

remotePort int

擲回
AdbCommandRejectedException
TimeoutException

removeForward

public void removeForward (int localPort, 
                String remoteSocketName, 
                IDevice.DeviceUnixSocketNamespace namespace)

這個方法已淘汰。
使用 removeForward(int)

參數
localPort int

remoteSocketName String

namespace IDevice.DeviceUnixSocketNamespace

擲回
AdbCommandRejectedException
TimeoutException

removeRemotePackage

public abstract void removeRemotePackage (String remoteFilePath)

從裝置中移除檔案。

參數
remoteFilePath String:要移除的檔案在裝置上的路徑

擲回
InstallException 如果安裝失敗。

removeReverse

public void removeReverse (int remotePort)

移除遠端通訊埠與本機通訊埠之間的通訊埠反向。

參數
remotePort int:遠端通訊埠。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。

public abstract boolean root ()

要求 adb daemon 在裝置上成為根使用者。這項作業可能會無聲無息地失敗,而且只能在開發人員建構版本中成功。詳情請參閱「adb root」。

傳回
boolean 如果 adb daemon 以根身分執行,則為 true,否則為 false。

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕該指令。
ShellCommandUnresponsiveException 如果無法查詢根狀態。
IOException

startScreenRecorder

public abstract void startScreenRecorder (String remoteFilePath, 
                ScreenRecorderOptions options, 
                IShellOutputReceiver receiver)

如果裝置支援 IDevice.Feature.SCREEN_RECORD,系統就會在裝置上啟動螢幕錄影功能。

參數
remoteFilePath String

options ScreenRecorderOptions

receiver IShellOutputReceiver

擲回
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

supportsFeature

public abstract boolean supportsFeature (IDevice.HardwareFeature feature)

傳回這部裝置是否支援指定的硬體功能。

參數
feature IDevice.HardwareFeature

傳回
boolean

supportsFeature

public abstract boolean supportsFeature (IDevice.Feature feature)

傳回這部裝置是否支援指定軟體功能。

參數
feature IDevice.Feature

傳回
boolean

syncPackageToDevice

public abstract String syncPackageToDevice (String localFilePath)

將檔案推送至裝置

參數
localFilePath String:本機主機上檔案的絕對路徑

傳回
String String 裝置上的檔案目的地路徑

擲回
TimeoutException 連線逾時時。
AdbCommandRejectedException 如果 adb 拒絕指令
如果連線發生 I/O 錯誤。
SyncException 如果將套件推送至裝置時發生錯誤。

uninstallApp

public abstract String uninstallApp (String applicationID, 
                String... extraArgs)

從裝置解除安裝應用程式。

參數
applicationID String:要解除安裝的 Android 應用程式 ID

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

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
InstallException 如果解除安裝失敗。

uninstallPackage

public abstract String uninstallPackage (String packageName)

從裝置解除安裝套件。

參數
packageName String:要解除安裝的 Android 應用程式 ID

傳回
String 如果成功,則為 null;如果失敗,則為含有錯誤代碼的 String

擲回
InstallException 如果解除安裝失敗。