본문 바로가기
SW 개발/Android

안드로이드 adb 설치 및 설정 방법

by Kibua20 2021. 10. 3.

Android ADB (Android Debug Bridge)는 PC와 스마트 폰 간에 통신을 할 수 있는 명령어도 도구입니다. 안드로이드 개발자에게는 apk 설치, log 출력의  등의 개발에 많은 활동에서 adb를 거의 매일 사용하고 있습니다. 또한 디버깅 목적뿐 아니라 스마트 폰 화면을 PC로 미러링 할 수 있는 App에서도 adb를 사용합니다. 예를 들어 scrcpy Mirroid 같은 스마트 폰 미러링 앱을 사용하기 위해서는 PC에 adb를 미리 설치해야 합니다.  (※ Mrriod는 adb.exe가 설치 파일에 포함됨)

 

본 포스팅은 상용 단말 (=User version) 기준으로 ADB 연결을 설정하는 과정을 설명하고 요약하면 다음과 같습니다.

 

  1. 스마프 폰 제조사 USB 드라이버를 설치 (각 제조사 홈페이지에서 USB 통합 Driver를 제공함, 링크는 다음과 같습니다. 삼성 통합드라이버, LG USB Driver , Google USB Driver) (필수)
  2. PC에서 ADB Tool 다운로드:  최신 버전 Android SdK platform tool 설치 (다운로드 링크)
  3. PC 환경 변수에 ADB 설치 Path 추가
  4. 스마트 폰의 개발자 메뉴에서 'USB 디버깅' 연결 활성화
  5. 스마트 폰과 PC 연결 시 USB 디버깅 허용 

※ Windows용과 MAC용 LG USB 통합 드라이버(LG United Mobile Driver)를 첨부 파일로 업로드 하였습니다. 

LGMobileMacDriver_v6.1.zip
3.66MB
LGMobileDriver_WHQL.7z
9.87MB

 

1. PC에서 ADB Tool 다운로드: 다운로드 링크

Android Studio SDK를 설치하는 경우에도 SDK manager를 통해서 다운로드 및 설치할 수 있고, 독립형 패키지로도 Andorid SDK platform-tools을 다운로드하여 adb를 설치할 수 있습니다.  이는 링크에서 다운로드가 가능하며 다운로드한 zip 파일(platform-tools_r30.0.5-windows.zip)을 압축 해제하면 됩니다.

PC에서 ADB Tool 다운로드

 

2. PC(Windows OS)에서 ADB Path를 환경 변수에 추가

최신 버전의 Android SDK Tool을 다운로드하여 설치를 원하는 폴더에 압축을 풉니다. 임의의 폴더에서도 adb를 실행할 수 있도록 환경 변수 PATH에 adb 설치 경로를 추가합니다.

 

Android SDK Tool을 통해서 platform-tools_r30.0.5-windows.zip 파일을 원하는 폴더에 압축해제

② 내 컴퓨터의 고급 시스템 설정 (제어판-시스템 보안-시스템-고급 시스템 설정 또는 내 컴퓨터에서 마우스 오른쪽 키)

③ 시스템 속성 메뉴 -고급 탭에서 '환경 변수' 선택

④ 시스템 변수 (또는 사용자 변수)에서 Path 편집

⑤ Path 항목에 platform-tools을 설치한 경로를 추가 

 

PC에서 ADB Path를 환경 변수에 추가

 

3. 우분투/Mac OS에서 ADB 설치

Android SDK를 설치하면 adb가 포함된 Plaftform Tools까지 같이 설치지만, SDK 설치 없이 ADB만 별도로 패키지 매니져로  설치가 가능합니다.  우분투와 Mac에서는 별도의 Path설정은 필요 없습니다.

 

우분투OS에서 ADB 설치 명령어

$ sudo apt install adb 

 

Mac OS에서 adb설치 명령어

$ brew install android-platform-tools

 

4. 스마트폰에서 USB 디버깅 연결 활성화 

User Debug 버전에서 USB 디버깅 옵션 메뉴가 기본 값으로 활성화 상태이지만, 일반 상용 버전 (User 버전)은 개발자 메뉴에서 디버깅 옵션을 활성화시켜야 합니다. 

 

  • 개발자 메뉴 활성화: 시스템 세팅 - 휴대폰 정보 - 소프트웨어 정보- 빌드 번호를 3번 누르기 
  • 개발자 메뉴에서 "USB 디버깅 옵션" 활성화 

스마트폰에서 USB 디버깅 연결 활성화 

 

5. USB 연결 후 adb 정상 동작 확인 

Win+R키를 누르고 명령 프롬프트 창에서 $ adb devices 입력합니다.  스마트 폰 화면에서는 USB 허용 팝업을 표시하고 허용해야 연결됩니다. 

 

스마트 폰에서 USB 연결 허용

$ adb devices 실행 시 연결된 Device list를 표시하면 정상적으로 동작하는 것입니다.  adb는 상당히 많은 기능을 가지고 있습니다. 각 세부 기능은 Google 공식 문서를 참고하세요.

PC에서  adb 연결 확인

 

6. Adb 에러에 대한 조치 사항

[에러 1] USB 연결 상태에서 adb devices 결과에 스마트 폰 검색이 되지 않는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 단말 List가 보이지 않는 경우 핸드폰 제조사 USB 드라이드가 설치되지 않아서 발생하는 것입니다. 각 제조사에 맞는 USB 통합 드라이버를 설치하면 해결이 됩니다.

 

[에러 2] USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

adb가 정상적으로 설치한 상태에서 $ adb devices에서 unauthorized 가 표시되는 경우 스마트 폰에서 "USB 디버깅 허용"을 선택합니다.

USB 연결 상태에서 adb devices 결과가 'unauthorized' 에러가 발생하는 경우

 

[에러 3] Mirroid 실행 상태에서 ADB 실행 에러 조치 방법

PC에서 2개 이상의 adb가 설치된 경우입니다.  예를 들어 Mirroid 프로그램에서도 adb가 설치하고, Andorid SDK에서도 다른 버전의 Adb가 설치가 되었다면  Adb 실행 시 Version Mismatch 에러 ("adb server version (40) doesn't match this client (41); killing...​") 가 발생할 수 있습니다.

 

이 경우 여러 경로에 설치된 가장 최 상위의 adb 버전으로 통일하면 문제가 해결됩니다.  미러로이드와 같은 경우 ADB 파일(adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)파일을 미러로이드 설치폴더(C:\Program Files (X86)\Mirroid)로 덮어 쓰면 문제가 해결됩니다.

 

에러 메시지 

C:\User> adb shell  

adb server version (40) doesn't match this client (41); killing...​

* daemon started successfully 

Mirroid 실행 상태에서 ADB 실행 에러

조치 방법

최신 버전의 adb 파일 (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)으로 통일한다.

adb server version (40) doesn't match this client (41); killing..에러 조치 방법

 

[에러 4] ADB 실행 시 daemon not running 에러 조치 방법

adb devices 연결 시도 시  adb daemon이 정상적으로 실행해야 하지만, daemon not running 에러 메시지가 출력된다면 이전에 실행한  adb daemon이 정상적으로 종료되지 않아 Process가 살아 있기 때문에 발생하는 에러입니다.  이 경우 adb kill-server로  daemon을 kill 하던가, TaskManager에서 해당 process를 모두 kill 해야 합니다.  위와 같이 조치해도 동일한 문제가 발생하면 logout후 또는 재부팅해야 합니다.  

에러 메시지 

* daemon not running; starting now at tcp:5037
* daemon started successfully

 

조치 방법 

$ adb kill-server
$ adb devices
--> daemon start message

 

관련 글

[모바일 SW 개발/Android] - Android apk Decompile 과 분석 tool: apktool 사용법

[모바일 SW 개발/Python] - Python에서 URL 한글 깨짐 현상: quote_plus()와 unquote_plus()

[개발환경/Tips] - Spotify 한국에서 사용하는 방법

[모바일 SW 개발/Android] - Android에서 Python 실행 (SL4A와 Termux 활용)

[모바일 SW 개발/Android] - Android 에서 리눅스 App 실행: Linux Terminal Emulator (Termux) 활용

[모바일 SW 개발/Android] - Ubuntu에서 Android 10 빌드하기

[개발환경/우분투] - Ubuntu에서 토렌트 다운로드하기 (Transmission)

[개발환경/우분투] - Ubuntu 20.04에서 sshfs 를 이용한 원격 폴더 마운트

[블로그 관리/모바일 마케팅] - [용어 정리 #1] Google 광고 ID / 추적 URL / 리퍼러 / 추적 알고리즘

[모바일 SW 개발/Android] - 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러

[모바일 SW 개발/Android] - Android apkanalyzer 에러: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

[모바일 SW 개발/Android] - Command line 기반 Android Apk 분석 툴: apkanalyzer

[모바일 SW 개발/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)

 




댓글