IDevice

public interface IDevice
implements IShellEnabledDevice

com.android.ddmlib.IDevice


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

摘要

常數

int CHANGE_BUILD_INFO

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

int CHANGE_STATE

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

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:

abstract void executeShellCommand(String command, IShellOutputReceiver receiver)

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

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

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

這個方法已淘汰, 使用 executeShellCommand(String,IShellOutputReceiver,long,TimeUnit)

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

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

default void forceStop(String applicationName)

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

abstract List<String> getAbis()

傳回這部裝置支援的 ABI。

default ListenableFuture<AvdData> getAvdData()

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

abstract String getAvdName()

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

abstract String getAvdPath()

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

abstract Future<Integer> getBattery(long freshnessTime, TimeUnit timeUnit)

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

abstract Future<Integer> getBattery()

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

abstract Integer getBatteryLevel(long freshnessMs)

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

abstract Integer getBatteryLevel()

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

abstract int getDensity()

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

abstract FileListingService getFileListingService()

傳回這部裝置的 FileListingService

default Set<String> getHardwareCharacteristics()

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

abstract String getLanguage()

傳回使用者的語言。

default InstallMetrics getLastInstallMetrics()

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

abstract String getMountPoint(String name)

傳回掛接點。

abstract Map<String, String> getProperties()

這個方法已淘汰, 請改用 getSystemProperty(String)

abstract String getProperty(String name)

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

abstract String getPropertyCacheOrSync(String name)

這個方法已淘汰, 請改用 getSystemProperty(String)

abstract int getPropertyCount()

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

abstract String getPropertySync(String name)

這個方法已淘汰, 使用 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 void installPackage(String packageFilePath, boolean reinstall, InstallReceiver receiver, String... extraArgs)

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

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, String... extraArgs)

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

abstract void installPackages(List<File> apks, boolean reinstall, List<String> installOptions, long timeout, TimeUnit timeoutUnit)

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

default void installPackages(List<File> apks, boolean reinstall, List<String> installOptions)

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

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(List<String> remoteApks, boolean reinstall, List<String> installOptions, long timeout, TimeUnit timeoutUnit)

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

default void installRemotePackages(List<String> remoteApks, boolean reinstall, List<String> installOptions)

在裝置上安裝由多個 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)

如果裝置支援 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_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

模擬器序號的 Regexp。

常數值: "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 網域通訊端的命名空間

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

createForward

public abstract void createForward (int localPort, 
                int remotePort)

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

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

remotePort int:遠端通訊埠。

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

createReverse

public void createReverse (int remotePort, 
                int localPort)

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

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

localPort int:本機通訊埠

擲回
AdbCommandRejectedException 如果 adb 拒絕指令
TimeoutException 連線逾時時。
IOException 如果連線發生 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 傳送的選用輸入串流

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

另請參閱:

executeShellCommand

public abstract void executeShellCommand (String command, 
                IShellOutputReceiver receiver)

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

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

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

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

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

executeShellCommand

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

這個方法已淘汰。
使用 executeShellCommand(String,IShellOutputReceiver,long,TimeUnit)

參數
command String

receiver IShellOutputReceiver

maxTimeToOutputResponse int

擲回
AdbCommandRejectedException
IOException
ShellCommandUnresponsiveException
TimeoutException

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
IOException
ShellCommandUnresponsiveException
TimeoutException

forceStop

public void forceStop (String applicationName)

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

參數
applicationName String:應用程式名稱

getAbis

public abstract List<String> getAbis ()

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

傳回
List<String> 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 Future<Integer> getBattery (long freshnessTime, 
                TimeUnit timeUnit)

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

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

參數
freshnessTime long:所需的電池電量最新狀態

timeUnit TimeUnitTimeUnitTimeUnit freshnessTime

傳回
Future<Integer> 可用於查詢電池電量。Future如果無法擷取電池電量,Future 會傳回 ExecutionException

getBattery

public abstract Future<Integer> getBattery ()

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

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

傳回
Future<Integer> 可用於查詢電池電量。Future如果無法擷取電池電量,Future 會傳回 ExecutionException

getBatteryLevel

public abstract Integer getBatteryLevel (long freshnessMs)

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

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

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

傳回
Integer 電池電量,或無法擷取時的 null

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

getBatteryLevel

public abstract Integer getBatteryLevel ()

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

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

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

傳回
Integer 電池電量,或無法擷取時的 null

擲回
AdbCommandRejectedException
IOException
ShellCommandUnresponsiveException
TimeoutException

getDensity

public abstract int getDensity ()

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

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

getFileListingService

public abstract FileListingService getFileListingService ()

傳回這部裝置的 FileListingService

傳回
FileListingService

getHardwareCharacteristics

public Set<String> getHardwareCharacteristics ()

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

傳回
Set<String>

擲回
Exception

getLanguage

public abstract String getLanguage ()

傳回使用者的語言。

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

getLastInstallMetrics

public InstallMetrics getLastInstallMetrics ()

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

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

getMountPoint

public abstract String getMountPoint (String name)

傳回掛接點。

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

傳回
String

getProperties

public abstract Map<String, String> getProperties ()

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

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

傳回
Map<String, String>

getProperty

public abstract String getProperty (String name)

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

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

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

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

getPropertyCacheOrSync

public abstract String getPropertyCacheOrSync (String name)

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

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

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

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

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

getPropertyCount

public abstract int getPropertyCount ()

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

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

傳回
int

getPropertySync

public abstract String getPropertySync (String name)

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

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

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

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

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

getRegion

public abstract String getRegion ()

傳回使用者的區域。

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

getScreenshot

public abstract RawImage getScreenshot ()

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

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

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

getScreenshot

public abstract RawImage getScreenshot (long timeout, 
                TimeUnit unit)

參數
timeout long

unit TimeUnit

傳回
RawImage

擲回
AdbCommandRejectedException
IOException
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 無效 (或已中斷連線)。

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

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, 
                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, 
                String... extraArgs)

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

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

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

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

擲回
InstallException 如果安裝失敗。

installPackages

public abstract void installPackages (List<File> apks, 
                boolean reinstall, 
                List<String> installOptions, 
                long timeout, 
                TimeUnit timeoutUnit)

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

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

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

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

timeout long:安裝逾時

timeoutUnit TimeUnit:對應逾時參數的 TimeUnit

擲回
InstallException 如果安裝失敗。

installPackages

public void installPackages (List<File> apks, 
                boolean reinstall, 
                List<String> installOptions)

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

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

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

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

擲回
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 (List<String> remoteApks, 
                boolean reinstall, 
                List<String> installOptions, 
                long timeout, 
                TimeUnit timeoutUnit)

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

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

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

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

timeout long:安裝逾時

timeoutUnit TimeUnit:對應逾時參數的 TimeUnit

擲回
InstallException 如果安裝失敗。

installRemotePackages

public void installRemotePackages (List<String> remoteApks, 
                boolean reinstall, 
                List<String> installOptions)

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

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

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

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

擲回
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。

擲回
AdbCommandRejectedException 如果 ADB 拒絕執行指令。
TimeoutException 連線逾時時。
IOException
ShellCommandUnresponsiveException

kill

public void kill (String applicationName)

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

參數
applicationName String:應用程式名稱

pullFile

public abstract void pullFile (String remote, 
                String local)

提取單一檔案。

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

local String:本機目的地。

擲回
AdbCommandRejectedException 如果 adb 拒絕指令
SyncException 發生同步例外狀況時。
TimeoutException 如果讀取裝置的回應時發生逾時情況,
IOException 發生 IO 例外狀況時。

推送

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

推送多個檔案或目錄。

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

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

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

pushFile

public abstract void pushFile (String local, 
                String remote)

推送單一檔案。

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

remote String:遠端檔案路徑

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

rawBinder

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

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

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

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

parameters String:繫結器指令的參數

傳回
SocketChannel 連線至裝置上執行程序的 SocketChannel。使用完畢後,

擲回
AdbCommandRejectedException
IOException
TimeoutException

rawExec

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

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

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

參數
executable String

parameters String

傳回
SocketChannel 連線至裝置上執行程序的 SocketChannel。使用完畢後,

擲回
AdbCommandRejectedException
IOException
TimeoutException

重新開機

public abstract void reboot (String into)

重新啟動裝置。

參數
into String:要重新啟動的系統啟動載入程式名稱,或為空值,僅重新啟動裝置。

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

removeForward

public void removeForward (int localPort)

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

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

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

removeForward

public void removeForward (int localPort, 
                int remotePort)

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

參數
localPort int

remotePort int

擲回
AdbCommandRejectedException
IOException
TimeoutException

removeForward

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

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

參數
localPort int

remoteSocketName String

namespace IDevice.DeviceUnixSocketNamespace

擲回
AdbCommandRejectedException
IOException
TimeoutException

removeRemotePackage

public abstract void removeRemotePackage (String remoteFilePath)

從裝置中移除檔案。

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

擲回
InstallException 如果安裝失敗。

removeReverse

public void removeReverse (int remotePort)

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

參數
remotePort int:遠端通訊埠。

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

root

public abstract boolean root ()

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

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

擲回
AdbCommandRejectedException 如果 ADB 拒絕執行指令。
ShellCommandUnresponsiveException 如果無法查詢根狀態。
TimeoutException 連線逾時時。
java.io.IOException
IOException

startScreenRecorder

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

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

參數
remoteFilePath String

options ScreenRecorderOptions

receiver IShellOutputReceiver

擲回
AdbCommandRejectedException
IOException
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 裝置上的檔案目的地路徑

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

uninstallApp

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

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

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

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

傳回
String 含有錯誤代碼的 String,或成功時的 null

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

uninstallPackage

public abstract String uninstallPackage (String packageName)

從裝置解除安裝套件。

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

傳回
String 含有錯誤代碼的 String,或成功時的 null

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