AndroidDebugBridge
public
class
AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
호스트 측 Android 디버그 브리지 (adb)에 대한 연결
이는 기기, 에뮬레이터 또는 기기에서 실행되는 애플리케이션과 통신하는 중앙 지점입니다.
init(boolean)는 작업을 수행하기 전에 호출해야 합니다.
요약
중첩된 클래스 | |
|---|---|
interface |
AndroidDebugBridge.IClientChangeListener
이 인터페이스를 구현하는 클래스는 |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
이 인터페이스를 구현하는 클래스는 |
interface |
AndroidDebugBridge.IDeviceChangeListener
이 인터페이스를 구현하는 클래스는 |
상수 | |
|---|---|
int |
DEFAULT_START_ADB_TIMEOUT_MILLIS
ADB 서버를 시작할 때 사용되는 기본 제한 시간 |
필드 | |
|---|---|
public
static
final
AdbVersion |
MIN_ADB_VERSION
지원되는 adb의 최소 및 최대 버전입니다. |
공개 메서드 | |
|---|---|
static
void
|
addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
|
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
|
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
|
static
void
|
clientChanged(ClientImpl client, int changeMask)
수정된 |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
특정 실행 파일에 연결되지 않은 |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 |
static
AndroidDebugBridge
|
createBridge()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
명령줄 도구의 위치에서 새 디버그 브리지를 만듭니다. |
static
void
|
deviceChanged(IDevice device, int changeMask)
수정된 |
static
void
|
deviceConnected(IDevice device)
새 |
static
void
|
deviceDisconnected(IDevice device)
연결이 끊긴 |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 |
static
boolean
|
disconnectBridge(long timeout, TimeUnit unit)
현재 디버그 브리지를 연결 해제하고 객체를 소멸시킵니다. |
static
void
|
enableFakeAdbServerMode(int port)
|
static
ListenableFuture<AdbVersion>
|
getAdbVersion(File adb)
|
static
AndroidDebugBridge
|
getBridge()
현재 디버그 브리지를 반환합니다. |
static
boolean
|
getClientSupport()
ddmlib가 |
int
|
getConnectionAttemptCount()
|
static
int
|
getDebugBridgeChangeListenerCount()
|
static
int
|
getDeviceChangeListenerCount()
|
IDevice[]
|
getDevices()
기기를 반환합니다. |
ListenableFuture<
|
getRawDeviceList()
adb 명령줄에서 보고된 기기 집합을 반환합니다. |
int
|
getRestartAttemptCount()
|
static
InetSocketAddress
|
getSocketAddress()
이 메서드는 지원 중단되었습니다.
이 메서드는 ADB 서버에서 사용하는 것과 일치하지 않을 수 있는 루프백 서버 주소를 반환합니다. 즉, JVM은 IPv4 모드일 수 있지만 ADB 서버는 IPv6 루프백 주소에서 호스팅됩니다. ADB 서버에 연결할 때는 |
static
ListenableFuture<String>
|
getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
|
boolean
|
hasInitialDeviceList()
브리지가 생성된 후 adb에서 초기 목록을 획득했는지 여부를 반환합니다. |
static
void
|
init(AdbInitOptions options)
|
static
void
|
init(boolean clientSupport)
|
static
void
|
init(boolean clientSupport, boolean useLibusb,
|
static
void
|
initIfNeeded(boolean clientSupport)
필요한 경우에만 라이브러리를 초기화했습니다. 테스트가 아닌 용도로는 지원 중단되었습니다. |
boolean
|
isConnected()
|
static
boolean
|
isUserManagedAdbMode()
|
static
SocketChannel
|
openConnection()
로컬 Android 디버그 브리지 서버에 연결하려고 시도합니다. |
static
void
|
removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
|
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
새 |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
|
boolean
|
restart(long timeout, TimeUnit unit)
adb를 다시 시작하지만 주변 서비스는 다시 시작하지 않습니다. |
boolean
|
restart()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 |
boolean
|
startAdb(long timeout, TimeUnit unit)
adb 호스트 측 서버를 시작합니다. |
static
void
|
terminate()
ddm 라이브러리를 종료합니다. |
상수
DEFAULT_START_ADB_TIMEOUT_MILLIS
public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS
ADB 서버를 시작할 때 사용되는 기본 제한 시간
상수 값: 20000 (0x00004e20)
필드
MIN_ADB_VERSION
public static final AdbVersion MIN_ADB_VERSION
지원되는 adb의 최소 및 최대 버전입니다. 이는 //device/tools/adb/adb.h에 있는 ADB_SERVER_VERSION에 해당합니다.
공개 메서드
addClientChangeListener
public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
IClientChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 ClientImpl 속성이 변경될 때 알림을 받을 리스너의 컬렉션에 리스너를 추가합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: 알림을 받을 리스너입니다. |
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
IDebugBridgeChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 새 AndroidDebugBridge가 연결될 때 알림을 받을 리스너 컬렉션에 리스너를 추가합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: 알림을 받을 리스너입니다. |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
IDeviceChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 IDevice가 연결되거나 연결이 해제되거나 속성 또는 ClientImpl 목록이 변경될 때 알림을 받을 리스너 컬렉션에 리스너를 추가합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: 알림을 받을 리스너입니다. |
clientChanged
public static void clientChanged (ClientImpl client, int changeMask)
수정된 ClientImpl를 리스너에게 알립니다.
리스너의 알림은 동기화된 블록에서 실행됩니다. 리스너가 내부 잠금을 사용하는 getDevices()뿐만 아니라 다양한 IDevice 메서드에 액세스할 수 있다고 예상해야 합니다.
| 매개변수 | |
|---|---|
client |
ClientImpl: 수정된 Client입니다. |
changeMask |
int: Client에서 변경된 사항을 나타내는 마스크 |
createBridge
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
특정 실행 파일에 연결되지 않은 AndroidDebugBridge를 만듭니다.
이 브리지는 adb가 실행 중일 것으로 예상합니다. adb를 시작/중지/다시 시작할 수 없습니다.
브리지가 이미 시작된 경우 변경 없이 직접 반환됩니다 (getBridge() 호출과 유사).
| 매개변수 | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| 반환 값 | |
|---|---|
AndroidDebugBridge |
연결된 브리지입니다. 브리지를 만들거나 연결하는 중에 오류가 발생한 경우 null입니다. |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 createBridge(String, boolean, long, TimeUnit)를 사용하세요.
명령줄 도구의 위치에서 새 디버그 브리지를 만듭니다.
위치가 동일하고
forceNewBridge이 false로 설정되지 않은 경우를 제외하고 기존 서버는 연결이 해제됩니다.
| 매개변수 | |
|---|---|
osLocation |
String: 명령줄 도구 'adb'의 위치 |
forceNewBridge |
boolean: 동일한 위치의 브리지가 이미 있는 경우에도 새 브리지를 강제로 만듭니다. |
| 반환 값 | |
|---|---|
AndroidDebugBridge |
연결된 브리지입니다. 브리지를 만들거나 연결하는 중에 오류가 발생한 경우 null입니다. |
createBridge
public static AndroidDebugBridge createBridge ()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 createBridge(long, TimeUnit)를 사용하세요.
특정 실행 파일에 연결되지 않은 AndroidDebugBridge를 만듭니다.
이 브리지는 adb가 실행 중일 것으로 예상합니다. adb를 시작/중지/다시 시작할 수 없습니다.
브리지가 이미 시작된 경우 변경 없이 직접 반환됩니다 (getBridge() 호출과 유사).
| 반환 값 | |
|---|---|
AndroidDebugBridge |
연결된 브리지입니다. 브리지를 만들거나 연결하는 중에 오류가 발생한 경우 null입니다. |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
명령줄 도구의 위치에서 새 디버그 브리지를 만듭니다.
위치가 동일하고
forceNewBridge이 false로 설정되지 않은 경우를 제외하고 기존 서버는 연결이 해제됩니다.
| 매개변수 | |
|---|---|
osLocation |
String: 명령줄 도구 'adb'의 위치 |
forceNewBridge |
boolean: 동일한 위치의 브리지가 이미 있는 경우에도 새 브리지를 강제로 만듭니다. |
timeout |
long: 대기할 최대 시간입니다. |
unit |
TimeUnit: timeout 인수의 시간 단위 |
| 반환 값 | |
|---|---|
AndroidDebugBridge |
연결된 브리지입니다. 브리지를 만들거나 연결하는 중에 오류가 발생한 경우 null입니다. |
deviceChanged
public static void deviceChanged (IDevice device, int changeMask)
수정된 IDevice를 리스너에게 알립니다.
리스너의 알림은 동기화된 블록에서 실행됩니다. 리스너가 내부 잠금을 사용하는 getDevices()뿐만 아니라 다양한 IDevice 메서드에 액세스할 수 있다고 예상해야 합니다.
| 매개변수 | |
|---|---|
device |
IDevice: 수정된 IDevice입니다. |
changeMask |
int |
deviceConnected
public static void deviceConnected (IDevice device)
새 IDevice를 리스너에게 알립니다.
리스너의 알림은 동기화된 블록에서 실행됩니다. 리스너가 내부 잠금을 사용하는 getDevices()뿐만 아니라 다양한 IDevice 메서드에 액세스할 수 있다고 예상해야 합니다.
| 매개변수 | |
|---|---|
device |
IDevice: 새 IDevice입니다. |
deviceDisconnected
public static void deviceDisconnected (IDevice device)
연결이 끊긴 IDevice를 리스너에게 알립니다.
리스너의 알림은 동기화된 블록에서 실행됩니다. 리스너가 내부 잠금을 사용하는 getDevices()뿐만 아니라 다양한 IDevice 메서드에 액세스할 수 있다고 예상해야 합니다.
| 매개변수 | |
|---|---|
device |
IDevice: 연결이 해제된 IDevice입니다. |
disableFakeAdbServerMode
public static void disableFakeAdbServerMode ()
disconnectBridge
public static void disconnectBridge ()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 disconnectBridge(long, TimeUnit)를 사용하세요.
현재 디버그 브리지를 연결 해제하고 객체를 소멸시킵니다. createBridge(String, boolean)로 새 객체를 만들어야 합니다.
이렇게 하면 현재 adb 호스트 서버도 중지됩니다.
disconnectBridge
public static boolean disconnectBridge (long timeout,
TimeUnit unit)현재 디버그 브리지를 연결 해제하고 객체를 소멸시킵니다. createBridge(String, boolean)로 새 객체를 만들어야 합니다.
이렇게 하면 현재 adb 호스트 서버도 중지됩니다.
| 매개변수 | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| 반환 값 | |
|---|---|
boolean |
지정된 제한 시간 내에 메서드가 성공하면 true |
enableFakeAdbServerMode
public static void enableFakeAdbServerMode (int port)
| 매개변수 | |
|---|---|
port |
int |
getAdbVersion
public static ListenableFuture<AdbVersion> getAdbVersion (File adb)
| 매개변수 | |
|---|---|
adb |
File |
| 반환 값 | |
|---|---|
ListenableFuture<AdbVersion> |
|
getBridge
public static AndroidDebugBridge getBridge ()
현재 디버그 브리지를 반환합니다. 생성된 항목이 없는 경우 null일 수 있습니다.
| 반환 값 | |
|---|---|
AndroidDebugBridge |
|
getClientSupport
public static boolean getClientSupport ()
ddmlib가 IDevice에서 실행되는 ClientImpl 모니터링 및 상호작용을 지원하도록 설정되었는지 여부를 반환합니다.
| 반환 값 | |
|---|---|
boolean |
|
getConnectionAttemptCount
public int getConnectionAttemptCount ()
AndroidDebugBridge 객체가 adb 데몬에 연결하려고 시도한 횟수를 반환합니다.
| 반환 값 | |
|---|---|
int |
|
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| 반환 값 | |
|---|---|
int |
|
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| 반환 값 | |
|---|---|
int |
|
getRawDeviceList
public ListenableFuture<> getRawDeviceList ()
adb 명령줄에서 보고된 기기 집합을 반환합니다. 이는 주로 연결 어시스턴트나 다른 채널을 통해 getDevices() 목록의 상태를 검증해야 하는 기타 진단 도구를 위한 것입니다. 기기 목록에 액세스하기만 하면 되는 코드는 대신 getDevices()를 호출해야 합니다.
| 반환 값 | |
|---|---|
ListenableFuture< |
|
getRestartAttemptCount
public int getRestartAttemptCount ()
AndroidDebugBridge 객체가 adb 데몬을 다시 시작하려고 시도한 횟수를 반환합니다.
| 반환 값 | |
|---|---|
int |
|
getSocketAddress
public static InetSocketAddress getSocketAddress ()
이 메서드는 지원 중단되었습니다.
이 메서드는 ADB 서버에서 사용하는 것과 일치하지 않을 수 있는 루프백 서버 주소를 반환합니다. 즉, JVM은 IPv4 모드일 수 있지만 ADB 서버는 IPv6 루프백 주소에서 호스팅됩니다. ADB 서버에 연결할 때는 openConnection()를 사용하는 것이 좋습니다.
호스트에 있는 ADB 서버의 소켓 주소를 반환합니다.
이 메서드는 ADB 서버에 소켓 채널을 열어 작동하는 것으로 알려진 소켓 주소를 반환하려고 시도합니다. IPv4 및 IPv6 루프백 주소가 모두 시도됩니다. 둘 다 연결할 수 없는 경우 이 메서드는 JVM에서 선호하는 루프백 주소를 반환하도록 대체됩니다. 이 대체 로직은 API 손상을 방지하는 데 필요합니다.
가짜 ADB 서버 모드가 사용 설정된 경우 이 메서드는 ADB에 연결을 시도하지 않고 자동으로 기존 구현으로 대체됩니다.
| 반환 값 | |
|---|---|
InetSocketAddress |
|
getVirtualDeviceId
public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service,
File adb,
IDevice device)| 매개변수 | |
|---|---|
service |
ListeningExecutorService |
adb |
File |
device |
IDevice |
| 반환 값 | |
|---|---|
ListenableFuture<String> |
|
hasInitialDeviceList
public boolean hasInitialDeviceList ()
브리지가 생성된 후 adb에서 초기 목록을 획득했는지 여부를 반환합니다.
createBridge(String, boolean) 바로 뒤에 getDevices()를 호출하면 일반적으로 빈 목록이 반환됩니다. 이는 getDevices() 호출 전에 IDevice 목록이 빌드되었음을 보장하지 않는 adb와의 내부 비동기 통신 메커니즘 때문입니다.
IDevice 객체 목록을 가져오는 데 권장되는 방법은 IDeviceChangeListener 객체를 만드는 것입니다.
| 반환 값 | |
|---|---|
boolean |
|
init
public static void init (AdbInitOptions options)
init(boolean)와 유사하며 맞춤 환경 변수 세트를 전달할 수 있습니다.
| 매개변수 | |
|---|---|
options |
AdbInitOptions |
init
public static void init (boolean clientSupport)
ddm 라이브러리를 초기화합니다.
이는 createBridge(String, boolean) 호출 전에 한 번 호출해야 합니다.
ddmlib의 환경설정도 기본값에서 변경된 기본값으로 초기화해야 합니다.
애플리케이션이 종료되면 terminate()가 호출되어야 합니다.
| 매개변수 | |
|---|---|
clientSupport |
boolean: 라이브러리가 기기에서 실행되는 애플리케이션의 모니터링 및 상호작용을 사용 설정해야 하는지 나타냅니다. |
init
public static void init (boolean clientSupport,
boolean useLibusb,
env) init(boolean)와 유사하며 libusb를 사용 설정하고 맞춤 환경 변수 집합을 전달할 수 있습니다.
| 매개변수 | |
|---|---|
clientSupport |
boolean |
useLibusb |
boolean |
env |
|
initIfNeeded
public static void initIfNeeded (boolean clientSupport)
필요한 경우에만 라이브러리를 초기화했습니다. 테스트가 아닌 용도로는 지원 중단되었습니다.
| 매개변수 | |
|---|---|
clientSupport |
boolean: 라이브러리가 기기에서 실행되는 애플리케이션의 모니터링 및 상호작용을 사용 설정해야 하는지 나타냅니다. |
참고:
isConnected
public boolean isConnected ()
AndroidDebugBridge 객체가 adb 데몬에 계속 연결되어 있는지 여부를 반환합니다.
| 반환 값 | |
|---|---|
boolean |
|
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| 반환 값 | |
|---|---|
boolean |
ddmlib가 ADB 서버를 관리하지 않으며 관리해서도 안 되는 사용자 관리 ADB 모드에서 작동하는 경우 |
openConnection
public static SocketChannel openConnection ()
로컬 Android 디버그 브리지 서버에 연결하려고 시도합니다.
| 반환 값 | |
|---|---|
SocketChannel |
성공한 경우 연결된 소켓 |
| 생성 값 | |
|---|---|
|
연결을 열 때 오류가 발생해야 합니다. |
removeClientChangeListener
public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
ClientImpl 속성이 변경될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: 더 이상 알림을 받지 않아야 하는 리스너입니다. |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
새 AndroidDebugBridge가 시작될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: 더 이상 알림을 받지 않아야 하는 리스너입니다. |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
IDevice가 연결되거나 연결 해제되거나 속성 또는 ClientImpl 목록이 변경될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.
| 매개변수 | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: 더 이상 알림을 받지 않아야 하는 리스너입니다. |
다시 시작
public boolean restart (long timeout,
TimeUnit unit)adb를 다시 시작하지만 주변 서비스는 다시 시작하지 않습니다.
| 매개변수 | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| 반환 값 | |
|---|---|
boolean |
성공하면 true입니다. |
다시 시작
public boolean restart ()
이 메서드는 지원 중단되었습니다.
ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 restart(long, TimeUnit)를 사용하세요.
adb를 다시 시작하지만 주변 서비스는 다시 시작하지 않습니다.
| 반환 값 | |
|---|---|
boolean |
성공하면 true입니다. |
startAdb
public boolean startAdb (long timeout,
TimeUnit unit)adb 호스트 측 서버를 시작합니다. 이 메서드는 사용자 관리 ADB 서버를 사용하는 경우 사용하면 안 됩니다. 서버 수명 주기는 ddmlib가 아닌 사용자가 관리해야 하기 때문입니다.
| 매개변수 | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| 반환 값 | |
|---|---|
boolean |
성공하면 true |
종료
public static void terminate ()
ddm 라이브러리를 종료합니다. 애플리케이션 종료 시 호출해야 합니다.