준비2013. 11. 9. 14:25

ADB 는 Android Debug Bridge 를 말합니다. 에뮬레이터나 휴대폰기기와 상호작용하는 주요 툴입니다. 클라이언트/서버 방식으로 작동합니다. 

. 데이타 또는 앱을 push/pull (데이터), 설치 또는 제거(앱)

. shell command 실행

. 기기 재 시작

. 시스템 로그 읽기 등이 가능합니다

1. ADB 시작

adb 는 platform-tools 디렉토리에 있으므로 환경변수 PATH 를 잘 설정했다면 터미널 창에서

adb

라고 입력하면 됩니다.

2. 연결된 기기 확인

ADB 서버는 자동으로 현재 컴퓨터에 연결된 에뮬레이터 또는 기기에 연결합니다

adb devices

라고 터미널 창에서 입력하면 목록이

[Serial number] [State] 형식으로 표시됩니다. Serial number 는 연결된 기기의 ID값으로 기기에 바로 연결할때 이 ID값이 필요합니다. 에뮬레이터 경우emulator-5556 이런식입니다. State에는 offline (연결되었지만 반응이 없을때), device (연결되었고 이용가능할때), no devices (연결된 기기가 없을때) 로 표시됩니다.

3. 특정 기기로 연결하기 

adb -s [Serial number] 명령어

예를 들어 특정 기기에 version 이라는 명령어를 보내려면

adb -s emulator-5556 version  

즉, adb -s 타켓기기 명령어 형식입니다. 위의 adb devices 는 타켓기기가 1개라고 가정했을때 devices 라는 명령어만 보내는 것입니다. 즉, 연결된 기기가 2개 이상일경우에는 adb -s 다음에 기기의 [Serial number] 를 지정하고 그 다음에 명령어를 나열하면 됩니다.

연결된 기기가 2개이상이라면 [Serial number] 값을 지정해서 adb 명령을 해야 하지만 연결된 기기가 하나일때는 특정기기를 지정하지 않아도 되므로 1개만 연결해서 사용하는것이 더 편리합니다.

adb version 

(연결된 기기가 한 개이므로 기기의 [Serial number] 를 지정할 필요가 없습니다)

4. 파일 보내기

adb push local-directory remote-directory 

형식입니다

예를 들면, 

adb push foo.txt /sdcard/foo.txt  

처럼 됩니다

5. 파일 가져오기

adb pull remote-directory local-directory 

형식입니다

예를 들면, 

adb pull /sdcard/foo.txt foo2.txt 

처럼 됩니다. 이동 개념입니다

6. 기기에 어플 설치하기

adb install foo.apk 

처럼 하면 됩니다. 

만약 2개이상의 기기 일경우에는 

adb -s emulator-5556 install foo.apk

처럼 하면 됩니다

7. 기기의 어플 삭제하기

adb uninstall com.tools.demo 

형식입니다. uninstall 다음에 apk 파일명이 오는것이 아니라 com.tools.demo 처럼 앱의 Package Name 을 지정해야 합니다.

8. shell 명령어 사용

 adb shell 

Interactive mode 로 되어서 다양한 리눅스 명령어를 사용하다 exit 로 빠져 나옵니다

adb shell 명령어

예를 들어 

adb shell cat /system/etc/hosts 

처럼 명령어를 한개씩 실행하고 싶을때 사용합니다

9. 시스템 데이터 가져오기

adb shell dumpsys [특정서비스] 

시스템 데이터를 스크린에 보여줍니다. 예 adb shell dumpsys alarm 은 시스템에 현재 등록된 모든 알람을 표시합니다

adb shell dumpstate 


adb shell dmesg 

커널의 디버깅 메시지를 표시합니다. 시스템 하드웨어와 연결되는 앱을 작성했을때 유용합니다.

adb shell logcat -b radio 

셀룰러 라디오 로그를 보여줍니다.  

adb shell logcat [option] .. [filter spec] 

형식입니다

10. 액티비티 매니저 사용하기

예를 들어 com.foo.FooActivity 라는 액티비티를 직접 실행하려면

adb shell am start -n com.foo/.FooActivity

am start 참고 글

- http://maluchi.com/xe/?mid=MyAndroidTips&comment_srl=27138&page=1&document_srl=27419

http://www.dreamy.pe.kr/zbxe/CodeClip/163972

11. ADB 서버 리셋

adb kill-server

adb start-server


더 자세한것은 구글문서 http://developer.android.com/tools/help/adb.html 를 참고하세요


Posted by JJC