IDevice
public
interface
IDevice
implements
IShellEnabledDevice
| com.android.ddmlib.IDevice |
裝置。可以是實體裝置或模擬器。
摘要
常數 | |
|---|---|
int |
CHANGE_BUILD_INFO
裝置變更位元遮罩:建構資訊變更。 |
int |
CHANGE_CLIENT_LIST
裝置變更位元遮罩: |
int |
CHANGE_PROFILEABLE_CLIENT_LIST
裝置變更位元遮罩: |
int |
CHANGE_STATE
裝置變更位元遮罩: |
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
這個常數已淘汰。
使用 |
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()
如果屬性已快取,則傳回 |
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 |
default
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)
executeShell 指令的版本,可接收輸入串流並透過 stdin 傳送。 |
abstract
void
|
executeShellCommand(String command, IShellOutputReceiver receiver)
在裝置上執行殼層指令,並將結果傳送至 receiver 這類似於呼叫 |
abstract
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, int maxTimeToOutputResponse)
這個方法已淘汰。
使用 |
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)
這個方法已淘汰。
使用 |
abstract
Integer
|
getBatteryLevel()
這個方法已淘汰。
使用 |
abstract
Client
|
getClient(String applicationName)
依應用程式名稱傳回 |
abstract
String
|
getClientName(int pid)
傳回用戶端名稱 (依據 PID),如果 PID 不明,則傳回 |
abstract
Client[]
|
getClients()
傳回用戶端陣列。 |
abstract
int
|
getDensity()
讀取系統屬性 |
abstract
FileListingService
|
getFileListingService()
傳回這部裝置的 |
default
|
getHardwareCharacteristics()
傳回透過讀取建構特徵屬性取得的特徵。 |
abstract
String
|
getLanguage()
傳回使用者的語言。 |
default
InstallMetrics
|
getLastInstallMetrics()
取得這部裝置上最近一次安裝的相關資訊。 |
abstract
String
|
getMountPoint(String name)
傳回掛接點。 |
default
ProfileableClient[]
|
getProfileableClients()
傳回可設定檔的用戶端陣列。 |
abstract
|
getProperties()
這個方法已淘汰。
請改用 |
abstract
String
|
getProperty(String name)
便利方法,會嘗試透過 |
abstract
String
|
getPropertyCacheOrSync(String name)
這個方法已淘汰。
請改用 |
abstract
int
|
getPropertyCount()
這個方法已淘汰。 實作詳細資料 |
abstract
String
|
getPropertySync(String name)
這個方法已淘汰。
使用 |
abstract
String
|
getRegion()
傳回使用者的區域。 |
abstract
RawImage
|
getScreenshot()
擷取裝置螢幕截圖,並以 |
abstract
RawImage
|
getScreenshot(long timeout, TimeUnit unit)
|
abstract
String
|
getSerialNumber()
傳回裝置的序號。 |
abstract
IDevice.DeviceState
|
getState()
傳回裝置的狀態。 |
abstract
SyncService
|
getSyncService()
傳回 |
abstract
boolean
|
hasClients()
|
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(
安裝由多個 APK 檔案 (一個主要檔案和 0..n 個分割套件) 組成的 Android 應用程式,並使用預設逾時 |
abstract
void
|
installPackages(
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(
在裝置上安裝由多個 APK 檔案組成的 Android 應用程式,並使用預設逾時時間 |
default
void
|
installRemotePackages(
安裝由多個 APK 檔案組成的 Android 應用程式,這些檔案位於裝置本機 |
abstract
boolean
|
isBootLoader()
傳回裝置是否處於系統啟動載入程式模式。 |
abstract
boolean
|
isEmulator()
如果裝置是模擬器,就會傳回 |
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)
這個方法已淘汰。
使用 |
default
void
|
removeForward(int localPort, String remoteSocketName, IDevice.DeviceUnixSocketNamespace namespace)
這個方法已淘汰。
使用 |
abstract
void
|
removeRemotePackage(String remoteFilePath)
從裝置中移除檔案。 |
default
void
|
removeReverse(int remotePort)
移除遠端通訊埠與本機通訊埠之間的通訊埠反向轉送。 |
abstract
boolean
|
root()
要求 adb daemon 在裝置上成為根使用者。 |
abstract
void
|
startScreenRecorder(String remoteFilePath, ScreenRecorderOptions options, IShellOutputReceiver receiver)
如果裝置支援 |
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)
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
| 參數 | |
|---|---|
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 abstractgetAbis ()
傳回這部裝置支援的 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 abstractgetBattery (long freshnessTime, TimeUnit timeUnit)
傳回裝置的電量,範圍為 0 到 100%。
系統可能會快取電池電量,只有在上次成功查詢後,
freshnessTime 已過期時,才會查詢裝置的電池電量。
| 參數 | |
|---|---|
freshnessTime |
long:電池電量的期望近期程度 |
timeUnit |
TimeUnit:ERROR(/TimeUnit) 的 ERROR(/TimeUnit) freshnessTime |
| 傳回 | |
|---|---|
|
可查詢電池電量的 ERROR(/Future)。如果無法擷取電池電量,Future 會傳回 ERROR(/ExecutionException)。 |
getBattery
public abstractgetBattery ()
傳回裝置的電量,範圍為 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 |
|
getDensity
public abstract int getDensity ()
讀取系統屬性 PROP_DEVICE_DENSITY 的值,傳回裝置螢幕的密度值區。
| 傳回 | |
|---|---|
int |
密度,如果無法判斷,則為 -1。 |
getFileListingService
public abstract FileListingService getFileListingService ()
傳回這部裝置的 FileListingService。
| 傳回 | |
|---|---|
FileListingService |
|
getHardwareCharacteristics
publicgetHardwareCharacteristics ()
傳回透過讀取建構特徵屬性取得的特徵。
| 傳回 | |
|---|---|
|
|
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 abstractgetProperties ()
這個方法已淘汰。
請改用 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 |
如果發生錯誤,請提供螢幕截圖 (RawImage 或 null)。 |
| 擲回 | |
|---|---|
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 |
|
getSyncService
public abstract SyncService getSyncService ()
傳回 SyncService 物件,用於將檔案推送/拉取至裝置或從裝置推送/拉取檔案。
| 傳回 | |
|---|---|
SyncService |
null (如果無法建立 SyncService)。如果 adb 拒絕開啟連線,可能是因為 IDevice 無效 (或已中斷連線)。 |
| 擲回 | |
|---|---|
TimeoutException |
連線逾時時。 |
AdbCommandRejectedException |
如果 adb 拒絕指令 |
|
如果與 adb 的連線失敗。 |
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:非零 maxTimeout 和 maxTimeToOutputResponse
值的單位。 |
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:非零 maxTimeout 和 maxTimeToOutputResponse
值的單位。 |
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 |
如果解除安裝失敗。 |