2026년부터 트렁크 안정 개발 모델과 일치하고 생태계의 플랫폼 안정성을 보장하기 위해 2분기와 4분기에 AOSP에 소스 코드를 게시합니다. AOSP를 빌드하고 기여하려면 aosp-main 대신 android-latest-release를 사용하는 것이 좋습니다. android-latest-release 매니페스트 브랜치는 항상 AOSP에 푸시된 최신 버전을 참조합니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
AdbHelper
public
final
class
AdbHelper
extends Object
| java.lang.Object
|
| ↳ |
com.android.tradefed.device.server.AdbHelper
|
adb에 대한 요청과 연결을 처리하는 도우미 클래스
AndroidDebugBridge는 adb에 연결하는 공개 API이고 AdbHelper는 하위 수준 작업을 실행합니다.
현재 스핀 대기 비블로킹 I/O를 사용합니다. 선택기가 더 효율적이지만 여기서는 과도한 것 같습니다.
요약
공개 메서드 |
static
void
|
createForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec, String remotePortSpec)
로컬 포트와 원격 포트 간에 포트 포워딩을 만듭니다.
|
static
AdbCommandRejectedException
|
createHiddenException(String message, boolean errorDuringDeviceSelection)
|
static
AdbCommandRejectedException
|
createHiddenException(String message)
|
static
byte[]
|
createJdwpForwardRequest(int pid)
jdwp 프로세스에 대한 포트 전달 요청을 만듭니다.
|
static
SocketChannel
|
createPassThroughConnection(InetSocketAddress adbSockAddr, String deviceSerialNumber, int pid)
호스트에서 기기의 포트로 새로운 패스 스루 소켓을 만들고 연결합니다.
|
static
void
|
createReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec, String localPortSpec)
원격 포트와 로컬 포트 간에 포트 반전을 만듭니다.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
기기에서 셸 명령어를 실행하고 출력을 가져옵니다.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, AdbHelper.AdbService adbService, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)
기기에서 원격 명령어를 실행하고 출력을 가져옵니다.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
기기에서 셸 명령어를 실행하고 출력을 가져옵니다.
|
static
byte[]
|
formAdbRequest(String payloadString)
4개의 16진수 숫자가 앞에 오는 ASCII 문자열을 만듭니다.
|
static
String
|
getFeatures(IDevice device)
기기에서 지원되는 기능 집합을 쿼리합니다.
|
static
RawImage
|
getFrameBuffer(InetSocketAddress adbSockAddr, IDevice device, long timeout, TimeUnit unit)
지정된 제한 시간으로 기기에서 프레임 버퍼를 가져옵니다.
|
static
String
|
getHostFeatures()
ADB 호스트에서 지원되는 기능 집합을 쿼리합니다.
|
static
SocketChannel
|
open(InetSocketAddress adbSockAddr, IDevice device, int devicePort)
호스트에서 기기의 포트로 새 패스스루 소켓을 만들고 연결합니다.
|
static
SocketChannel
|
rawAdbService(InetSocketAddress socketAddress, IDevice device, String command, AdbHelper.AdbService service)
원격 기기에서 서비스를 호출합니다.
|
static
SocketChannel
|
rawExec(InetSocketAddress socketAddress, IDevice device, String executable, String[] parameters)
원격 기기에서 host:exec 서비스를 호출합니다.
|
static
AdbHelper.AdbResponse
|
readAdbResponse(SocketChannel chan, boolean readDiagString)
명령어 후 ADB의 응답을 읽습니다.
|
static
void
|
reboot(String into, InetSocketAddress adbSockAddr, IDevice device)
기기를 재부팅합니다.
|
static
void
|
removeForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec)
로컬 포트와 원격 포트 간의 포트 전달을 삭제합니다.
|
static
void
|
removeReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec)
원격 포트와 로컬 포트 간의 반전을 삭제합니다.
|
static
void
|
root(InetSocketAddress adbSockAddr, IDevice device)
adb 데몬이 기기에서 루트가 되도록 요청합니다.
|
static
void
|
setDevice(SocketChannel adbChan, IDevice device)
IDevice가 주어지면 일련번호를 가져와 adb에 해당 기기와 통신하도록 지시합니다.
|
static
void
|
setDevice(SocketChannel adbChan, String deviceSerialNumber)
adb에 특정 기기와 통신하도록 지시합니다.
|
static
void
|
write(SocketChannel chan, byte[] data, int length, int timeout)
'data'의 모든 데이터가 작성되거나 선택적 길이에 도달하거나 시간 제한이 만료되거나 연결이 실패할 때까지 작성합니다.
|
static
void
|
write(SocketChannel chan, byte[] data)
'data'의 모든 데이터가 작성되거나 연결이 실패하거나 시간 초과될 때까지 작성합니다.
|
상수
HOST_TRANSPORT
public static final String HOST_TRANSPORT
상수 값:
"host:transport:"
필드
DEFAULT_CHARSET
public static final Charset DEFAULT_CHARSET
공개 메서드
createForward
public static void createForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec,
String remotePortSpec)
로컬 포트와 원격 포트 간에 포트 포워딩을 만듭니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 연결할 소켓 주소 |
device |
IDevice: 포트 포워딩을 실행할 기기 |
localPortSpec |
String: 전달할 로컬 포트의 사양입니다. 형식은 tcp: |
remotePortSpec |
String: 전달할 원격 포트의 사양입니다. 다음 중 하나입니다. tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(원격만 해당) |
createHiddenException
public static AdbCommandRejectedException createHiddenException (String message,
boolean errorDuringDeviceSelection)
| 매개변수 |
message |
String |
errorDuringDeviceSelection |
boolean |
createJdwpForwardRequest
public static byte[] createJdwpForwardRequest (int pid)
jdwp 프로세스에 대한 포트 전달 요청을 만듭니다. 그러면 '####jwdp:{pid}'가 포함된 배열이 반환됩니다.
| 매개변수 |
pid |
int: 기기의 jdwp 프로세스 pid입니다. |
createPassThroughConnection
public static SocketChannel createPassThroughConnection (InetSocketAddress adbSockAddr,
String deviceSerialNumber,
int pid)
호스트에서 기기의 포트로 새로운 패스 스루 소켓을 만들고 연결합니다.
| 매개변수 |
deviceSerialNumber |
String: 연결할 기기 일련번호입니다. null이거나 비어 있을 수 있으며, 이 경우 연결은 사용 가능한 첫 번째 기기로 이루어집니다. |
pid |
int: 연결할 프로세스 pid입니다. |
createReverse
public static void createReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec,
String localPortSpec)
원격 포트와 로컬 포트 간에 포트 반전을 만듭니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 연결할 소켓 주소 |
device |
IDevice: 포트 반전을 실행할 기기 |
remotePortSpec |
String: 반전할 원격 포트의 사양입니다. 다음 중 하나입니다. tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(원격만 해당) |
localPortSpec |
String: 로컬 포트 사양입니다. tcp: |
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
기기에서 셸 명령어를 실행하고 출력을 가져옵니다. 출력은 도착하는 대로 rcvr에 전달됩니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 대한 ERROR(/InetSocketAddress)입니다. |
command |
String: 실행할 셸 명령어 |
device |
IDevice: 명령어를 실행할 IDevice입니다. |
rcvr |
IShellOutputReceiver: 셸 명령어의 출력을 수신할 IShellOutputReceiver |
maxTimeToOutputResponse |
long: 명령어 출력 간 최대 시간입니다. 명령어 출력 사이에 시간이 더 지나면 메서드는 ShellCommandUnresponsiveException를 발생시킵니다. 값이 0이면 메서드가 명령어 출력을 무한정 기다리고 예외를 발생시키지 않음을 의미합니다. |
maxTimeUnits |
TimeUnit: 0이 아닌 maxTimeToOutputResponse 값의 단위입니다. |
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
AdbHelper.AdbService adbService,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits,
InputStream is)
기기에서 원격 명령어를 실행하고 출력을 가져옵니다. 출력은 도착하는 대로 rcvr에 전달됩니다. 이 명령어는 adbService 매개변수로 식별되는 원격 서비스에 의해 실행됩니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 대한 ERROR(/InetSocketAddress)입니다. |
adbService |
AdbHelper.AdbService: 명령어를 실행하는 데 사용할 AdbHelper.AdbService입니다. |
command |
String: 실행할 셸 명령어 |
device |
IDevice: 명령어를 실행할 IDevice입니다. |
rcvr |
IShellOutputReceiver: 셸 명령어의 출력을 수신할 IShellOutputReceiver |
maxTimeout |
long: 전체 명령어가 실행되는 최대 제한 시간입니다. 값이 0이면 제한 시간이 없음을 의미합니다. |
maxTimeToOutputResponse |
long: 명령어 출력 간 최대 시간입니다. 명령어 출력 사이에 시간이 더 지나면 메서드는 ShellCommandUnresponsiveException를 발생시킵니다. 값이 0이면 메서드가 명령어 출력을 무한정 기다리고 예외를 발생시키지 않음을 의미합니다. |
maxTimeUnits |
TimeUnit: 0이 아닌 maxTimeout 및 maxTimeToOutputResponse 값의 단위입니다. |
is |
InputStream: 명령어를 호출한 후 응답을 가져오기 전에 스트리밍할 선택적 ERROR(/InputStream)입니다. |
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
기기에서 셸 명령어를 실행하고 출력을 가져옵니다. 출력은 도착하는 대로 rcvr에 전달됩니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 대한 ERROR(/InetSocketAddress)입니다. |
command |
String: 실행할 셸 명령어 |
device |
IDevice: 명령어를 실행할 IDevice입니다. |
rcvr |
IShellOutputReceiver: 셸 명령어의 출력을 수신할 IShellOutputReceiver |
maxTimeout |
long: 명령어가 반환되는 최대 시간입니다. 값이 0이면 최대 제한 시간이 적용되지 않습니다. |
maxTimeToOutputResponse |
long: 명령어 출력 간 최대 시간입니다. 명령어 출력 사이에 시간이 더 지나면 메서드는 ShellCommandUnresponsiveException를 발생시킵니다. 값이 0이면 메서드가 명령어 출력을 무한정 기다리고 예외를 발생시키지 않습니다. |
maxTimeUnits |
TimeUnit: 0이 아닌 maxTimeout 및 maxTimeToOutputResponse 값의 단위입니다. |
public static byte[] formAdbRequest (String payloadString)
4개의 16진수 숫자가 앞에 오는 ASCII 문자열을 만듭니다. 여는 '####'은 나머지 문자열의 길이이며 ASCII 16진수로 인코딩됩니다 (대소문자는 중요하지 않음).
| 매개변수 |
payloadString |
String |
getFeatures
public static String getFeatures (IDevice device)
기기에서 지원되는 기능 집합을 쿼리합니다.
| 매개변수 |
device |
IDevice: 포트 포워딩을 실행할 기기 |
getFrameBuffer
public static RawImage getFrameBuffer (InetSocketAddress adbSockAddr,
IDevice device,
long timeout,
TimeUnit unit)
지정된 제한 시간으로 기기에서 프레임 버퍼를 가져옵니다. 제한 시간 0은 무한정 대기함을 나타냅니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
timeout |
long |
unit |
TimeUnit |
getHostFeatures
public static String getHostFeatures ()
ADB 호스트에서 지원되는 기능 집합을 쿼리합니다.
열기
public static SocketChannel open (InetSocketAddress adbSockAddr,
IDevice device,
int devicePort)
호스트에서 기기의 포트로 새 패스스루 소켓을 만들고 연결합니다.
| 매개변수 |
device |
IDevice: 연결할 기기입니다. null일 수 있으며, 이 경우 연결은 사용 가능한 첫 번째 기기로 이루어집니다. |
devicePort |
int: 열고 있는 포트 |
rawAdbService
public static SocketChannel rawAdbService (InetSocketAddress socketAddress,
IDevice device,
String command,
AdbHelper.AdbService service)
원격 기기에서 서비스를 호출합니다. 실행 중인 프로세스에 연결된 소켓 채널을 반환합니다.
ddlmib는 반환된 SocketChannel의 소유권을 포기하며 사용 후 명시적으로 닫아야 합니다.
| 매개변수 |
device |
IDevice: 연결할 기기입니다. null일 수 있으며, 이 경우 연결은 사용 가능한 첫 번째 기기로 이루어집니다. |
command |
String: 실행할 명령어 |
service |
AdbHelper.AdbService: 명령어를 실행하는 데 사용할 AdbHelper.AdbService입니다. |
rawExec
public static SocketChannel rawExec (InetSocketAddress socketAddress,
IDevice device,
String executable,
String[] parameters)
원격 기기에서 host:exec 서비스를 호출합니다. 실행 중인 프로세스에 연결된 소켓 채널을 반환합니다. 실행 서비스는 stdout과 stderr을 구분하지 않으므로 소켓에서 읽은 내용은 두 출력에서 모두 가져올 수 있으며 인터리브될 수 있습니다.
ddlmib는 반환된 SocketChannel의 소유권을 포기하며 사용 후 명시적으로 닫아야 합니다.
| 매개변수 |
device |
IDevice: 연결할 기기 null일 수 있으며, 이 경우 연결은 사용 가능한 첫 번째 기기에 연결됩니다. |
executable |
String: 실행할 실행 파일의 절대 경로 |
parameters |
String: 실행 파일을 실행할 때 제공되는 매개변수 |
readAdbResponse
public static AdbHelper.AdbResponse readAdbResponse (SocketChannel chan,
boolean readDiagString)
명령어 후 ADB의 응답을 읽습니다.
| 매개변수 |
chan |
SocketChannel: adb에 연결된 소켓 채널입니다. |
readDiagString |
boolean: true인 경우 OKAY 응답 뒤에 진단 문자열이 올 것으로 예상됩니다. 그렇지 않으면 진단 문자열이 FAIL을 따를 것으로 예상됩니다. |
재부팅
public static void reboot (String into,
InetSocketAddress adbSockAddr,
IDevice device)
기기를 재부팅합니다.
| 매개변수 |
into |
String: 재부팅할 대상 (복구, 부트로더) 또는 재부팅만 하려면 null입니다. |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
removeForward
public static void removeForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec)
로컬 포트와 원격 포트 간의 포트 전달을 삭제합니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 연결할 소켓 주소 |
device |
IDevice: 포트 포워딩을 삭제할 기기 |
localPortSpec |
String: 포워드된 로컬 포트의 사양입니다. tcp: |
removeReverse
public static void removeReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec)
원격 포트와 로컬 포트 간의 반전을 삭제합니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress: adb에 연결할 소켓 주소 |
device |
IDevice: 포트 반전을 삭제할 기기 |
remotePortSpec |
String: 원격 포트가 반전된 사양입니다. 다음 중 하나입니다. tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(원격만 해당) |
루트
public static void root (InetSocketAddress adbSockAddr,
IDevice device)
adb 데몬이 기기에서 루트가 되도록 요청합니다. 이 작업은 자동으로 실패할 수 있으며 개발자 빌드에서만 성공할 수 있습니다. 자세한 내용은 'adb root'를 참고하세요. 성공 여부를 알아야 하는 경우 'echo \$USER_ID'에서 executeRemoteCommand의 결과를 확인할 수 있습니다. 결과가 0이면 adbd가 루트로 실행되고 있는 것입니다.
| 매개변수 |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
setDevice
public static void setDevice (SocketChannel adbChan,
IDevice device)
IDevice가 주어지면 일련번호를 가져와 adb에 해당 기기와 통신하도록 지시합니다.
| 매개변수 |
adbChan |
SocketChannel: adb에 대한 소켓 연결입니다. |
device |
IDevice: 대화할 기기입니다. |
setDevice
public static void setDevice (SocketChannel adbChan,
String deviceSerialNumber)
adb에 특정 기기와 통신하도록 지시합니다.
| 매개변수 |
adbChan |
SocketChannel: adb에 대한 소켓 연결 |
deviceSerialNumber |
String: 통신할 기기의 일련번호입니다. null인 경우 선택된 기본 기기는 adb에서 선택한 기기입니다. |
도와줘
public static void write (SocketChannel chan,
byte[] data,
int length,
int timeout)
'data'의 모든 데이터가 작성되거나 선택적 길이에 도달하거나 시간 제한이 만료되거나 연결이 실패할 때까지 작성합니다. 모든 데이터가 작성된 경우 'true'를 반환합니다.
| 매개변수 |
chan |
SocketChannel: 쓰기를 수행할 열린 소켓입니다. |
data |
byte: 전송할 버퍼입니다. |
length |
int: 쓸 길이 또는 전체 버퍼를 전송하려면 -1입니다. |
timeout |
int: 제한 시간 값입니다. 제한 시간이 0이면 '무한정 대기'를 의미합니다. |
도와줘
public static void write (SocketChannel chan,
byte[] data)
'data'의 모든 데이터가 작성되거나 연결이 실패하거나 시간 초과될 때까지 작성합니다.
기본 시간 제한 값을 사용합니다.
| 매개변수 |
chan |
SocketChannel: 쓰기를 수행할 열린 소켓입니다. |
data |
byte: 전송할 버퍼입니다. |
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-12-04(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-12-04(UTC)"],[],[]]