adb
Android Platform Tools 34+Android Debug Bridge CLI 빠른 참조 — 디바이스 발견, install / uninstall, logcat, shell, push / pull, 포트 포워딩, 무선 디버깅 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 33개
디바이스
adb devices연결된 모든 디바이스 / 에뮬레이터를 시리얼과 상태(`device`, `unauthorized`, `offline`)와 함께 나열합니다.
-l 자세한 정보 표시(product, model, transport); -e 에뮬레이터만; -d USB 디바이스만
adb devices -ladb connect <ip>:<port>Wi-Fi 또는 TCP/IP로 디바이스에 연결합니다(기본 포트 5555). Android 11+에서는 먼저 `adb pair <ip>:<port>`로 페어링하세요.
ip:port; --one-time 세션 종료 시 연결 해제
adb pair 192.168.1.42:41235 && adb connect 192.168.1.42:5555adb disconnect [<ip>:<port>]하나 또는 모든 무선 디바이스의 연결을 해제합니다. 인자를 주지 않으면 모든 연결을 해제합니다.
adb disconnect 192.168.1.42:5555 && adb disconnectadb -s <serial> <command>여러 디바이스가 연결되어 있을 때 특정 디바이스를 대상으로 지정합니다(`<serial>`을 `adb devices`의 값으로 대체).
adb -s emulator-5554 shell pm list packages설치 / 제거
adb install <apk>APK를 설치합니다. `-r`은 데이터를 유지하며 재설치, `-d`는 version-code 다운그레이드 허용, `-t`는 테스트 전용 APK 허용, `-g`는 모든 런타임 권한 부여.
-r; -d; -t; -g; --abi <abi>; --user <id>
adb install -r -g app-release.apkadb install-multi-package <apk1> <apk2>분할 APK 번들을 원자적으로 설치합니다 — 여러 ABI / 구성을 가진 App Bundle에 사용됩니다.
adb install-multi-package base.apk split_config.arm64.apkadb uninstall <package>패키지 이름으로 앱을 제거합니다. `-k`는 데이터 + 캐시 디렉터리를 유지합니다.
-k 사용자 데이터 유지
adb uninstall com.example.myappLogcat
adb logcat디바이스의 로그 버퍼를 스트리밍합니다. 태그 / 우선순위 필터: `*:V`(verbose), `*:E`(errors).
-v threadtime; -d 덤프 후 종료; -s <tag>; -t <N>; --pid=<pid>; -f <file> 파일로 저장
adb logcat *:Eadb logcat -d현재 버퍼를 stdout으로 덤프하고 종료합니다(비-스트리밍). 일회성 점검을 위해 grep과 함께 사용하세요.
-d -t 500 마지막 500줄
adb logcat -d -t 200 | grep -i 'myapp'adb logcat -s <tag>:<level>주어진 레벨(V/D/I/W/E)로 특정 태그의 항목만 표시합니다. 태그는 공백으로 결합합니다.
MyTag:D MyTag2:E
adb logcat -s MyApp:V ReactNative:V셸
adb shell디바이스에서 인터랙티브 셸로 들어갑니다. 대부분의 Unix 유틸리티가 동작하며, `/sdcard`가 공용 저장소 루트입니다.
-t TTY 할당(인터랙티브 프로그램용)
adb shelladb shell <command>디바이스에서 단일 명령을 실행하고 출력을 반환합니다. 호스트 / 디바이스 인자를 섞을 때는 따옴표 처리에 주의하세요.
adb shell pm list packages | grep com.example && adb shell dumpsys batteryadb shell pm list packages설치된 패키지를 나열합니다. `-f`는 경로, `-3`은 사용자 설치 앱 필터, `-d`는 비활성화된 패키지 필터.
-f 경로; -3 사용자 앱; -d 비활성; -e 활성; -s 시스템; <filter>
adb shell pm list packages -3 | head -30adb shell am start -n <package>/<activity>`package/activity` 정규화된 이름으로 액티비티를 시작합니다. 시작 완료를 기다리려면 `am start -W`를 사용하세요.
-a <action>; -d ; --es <key> <val> 추가 문자열; -W 대기
adb shell am start -n com.example/.MainActivityadb shell screencap -p /sdcard/screen.png디바이스 화면을 PNG로 캡처합니다. 가져오려면 `adb pull`과 함께 사용하세요.
-p PNG(기본)
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png .adb shell input <source> <command>입력 이벤트를 주입합니다. 자주 쓰는 예: `tap x y`, `swipe x1 y1 x2 y2 [ms]`, `keyevent <code>`, `text "string"`.
tap; swipe; keyevent; text; roll; press
adb shell input tap 540 1200 && adb shell input keyevent 4파일 전송
adb push <local> <remote>로컬 파일 / 디렉터리를 디바이스로 복사합니다. 동기 시맨틱, 바이너리 파일을 보존합니다.
--sync 오래된 파일만 덮어쓰기; --copy-links 심볼릭 링크 보존; -p 진행 표시
adb push app-debug.apk /sdcard/Download/ && adb push ./assets /sdcard/myapp/assetsadb pull <remote> <local>디바이스의 파일 / 디렉터리를 호스트로 복사합니다. 기본 대상은 `.`(현재 디렉터리).
-a 타임스탬프 보존; -p 진행 표시
adb pull /sdcard/screen.png ./screenshots/latest.png포워딩
adb forward tcp:<host-port> tcp:<device-port>호스트 포트를 디바이스 포트로 포워딩합니다 — Chrome 탭에 대한 Chrome 원격 디버그 소켓을 여는 데 흔히 사용됩니다.
--remove; --remove-all
adb forward tcp:9222 localabstract:chrome_devtools_remoteadb reverse tcp:<device-port> tcp:<host-port>디바이스 포트를 호스트 포트로 역방향 포워딩합니다 — 개발 서버가 `localhost:3000`에서 실행 중이고 디바이스가 그에 접근해야 할 때 유용합니다.
adb reverse tcp:3000 tcp:3000 && curl http://localhost:3000/api/healthadb forward --list활성 포트 포워드 및 reverse 목록을 표시합니다. 리셋하려면 `adb forward --remove-all`과 함께 사용하세요.
adb forward --list && adb reverse --list앱 관리
adb shell pm clear <package>특정 패키지의 앱 데이터 + 캐시를 지웁니다 — `설정 → 앱 → 스토리지 → 비우기`와 같은 효과.
adb shell pm clear com.example.myappadb shell pm grant <package> <permission>UI 프롬프트 없이 런타임 권한(예: `android.permission.CAMERA`)을 부여합니다 — 테스트 설정에서 흔히 사용됩니다.
adb shell pm grant com.example.myapp android.permission.READ_CONTACTSadb shell am force-stop <package>실행 중인 앱을 강제 종료합니다(프로세스가 죽음). 포그라운드 앱을 재설치할 때 유용합니다.
adb shell am force-stop com.example.myapp && adb install -r app.apk부팅 / 리커버리
adb reboot디바이스를 재부팅합니다. 변형: `recovery`, `bootloader`, `fastboot`, `download`, `edl`.
recovery | bootloader | fastboot | download | edl
adb reboot bootloader && fastboot flashalladb sideload <zip>리커버리 모드에서 서명된 OTA / 공장 이미지 zip을 사이드로드합니다(보통 `adb reboot recovery`로 진입).
adb sideload ota-update.zip디버깅
adb shell run-as <package> <cmd>앱의 UID로 명령을 실행합니다 — 디버그 가능한 APK가 자신의 비공개 데이터 디렉터리를 읽기 위해 필요합니다.
<package> cat ./databases/my.db > /sdcard/dump.db
adb shell run-as com.example.myapp ls databasesadb shell dumpsys <service>시스템 서비스(`battery`, `window`, `activity`, `package`, `gfxinfo`, `netstats`)의 상태를 덤프합니다.
battery; activity; package; window; gfxinfo <pkg>; netstats
adb shell dumpsys gfxinfo com.example.myapp framestats서버
adb start-serveradb 서버를 명시적으로 시작합니다(보통은 어떤 명령에서나 자동 시작됨). `kill-server` 후에 사용하세요.
adb start-serveradb kill-serveradb 서버를 중지하고 모든 디바이스의 연결을 해제합니다. adb가 `offline` 상태에서 멈췄을 때 유용합니다.
adb kill-server && adb start-server && adb devices기타
adb --versionPlatform Tools 버전을 출력합니다.
adb --versionadb help모든 adb 하위 명령을 한 줄 설명과 함께 나열합니다.
adb help무선
adb pair <ip>:<port>개발자 옵션에 표시된 6자리 페어링 코드를 사용해 Wi-Fi로 디바이스를 페어링합니다. 그 후 실제 디버그 포트로 `adb connect`를 호출합니다.
<ip>:<port>
adb pair 192.168.1.42:41235관련 명령어 치트시트
상표 및 사용 안내
본 명령줄 도구 치트시트 모음은 오픈 커뮤니티 참고 자료입니다. 본 문서에서 언급되는 도구의 명칭, 로고, 상표(예: Git™, Docker™, Kubernetes®, kubectl, PostgreSQL®, MySQL®, Redis™, MongoDB®, Linux™, PowerShell™, Vim™ 등)는 각 권리자의 자산이며, 본 문서에서는 식별 및 참고 목적のみで 사용됩니다.
본 치트시트의 모든 내용은 독립적으로 작성된 단순화된 자체 완결형 참고 자료이며, 어떠한 공식 문서와도 계열·인정·출처 관계가 없습니다. 명령 목록, 플래그 설명, 예제는 모두 저자의 원본 단순화이며, 권위 있는 정보가 필요한 경우 각 도구의 공식 문서를 참조하시기 바랍니다.
명령 구문 및 옵션 플래그는 도구 버전에 따라 다를 수 있습니다. 표시되는 버전 태그는 안정 릴리스를 반영하며, 다른 버전에서는 동작이 다를 수 있습니다. 본 치트시트는 상표권자의 어떠한 선호나 권장도 의미하지 않습니다.
상표권자 또는 저작권자가 사이트의 일부 내용에 대해 권리 침해가 있다고 판단하시는 경우 [email protected]으로 이메일을 보내 주십시오. 유효한 권리 증명을 받은 후 합리적인 기간 내에 관련 내용을 수정하거나 삭제하겠습니다.
본 사이트는 사이트 정보의 이용으로 인해 발생하는 어떠한 직접적 또는 간접적 손해에 대해서도 법적 책임을 지지 않습니다.
ADB 소개
Android Debug Bridge(adb)는 Android SDK Platform Tools(2009년부터)와 함께 제공되는 CLI 도구입니다. USB, Wi-Fi 또는 TCP/IP로 개발 워크스테이션을 안드로이드 디바이스나 에뮬레이터에 연결하며, 세 가지 하위 구성 요소로 이루어집니다: 호스트에서 실행되는 서버(포트 5037), 디바이스에서 실행되는 데몬(`adbd`), 그리고 `adb` CLI. 현재 Platform Tools 라인은 34+(Android 14와 함께 출시)입니다. `adb`는 APK 설치, logcat 읽기, JDWP로 앱 디버깅, ROM 사이드로드, UI 테스트 스크립팅, 파일 push/pull의 기반입니다. 무선 디버깅은 Android 11에서 추가되었으며(13+에서 QR 페어 플로우) 자주 쓰는 관련 명령으로 `fastboot`(부트로더 / 리커버리)와 `emulator`(QEMU 기반 AVD)가 있습니다. ADB는 앱의 소스 코드를 업로드하지 않으며, APK와 디바이스 상태만 전송합니다. SDK Platform Tools는 Apache 2.0 라이선스로, 독립 ZIP 또는 SDK Manager를 통해 제공됩니다.
치트시트 버전 1.0.0