터미널이란?
중요한shift는 간단합니다. 터미널은 단순히 동일한 버튼을 클릭하는 다른 방법이 아닙니다. 구글의 에뮬레이터 도구는 런치, 셸 작업, 콘솔 제어를 위한 별도의 층을 제공하며, 각 층은 다른 문제 클래스를 해결합니다. 만약 그들을 하나의 것으로 다루면 스크립트가 불안정해지며, 이전 플래그가 워크플로우에 sneaking, CI가 무작위처럼 보이지만 실제로는 깨지게 됩니다.
목차
- 안드로이드 에뮬레이터 터미널이 필요한 이유
- 명령 줄에서 에뮬레이터를 시작하는 방법
- adb Shell을 사용하기 전에 연결
- 인증을 마치기 전에 유용한 것을 전송하지 않기
- 안드로이드 에뮬레이터 터미널
- 네트워킹, 포트 포워딩 및 키보드 단축키
- 2026년 터미널 워크플로우와 문제 해결
왜 안드로이드 에뮬레이터 터미널이 필요합니까
GUI가 멈췄을 때 명백한 경우입니다. 에뮬레이터 창이 여전히 열려 있지만, 그것을 신뢰할 수 없으며, 클릭을 통해 그것을 통과할 수 없으며, 빌드 서버에 대한 워크플로우가 확대되지 않습니다. 터미널은 창이 처리할 수 없는 부분을 처리합니다. Google의 에뮬레이터 문서는 명령 줄 및 콘솔을 자동화 및 원격 제어를위한 도구로 설명하며, 런치 구문이 emulator -avd avd_name 또는 emulator @avd_name대상 언어: emulator -help Korean.
페이지 경로:
/ko/blog/android-emulator-terminal/
보호 토큰: Cloudflare, Capacitor, GitHub, Capgo, code, API, SDK, CLI, npm, bun
항목: [{"text":", plus the full option list available through"},{"text":"Android Emulator command-line reference"},{"text":"팀이 터미널 제어를 표준화하는 이유"},{"text":"첫 번째로 이게 중요해지는 순간은 보통 멋지지 않다. QA 스크립트가 깨끗한 장치 상태를 필요로 하거나 개발자가 Linux와 macOS에서 AVD를 부팅하거나 CI 러너가 테스트 대상으로 부팅해야 하는 경우가 있다. 그 순간 에뮬레이터는 데스크톱 앱처럼 행동하지 않고 인프라처럼 행동한다."},{"text":"실용적인 규칙:"},{"text":"반복, 로깅, 또는 실패 후 복구가 필요한 작업이 있다면, 터미널 경로를 먼저 사용하라."},{"text":"Google도 에뮬레이터를 공식 명령어 도구 세트에 adb와 함께 배치하고 있다. 이는 Android 자동화가 인터페이스 스택이기 때문이다."},{"text":"Android adb 및 에뮬레이터 도구"},{"text":"장치 검사 및 셸 접근을 위해 사용하고, 에뮬레이터 콘솔을 사용하여 라이프 사이클 제어 및 에뮬레이터 전용 명령어를 사용하라. 그 역할을 섞는 것은 스크립트가 취약해지는 원인이다."}] protectedTokens itemstargetLanguage adb pagePath
다른 오해를 버리세요. 에뮬레이터 터미널은 GUI wrapper에 불과하지 않습니다. 콘솔은 인증되며 localhost 포트에 바인딩되어 명령어를 지원합니다. avd start, avd stop, avd status, ping그리고 rotate Android Emulator 콘솔 참조. 따라서 프로덕션급 제어 평면처럼 동작하며, 초보자용 샌드박스와는 다릅니다.
하이브리드 및 Capacitor 워크플로우에서 동일한 discipline가 중요합니다. 설치 또는 디버깅을 시작하기 전에. Android Capacitor 앱 설정 을 참조하세요.
에뮬레이터를 명령줄에서 실행하는 방법
첫 번째 명령어는 이미 사용 가능한 것을 보여주는 것입니다. emulator -list-avds를 실행하세요. AVD를 선택한 후 emulator -avd <name> 또는 emulator @<name>. If the path to the binary isn’t on your shell PATH, find it inside the Android SDK’s emulator directory on Windows, macOS, or Linux, then run it directly from there.

아직도 의미 있는 런치 플래그
깨끗한 시작은 정상적인 실행과 디버깅 세션의 차이입니다. 일상적인 작업에서 유용한 터미널 플래그는 CI 및 무인 호스트에서 부팅 동작을 예측할 수 있게 해주는 플래그입니다. -no-window 무인 호스트 경로 -no-snapshot 깨끗한 상태를 강제합니다. -no-audio 그리고 -no-boot-anim 필요하지 않은 잡음들을 제거하고 -gpu swiftshader_indirect 하드웨어 가속이 사용할 수 없는 경우 실용적인 대안입니다.
That combination is the difference between “the emulator started” and “the emulator started in a way that a pipeline can trust.” The launch command becomes part of your test contract, not just a convenience wrapper. If you’re bringing up a device for a Capacitor or hybrid app workflow, the same launch discipline applies before any debugging or install step begins. A practical Android setup guide for Capacitor developers is Android __CAPGO_KEEP_1__ 개발자들을 위한 실용적인 설정 가이드입니다..
에뮬레이터 명령어와 함께 항상 가지고 있어야 할 가이드입니다.
기기 목록에서 시작하세요, 메모리에서 시작하지 마세요. 가장 흔히 하는 실수는 기기를 올리기 전에 기기의 상태를 가정하는 것입니다. 기기를 올리기 전에 기기의 상태를 확인하는 것이 시간을 절약하는 방법입니다. 기기를 올린 후 부팅 경로를 관찰하고, 플래그를 조정하기 전에 기기를 올린 후에만 플래그를 조정하세요.
유용한 습관: 로컬 작업과 CI에 사용하는 명령어를 각각 하나씩 유지하고, CI pipeline이 로컬 컴퓨터의 모든 편리한 플래그를 상속하지 않도록 하세요.
로컬 디버깅이 친화적이고 자동화가 느슨하지 않도록 유지하는 것이 중요합니다._launch가 안정화되면 나머지 터미널 워크플로우가 신뢰할 수 있는 대상에 연결할 수 있습니다.
에뮬레이터를 adb Shell로 제어하기
에뮬레이터가 시작되면 adb 가 가장 자주 사용하는 제어 표면이 됩니다. adb devices 어떤 것이 연결되어 있는지 보여주고, 특정 포트에서 특정 인스턴스를 대상으로 하도록 허용합니다. 여러 가상 장치가 있는 머신에서, 일반적인 명령어는 잘못된 대상에 부딪힐 수 있습니다. 시리얼 번호는 자동화가 사용자가 의도한 에뮬레이터를 향하게 유지합니다. adb -s emulator-5554 shell Android 에뮬레이터 관리 및 개발을 위한 adb shell 명령어 흐름 프로세스 3단계 그래픽 가이드

한 번만 사용하는 명령어와 인터랙티브 셸의 구분은 처음에는 중요하지 않아 보이지만, 실제로는 중요합니다. 설정을 검사하거나 파일을 수집할 필요가만 있다면, 단일
The split between one-off commands and an interactive shell matters more than it first appears. If you only need to inspect a setting or collect a file, a single adb shell 명령은 더 깨끗합니다. 앱 동작을 단계별로 추적하는 경우, 인터랙티브 셸로 들어가서 작업이 끝날 때까지 머물러 있습니다.
adb push 그리고 adb pull 파일 이동을 처리합니다. adb install -r 반복적인 로컬 테스트를 위한 실제 경로입니다. adb exec-out screencap 신뢰할 수 있는 스크린샷 캡처 경로를 제공합니다. adb shell screenrecord 스크린 녹화도 필요할 때 바로 가능합니다. 패키지 설치자 및 로컬 사이드 로딩 워크플로우에서 이 설치 가이드는 유용한 동반자입니다..
ADB를 앱 작업에 사용하고, 에뮬레이터 라이프 사이클 작업에는 사용하지 마십시오.
adb 안드로이드 내부에서 실행되는 명령에 적합한 계층입니다. adb shell sh /sdcard/run.sh 공유 저장소에 저장된 스크립트가 있다면, 실제 자동화 스택에 잘 맞습니다. run-as <package> 디버그 빌드에서 유용합니다.
앱 전용 파일을 제공하기 때문에 루트를 강제하지 않습니다. adb 이미터널을 대체하지 않으며 더 깊은 이메터레이서 생명주기 제어 또는 콘솔 전용 작업에 적합한 도구도 아닙니다. 파일 전송, 패키지 관리, 명령어 실행 및 빠른 감찰을 위해 사용하세요. 그 이상은 멈춥니다.
실용적인 규칙: Android에 속하는 작업일 경우에는
adb shell이메터레이서 자체에 속하는 작업일 경우에는 콘솔을 사용하세요.
플러그인 층계, 플랫폼 특정 동작 및 장치 상태에 대한 질문을 처리하는 팀에게는 더 광범위한 디버깅 도구가 터미널 작업이 추측으로 변하지 않도록 도와줍니다. 이 디버깅 리소스는 ADB 워크플로우와 잘 어울립니다.
이미터레이서 콘솔을 ADB 이외의 용도로 사용하는 방법
이미터레이서 콘솔은 별도의 제어 평면이며 이 차이점은 중요합니다. Google은 명령어를 수락하기 전에 인증이 필요하며 명령어와 같은 5554에서 5585까지의 localhost 포트만 듣고 있다고 문서화합니다.명령어와 같은 avd start, avd stop, avd status, ping명령어와 같은 rotate __CAPGO_KEEP_0__ adb __CAPGO_KEEP_0__

인증을 먼저 하세요
구글의 문서화된 방법은 telnet localhost console-portwait for OK그 다음에 auth auth_token 을 사용하세요. 이 토큰은 ~/.emulator_console_auth_token에 저장되어 있습니다. 만약 토큰 파일이 없다면, telnet 연결은 임의의 토큰으로 토큰 파일을 생성합니다. 임시 CI 환경에서, 그 파일을 의도적으로 보존하거나 의도적으로 초기화해야 합니다.因为 예상치 못한 인증 실패는 거의 항상 상태 관리 실패입니다.
콘솔도 쉽게 찾을 수 있습니다. help, help command그리고 help-verbose 은 이유가 있습니다. 그리고 사용자가 어떤 명령어를 에뮬레이터가 지원하는지 확인할 때 시간을 절약할 수 있습니다. 그게 더 나은 습관입니다. 그저 추측하고 기대하기보다 adb 이것은 나중에 처리할 수 있습니다.
콘솔에 속하는 것을 알 수 있나요?
콘솔 명령어는 라이프 사이클과 에뮬레이터 측 상태에 사용됩니다. avd start 그리고 avd stop 명백한 예시지만 rotate 그리고 ping 응답성 확인이나 장치 변경 시뮬레이션과 같은 경우에도 유용합니다. 에뮬레이터는 이 맥락에서 인프라와 같이 작동합니다. 왜냐하면 시작 시 스크립트를 작성할 수 있는 곳에서 준비성과 종료를 스크립트할 수 있기 때문입니다.
일반적인 실수는 에뮬레이터 콘솔과 안드로이드 셸을 혼동하는 것입니다. 그들은 거리에서 비슷해보이지만 프로토콜은 다릅니다. 콘솔은 인증되고 포트 바운드되며, 셸 접근은 일반적으로 adb shell으로 처리됩니다. 따라서 스크립트는 다른 타임아웃과 다른 실패 처리가 필요합니다. 플랫폼 특정 워크플로우에서 터미널 신뢰성을 위해 이 디버깅 리소스는 콘솔 준비성 검사와 잘 어울립니다. 좋은 자동화 게이트:
__CAPGO_KEEP_0__ 프로세스 시작 시 테스트를 시작하지 마세요. 콘솔 핸드셰이크가 성공하고 가상 장치가 예상한 상태를 보고할 때만 테스트를 시작하세요.
그 결정 하나가 테스트 스위트에 도달하기 전에 많은 불안정한 "부팅되지만 준비되지 않은" 실패를 제거합니다.
터미널 앱과 루트 접근 권한
일부 작업은 가상 머신 내부에 속하는 경우가 있습니다. 그 경우 에뮬레이터 내부에 실제 터미널 앱을 설치하는 것이 가장 간단한 방법입니다. Termux는 표준 선택이며, 실제 Unix 워크플로우와 더 가깝게 작동하는 디바이스 셸 환경을 제공합니다.
루트 권한은 이미지에 따라 다릅니다.
그리고 adb root 루트 접근 권한이 허용된 시스템 이미지가 있다면, adb shell su 그것을 사용하여 원하는 곳까지 이동할 수 있지만, 일반적인 Google Play 이미지는 루트 작업을 편하게 하기에는 적합하지 않습니다. 커스텀 AVDs는 일반적으로 더 많은 접근 권한이 필요할 때 더 유연합니다.
BusyBox is still useful in this layer because it fills in gaps in the command set you’d otherwise miss. If you’re doing file inspection, device-side scripting, or quick diagnostics inside the emulator, a fuller Unix toolkit makes the machine feel much less constrained. The related root checks for Capacitor projects are discussed in 관련 루트 체크는 __CAPGO_KEEP_0__ 프로젝트에 대해 이 플러그인 가이드에서 설명합니다..
이 플러그인 가이드
앱-사용자 전용 접근 권한을 사용하기 전에 루트 권한을 상승시키지 마세요. adb shell run-as <package> 는 앱-사적인 디렉터리를 검사하기 위해 충분합니다. 이는 폭파 반경을 확대하지 않기 때문에 더 깨끗한 습관입니다. 이는 워크플로우가 가장 약한 도구와 일치하면서도 작업을 수행할 수 있기 때문입니다.
시스템 쓰기 필요하면 시스템 파티션은 writable 상태여야 하며, 이는 다른 클래스의 설정입니다. 일상적인 에뮬레이터 작업을 위해 host-side adb shell 는 더 좋은 시작점이며, on-device 터미널은 host 접근이 충분하지 않은 경우에만 특수화된 층으로 다루어져야 합니다. 권한의 규칙은 간단합니다. 여전히 버그를 재현할 수 있는 가장 작은 권한을 사용하십시오.
네트워킹, 포트 포워딩 및 키보드 단축키
호스트 경계를 넘어야 하는 트래픽이 있는 즉시 터미널-첫 에뮬레이터 워크플로가 실제로 됩니다. adb reverse tcp:8080 tcp:8080 는 로컬 개발 서버를 실행 중인 머신에 에뮬레이터를 가리키는 가장 깨끗한 방법입니다. 특히 앱이 호스트 서비스를 호출하기를 기대할 때입니다. adb forward 는 에뮬레이터가 호스트 서비스에 접근할 수 있도록 합니다.
는 호스트에서 트래픽을 받는 경우에 사용됩니다.
버그를 디버깅하기 전에 올바른 층을 선택하십시오. adb reverse 네트워킹 문제를 모두 에뮬레이터 문제라고 부르는 경우가 많습니다. 실제로는 포트 방향이 잘못된 경우가 많습니다. adb forward 호스트 서비스에 에뮬레이터가 접근할 수 있도록 합니다.
호스트 포트로 향하는 디바이스 트래픽을 전송합니다. 연결 경로가 결정하기 때문에 해당 명령어를 적용합니다. adb shell ip route 그리고 인터페이스를 검사합니다. ifconfig. 네트워크 경로가 정상적으로 보이지만 서비스가 연결을 거부할 때, 일반적으로 오류는 호스트 리스너나 전달 설정에 있지 않습니다. Android 자체가 아니라. 로컬 트래픽 지연이 디버깅 중에 무엇을 보게 되는지 보다 광범위한 관점을 위해, 이 네트워크 지연 설명서
디버깅 중에 무엇을 보게 되는지 보다 광범위한 관점을 위해,
터미널의 스토리 중 키보드 제어는 구글의 키보드 맵핑이 에뮬레이터를 데스크톱 목표로 더 좋게 만듭니다. F2 메뉴를 열어줍니다. ESC 뒤로 가는 역할을 합니다. F7 Alt-Enter 화면 전체를 전환합니다. 카메라, 음량, 방향 제어도 마찬가지로 키보드에서 처리되므로, 장치 동작의 많은 부분이 키보드에서 처리되며, 도구바에 묻혀 있는 것이 아니라.
노트북과 큰 모니터에서 중요합니다. 컨트롤 bề면이 키보드에 살아 있으면, 에뮬레이터는 일일 작업 도구처럼 행동하기 시작하고, 마우스로 계속 밀어내야 하는 창이 아니라.
| deprecated | 이전 버전에서 사용하던 기능 | 최신 버전의 대체 |
|---|---|---|
-audio-in |
음성 입력 제어 활성화 | 현재 문서에서 더 이상 작동하지 않으므로, 런치 스크립트에서 제거하십시오. |
-audio-out |
음성 출력 제어 활성화 | 현재 문서에서 더 이상 작동하지 않으므로, 런치 스크립트에서 제거하십시오. |
-enable-kvm |
가상화 경로 요청 | 현재 문서에서 더 이상 작동하지 않으므로, 런치 스크립트에서 제거하십시오. |
-gps |
GPS 동작을 제어합니다. | 현재 문서에서 더 이상 작동하지 않기 때문에 런치 스크립트에서 제거하십시오. |
-skin |
장치 스킨을 설정합니다. | 현재 문서에서 더 이상 작동하지 않기 때문에 런치 스크립트에서 제거하십시오. |
-skindir |
스킨 디렉토리 경로를 지정합니다. | 현재 문서에서 더 이상 작동하지 않기 때문에 런치 스크립트에서 제거하십시오. |
-useaudio |
사운드 사용량을 활성화합니다. | 현재 문서에서 더 이상 작동하지 않기 때문에 런치 스크립트에서 제거하십시오. |
구글은 현재 에뮬레이터 문서에서 이러한 플래그를 더 이상 작동하지 않는 것으로 나열하고 있으므로, 새로운 스크립트로 복사될 때 오래된 Snippet은 빠르게 썩습니다. 현재 에뮬레이터 명령줄 노트. 만약 여전히 공유 쉘 스크립트에 포함되어 있다면, 런치 테스트를 다시 실행하기 전에 제거하십시오.
문제 해결 및 2026 터미널 워크플로우
검은 화면, offline, unauthorized, KO: missing auth포트 충돌 및陈舊快照는 일반적인 실패 클러스터입니다. 문제를 원인과 매핑하면 해결책은 직관적입니다. 부팅이 멈추면 일반적으로快照 상태를指示하고 콘솔 인증 실패는 일반적으로 토큰 파일 또는 handshake가 동기화되지 않은 경우입니다.

실패가 가장 많은 시간을 소모하는 것들을 위한 일 줄된 해결책
이미지 에뮬레이터가 검은 화면으로 멈추지 않으면, 새로고침을 위해 깨끗한 시작 경로와陈舊 상태를 삭제하세요. 만약 adb says offline 또는 unauthorized이미지 에뮬레이터가 검은 화면으로 멈추지 않으면, 새로고침을 위해 깨끗한 시작 경로와陈舊 상태를 삭제하세요. 만약 KO: missing authconsole
console
포트 충돌은 일반적으로 이전 에뮬레이터가 정상적으로 종료되지 않았기 때문에 사용 중인 포트를 삭제해야 한다는 것을 의미합니다. 부팅이 완료되지 않으면快照 드리프트를 가정하고 명확한 시작을 강제하세요. 그 습관이 2026년의 터미널 워크플로우가 신뢰할 수 있는 이유입니다.
워크플로우를 시스템처럼 다루세요, 클릭의 시퀀스처럼 다루지 마세요 adb shell 앱 수준 작업과 상태가 이탈했을 때 롤백 경로가 필요합니다. 그게 빠른 모바일 반복의 discipline입니다. native 앱을 테스트하거나 Capacitor 앱에 대한 제어된 릴리스 PIPELINE을 통해 업데이트를 배포하는 경우에요.
신뢰는 이익입니다. 에뮬레이터 터미널이 제어 평면으로 연결되면, 창이 반응하는지 여부를 물어보지 않고, 기기 상태가 테스트가 예상하는 정확한 상태인지 여부를 물어보게 됩니다.
Capgo은 안드로이드 테스트를 위한 에뮬레이터 터미널을 사용하는 경우, 안정적인 릴리스와 복구 경로가 필요하며, 에뮬레이터로 테스트를 수행하는 경우, Capgo은 팀에게 빠른 JavaScript, CSS, config, 및 asset 수정을 제공합니다. 스토어 리뷰를 기다리지 않고. Capgo __CAPGO_KEEP_0__