AndroidDebugBridge

public class AndroidDebugBridge
extends Object

java.lang.Object
   ↳ com.android.tradefed.device.server.AndroidDebugBridge


호스트 측 Android 디버그 브리지 (adb)에 대한 연결

이는 기기, 에뮬레이터 또는 기기에서 실행되는 애플리케이션과 통신하는 중앙 지점입니다.

init(boolean)는 작업을 수행하기 전에 호출해야 합니다.

요약

중첩된 클래스

interface AndroidDebugBridge.IClientChangeListener

이 인터페이스를 구현하는 클래스는 ClientImpl 변경사항을 처리하는 메서드를 제공합니다. 

interface AndroidDebugBridge.IDebugBridgeChangeListener

이 인터페이스를 구현하는 클래스는 AndroidDebugBridge 변경사항 (다시 시작 포함)을 처리하는 메서드를 제공합니다. 

interface AndroidDebugBridge.IDeviceChangeListener

이 인터페이스를 구현하는 클래스는 IDevice 추가, 삭제, 변경을 처리하는 메서드를 제공합니다. 

상수

int DEFAULT_START_ADB_TIMEOUT_MILLIS

ADB 서버를 시작할 때 사용되는 기본 제한 시간

필드

public static final AdbVersion MIN_ADB_VERSION

지원되는 adb의 최소 및 최대 버전입니다.

공개 메서드

static void addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

IClientChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 ClientImpl 속성이 변경될 때 알림을 받을 리스너의 컬렉션에 리스너를 추가합니다.

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

IDebugBridgeChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 새 AndroidDebugBridge가 연결될 때 알림을 받을 리스너 컬렉션에 리스너를 추가합니다.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

IDeviceChangeListener 인터페이스에 정의된 메시지 중 하나를 전송하여 IDevice가 연결되거나 연결이 해제되거나 속성 또는 ClientImpl 목록이 변경될 때 알림을 받을 리스너 컬렉션에 리스너를 추가합니다.

static void clientChanged(ClientImpl client, int changeMask)

수정된 ClientImpl를 리스너에게 알립니다.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

특정 실행 파일에 연결되지 않은 AndroidDebugBridge를 만듭니다.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

이 메서드는 지원 중단되었습니다. ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 createBridge(String, boolean, long, TimeUnit)을 사용하세요.

static AndroidDebugBridge createBridge()

이 메서드는 지원 중단되었습니다. ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 createBridge(long, TimeUnit)을 사용하세요.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)

명령줄 도구의 위치에서 새 디버그 브리지를 만듭니다.

static void deviceChanged(IDevice device, int changeMask)

수정된 IDevice를 리스너에게 알립니다.

static void deviceConnected(IDevice device)

IDevice를 리스너에게 알립니다.

static void deviceDisconnected(IDevice device)

연결이 끊긴 IDevice를 리스너에게 알립니다.

static void disableFakeAdbServerMode()
static void disconnectBridge()

이 메서드는 지원 중단되었습니다. ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 disconnectBridge(long, TimeUnit)을 사용하세요.

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가 IDevice에서 실행되는 ClientImpl 모니터링 및 상호작용을 지원하도록 설정되었는지 여부를 반환합니다.

int getConnectionAttemptCount()

AndroidDebugBridge 객체가 adb 데몬에 연결하려고 시도한 횟수를 반환합니다.

static int getDebugBridgeChangeListenerCount()
static int getDeviceChangeListenerCount()
IDevice[] getDevices()

기기를 반환합니다.

ListenableFuture<> getRawDeviceList()

adb 명령줄에서 보고된 기기 집합을 반환합니다.

int getRestartAttemptCount()

AndroidDebugBridge 객체가 adb 데몬을 다시 시작하려고 시도한 횟수를 반환합니다.

static InetSocketAddress getSocketAddress()

이 메서드는 지원 중단되었습니다. 이 메서드는 ADB 서버에서 사용하는 것과 일치하지 않을 수 있는 루프백 서버 주소를 반환합니다. 즉, JVM은 IPv4 모드일 수 있지만 ADB 서버는 IPv6 루프백 주소에서 호스팅됩니다. ADB 서버에 연결할 때는 openConnection()를 사용하는 것이 좋습니다.

static ListenableFuture<String> getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
boolean hasInitialDeviceList()

브리지가 생성된 후 adb에서 초기 목록을 획득했는지 여부를 반환합니다.

static void init(AdbInitOptions options)

init(boolean)와 유사하며 맞춤 환경 세트를 전달할 수 있습니다.

static void init(boolean clientSupport)

ddm 라이브러리를 초기화합니다.

static void init(boolean clientSupport, boolean useLibusb, env)

init(boolean)와 유사하며 libusb를 사용 설정하고 맞춤 환경 세트를 전달할 수 있습니다.

static void initIfNeeded(boolean clientSupport)

필요한 경우에만 라이브러리를 초기화했습니다. 테스트가 아닌 용도로는 지원 중단되었습니다.

boolean isConnected()

AndroidDebugBridge 객체가 adb 데몬에 계속 연결되어 있는지 여부를 반환합니다.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

로컬 Android 디버그 브리지 서버에 연결하려고 시도합니다.

static void removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

ClientImpl 속성이 변경될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

AndroidDebugBridge가 시작될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

IDevice가 연결되거나 연결 해제되거나 속성 또는 ClientImpl 목록이 변경될 때 알림을 받을 리스너 컬렉션에서 리스너를 삭제합니다.

boolean restart(long timeout, TimeUnit unit)

adb를 다시 시작하지만 주변 서비스는 다시 시작하지 않습니다.

boolean restart()

이 메서드는 지원 중단되었습니다. ADB가 응답하지 않으면 이 메서드가 멈출 수 있습니다. 대신 restart(long, TimeUnit)을 사용하세요.

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

getDevices

public IDevice[] getDevices ()

기기를 반환합니다.

반환 값
IDevice[]

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 라이브러리를 종료합니다. 애플리케이션 종료 시 호출해야 합니다.