Android/ADB

ADB 개요 및 개념

임베디드 친구 2025. 2. 12. 23:26
728x90
반응형

ADB란 무엇인가?

ADB(Android Debug Bridge)는 Android 디바이스와 컴퓨터 간의 통신을 가능하게 하는 명령어 기반 인터페이스입니다. 개발자가 Android 애플리케이션을 디버깅하거나 디바이스의 파일 시스템에 접근하고 다양한 작업을 수행할 수 있도록 도와주는 강력한 도구입니다.

ADB는 Android SDK에 포함된 platform-tools 패키지에 속해 있으며, 명령줄을 통해 실행됩니다. 이를 활용하면 Android 디바이스의 앱을 설치하거나, 로그를 확인하거나, 쉘 명령을 실행하는 등의 작업을 수행할 수 있습니다.

ADB의 역할과 필요성

1. 애플리케이션 디버깅

ADB는 애플리케이션 개발 시 필수적인 도구입니다. 개발자는 ADB를 이용해 디바이스에서 실행 중인 애플리케이션의 로그를 확인하고, 버그를 찾고, 오류를 수정할 수 있습니다. adb logcat 명령어를 사용하면 애플리케이션의 로그 출력을 실시간으로 확인할 수 있습니다.

adb logcat

2. 파일 전송 및 관리

ADB를 활용하면 컴퓨터에서 Android 디바이스로 또는 반대로 파일을 전송할 수 있습니다. 예를 들어, APK 파일을 설치하거나 특정 데이터를 복사하는 등의 작업을 수행할 수 있습니다.

adb push local_file_path /sdcard/
adb pull /sdcard/remote_file_path local_path

3. 디바이스 컨트롤

ADB는 단순히 파일을 전송하는 것뿐만 아니라 디바이스 자체를 제어하는 기능도 제공합니다. 예를 들어, 디바이스를 재부팅하거나 특정 모드로 전환하는 작업이 가능합니다.

adb reboot           # 일반 재부팅
adb reboot recovery  # 리커버리 모드로 부팅
adb reboot bootloader  # 부트로더 모드로 부팅

4. 쉘 명령어 실행

ADB를 통해 Android 디바이스에서 직접 터미널 명령어를 실행할 수 있습니다. 이는 시스템 파일을 조작하거나 특정 설정을 변경할 때 유용합니다.

adb shell

ADB 쉘 내부에서 다음과 같은 명령어를 실행할 수 있습니다.

ls -l /sdcard/  # SD카드 내 파일 목록 출력
pm list packages  # 설치된 패키지 목록 확인
settings get secure android_id  # Android ID 조회

5. 포트 포워딩 및 네트워크 디버깅

ADB는 네트워크 관련 디버깅 작업에도 유용합니다. 예를 들어, 특정 포트를 포워딩하여 디바이스에서 실행 중인 웹 서버에 접근할 수 있습니다.

adb forward tcp:8080 tcp:8080

이렇게 하면 컴퓨터의 localhost:8080으로 Android 디바이스의 포트 8080에 접근할 수 있습니다.

ADB를 활용한 Android 디버깅의 기본 개념

1. ADB 명령 실행 전 준비 사항

ADB를 사용하려면 먼저 Android 디바이스에서 개발자 옵션을 활성화하고 USB 디버깅을 켜야 합니다. 설정 방법은 다음과 같습니다.

  1. Android 디바이스에서 개발자 옵션 활성화
    • 설정 > 휴대전화 정보 > 빌드 번호를 7회 연속 터치하여 개발자 모드를 활성화합니다.
  2. USB 디버깅 활성화
    • 설정 > 개발자 옵션 > USB 디버깅을 활성화합니다.
  3. ADB와 디바이스 연결 확인
    • 디바이스를 USB로 컴퓨터에 연결한 후 다음 명령어를 실행하여 연결을 확인합니다.
adb devices

정상적으로 연결되었다면 디바이스의 일련번호(serial number)가 출력됩니다.

2. 앱 설치 및 제거

ADB를 사용하여 APK 파일을 직접 설치하거나 제거할 수 있습니다.

adb install example.apk  # 앱 설치
adb uninstall com.example.app  # 앱 제거

3. 디바이스 로그 확인

애플리케이션 개발 및 디버깅 과정에서 logcat을 사용하여 로그를 모니터링할 수 있습니다.

adb logcat -s TAG_NAME  # 특정 태그만 필터링하여 출력
adb logcat *:E  # 오류 로그만 출력

4. 시스템 설정 변경

ADB를 활용하면 Android 시스템 설정을 직접 변경할 수도 있습니다. 예를 들어, 화면 자동 회전을 비활성화하려면 다음 명령어를 실행합니다.

adb shell settings put system accelerometer_rotation 0

ADB와 Fastboot의 차이점

ADB와 Fastboot는 둘 다 Android 디바이스와 상호작용하는 도구이지만, 사용 목적과 동작 방식이 다릅니다.

구분 ADB Fastboot
사용 목적 디바이스의 정상 부팅 상태에서 디버깅 및 파일 전송 수행 부트로더 모드에서 펌웨어 플래싱 및 디바이스 관리 수행
필요 조건 Android OS가 부팅된 상태 부트로더 모드로 진입해야 사용 가능
주요 명령어 adb devices, adb install, adb logcat fastboot devices, fastboot flash
사용 예시 앱 설치, 로그 확인, 시스템 설정 변경 커스텀 리커버리 설치, 펌웨어 업데이트

Fastboot는 주로 Android 부트로더에서 동작하며, 디바이스가 ADB 명령을 받을 수 없는 경우에도 사용됩니다. 예를 들어, 부트로더에서 커스텀 리커버리(TWRP)를 설치하려면 다음 명령어를 사용합니다.

fastboot flash recovery twrp.img

ADB는 디바이스가 정상적으로 부팅된 상태에서 디버깅과 파일 전송을 수행하는 반면, Fastboot는 부트로더 모드에서 디바이스의 시스템 이미지를 직접 수정할 때 사용됩니다.

결론

ADB는 Android 개발과 디버깅을 위한 필수적인 도구로, 애플리케이션 개발뿐만 아니라 시스템 관리, 네트워크 디버깅, 포트 포워딩 등의 다양한 기능을 제공합니다. ADB를 익숙하게 다루면 Android 디바이스를 보다 효과적으로 관리하고 디버깅할 수 있습니다. 또한, Fastboot와의 차이를 이해하고 필요에 따라 적절한 도구를 사용하면 더욱 효율적인 개발 환경을 구축할 수 있습니다.

반응형

'Android > ADB' 카테고리의 다른 글

ADB 기본 명령어 정리  (0) 2025.02.13
ADB 설치 및 환경 설정  (0) 2025.02.13